如何在opencv中减去两个不同大小的图像和灰度图像

时间:2017-06-29 04:02:01

标签: c++ opencv

我有3张图片,我尝试减去尺寸相同且得到结果的第一张和第二张图片。接下来,我尝试减去第一和第三个图像,第一个图像有尺寸(2000x1000),第三个图像有尺寸(1200x1057),我得到一个错误。

//! [window]
namedWindow("min", WINDOW_NORMAL);
resizeWindow("min", 1000, 500);
namedWindow("plus", WINDOW_NORMAL); 
resizeWindow("plus", 1000, 500); 
namedWindow("adf", WINDOW_NORMAL); 
resizeWindow("adf", 1000, 500);

Mat min,plus,adf;

subtract(im, im2, min);  //error 
add(im, im2, plus);
absdiff(im, im2, adf);

imshow("min", min); 
imshow("plus", plus);
imshow("adf", adf);

我尝试使用相同的尺寸替换灰度图像,我也得到了一个错误。有人可以向我解释为什么我会收到错误。

谢谢。

1 个答案:

答案 0 :(得分:0)

感谢@ZdaR(在评论中),我尝试调整图片大小。调整图像大小,

首先需要定义resize:

#include <opencv2/imgproc/imgproc.hpp>

 Mat Image,Temp;
 resize(Image, Temp, cvSize(Image2.size().width, Image2.size().height));
 //have same size with image2.