#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
Mat img1 = imread("D:\\image\\img1.jpg");
Mat img2 = imread("D:\\image\\img2.jpg");//两幅图像的大小需要一致
Mat img_result1, img_result2, img_result;
subtract(img1,img2, img_result1);
subtract(img2,img1, img_result2);
add(img_result1, img_result2, img_result1);
imwrite("D:\\image\\result.jpg", img_result1);
imshow("result", img_result1);
waitKey();
return 0;
}
也可以用 img_result = 2*abs(img1 - img2);
乘以2是要使区别的地方更明显一点。
结果是第三幅图,其中的3,5,6,7,12五处不同的地方。还有什么更好更健壮的方法没 不必图像大小完全一致的?