怎么检测两张图片的差异opencv
时间: 2023-07-07 16:40:05 浏览: 119
基于opencv的图片查异软件
可以使用OpenCV库中的函数来检测两张图片的差异。具体可以使用cv::absdiff()函数来计算两张图片的差异,该函数会返回每个像素点的差异值,然后可以根据阈值将差异值转换为二值图像,以便更好地观察差异部分。示例代码如下:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 读取两张图片
Mat img1 = imread("image1.jpg");
Mat img2 = imread("image2.jpg");
// 计算两张图片的差异
Mat diff;
absdiff(img1, img2, diff);
// 将差异值转换为二值图像
int threshold = 30;
threshold(diff, diff, threshold, 255, THRESH_BINARY);
// 显示差异图像
imshow("diff", diff);
waitKey(0);
destroyAllWindows();
return 0;
}
```
在上述代码中,通过cv::absdiff()函数计算了两张图片的差异,并将差异值小于阈值的像素点置为0,大于等于阈值的像素点置为255,最后显示差异图像。可以根据实际情况调整阈值来得到更好的效果。
阅读全文