你可以帮我写一份完整的代码嘛
时间: 2024-02-10 14:10:55 浏览: 64
当然可以,以下是一个完整的使用 OpenCV C++ 接口进行图像差异比较的示例代码:
```c++
#include <opencv2/opencv.hpp>
int main()
{
// 读取图片
cv::Mat img1 = cv::imread("image1.png");
cv::Mat img2 = cv::imread("image2.png");
// 转为灰度图像
cv::Mat gray1, gray2;
cv::cvtColor(img1, gray1, cv::COLOR_BGR2GRAY);
cv::cvtColor(img2, gray2, cv::COLOR_BGR2GRAY);
// 计算差异
cv::Mat diff;
cv::absdiff(gray1, gray2, diff);
// 阈值化
cv::Mat thresh;
cv::threshold(diff, thresh, 30, 255, cv::THRESH_BINARY);
// 显示结果
cv::imshow("Diff Image", diff);
cv::imshow("Threshold Image", thresh);
cv::waitKey(0);
return 0;
}
```
在编译时需要链接 OpenCV 库,可以使用以下命令进行编译:
```bash
g++ -std=c++11 main.cpp -o main -lopencv_core -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc
```
其中,`main.cpp` 是您的源代码文件名,`main` 是编译生成的可执行文件名。请注意,以上代码仅供参考,实际使用时需要根据具体情况进行修改和调整。
阅读全文