#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五处不同的地方。还有什么更好更健壮的方法没 不必图像大小完全一致的?




本文介绍了如何使用OpenCV库对两幅图像进行对比操作,并通过简单的数学运算实现图像融合。详细解释了图像读取、对比运算、结果保存及显示的过程,特别强调了图像大小一致性的重要性,并提出了一种简化区别区域显示的方法。
6919





