免责声明:这不是问题本身的答案,但应该帮助作者进一步调查他的问题。另外,请参阅问题下方的评论。
作为一个小测试,我使用这个3x3图像(你几乎看不到 - 看看我的问题链接的“原始”输入):
在 图像观察 (Visual Studio扩展),它看起来像这样:
我们试试下面的代码:
// Read input image. cv::Mat img = cv::imread("test.png", cv::IMREAD_COLOR); // Output pixel values. for (int x = 0; x < img.cols; x++) { for (int y = 0; y < img.rows; y++) { printf("%d ", img.at<cv::Vec3b>(y, x)[0]); printf("%d ", img.at<cv::Vec3b>(y, x)[1]); printf("%d \n", img.at<cv::Vec3b>(y, x)[2]); } }
我们将得到这个输出:
0 255 255 0 255 255 255 255 255 255 0 255 255 255 255 255 0 255 0 0 255 0 255 255 255 0 255
现在,您可以使用嵌套循环来检查图像数据(或更好:像素值)是否相同 IplImage ipl 在你的 Mat ipl2 。
IplImage ipl
Mat ipl2