0
在我的項目中,我有圖像1包含幾何cad模型和另一個具有相同幾何cad模型的圖像2,但有些東西在那裏丟失。所以我必須找出那兩個部分是相同的還是不相同?想通過在圖像上指示一些標記來給圖像2中缺少部分的位置。如何找出兩幅圖像之間的物體差異?
在我的項目中,我有圖像1包含幾何cad模型和另一個具有相同幾何cad模型的圖像2,但有些東西在那裏丟失。所以我必須找出那兩個部分是相同的還是不相同?想通過在圖像上指示一些標記來給圖像2中缺少部分的位置。如何找出兩幅圖像之間的物體差異?
如果我正確理解你的問題,這裏有一個方法: 你可以導入圖像並從opencv運行減法方法,然後是np.any。
這裏是(使用Python)的樣本代碼:
import cv2
import numpy as np
image1 = cv2.imread("banana.jpg")
image2 = cv2.imread("banana2.jpg")
difference = cv2.subtract(image1, image2)
result = not np.any(difference) #if difference is all zeros it will return False
if result is True:
print "The images are the same"
else:
cv2.imwrite("result.jpg", difference)
print "the images are different"
C++版本:
auto image1 = cv::imread("banana.jpg");
auto image2 = cv::imread("banana2.jpg");
cv::Mat difference;
cv::absDiff(image1,image2,difference);
auto result=cv::countNonZero(difference)>0;
if(result){
std::cout << "The images are the same";
}
else{
cv::imwrite("result.jpg", difference)
std::cout << "the images are different";
}
@ ibininja我沒有蟒蛇的知識將ü請給它的C++ ? –
@ibininja請糾正我,如果我犯了一些錯誤 –
@HumamHelfawi很好地完成。 – ibininja