【发布时间】:2016-09-03 12:07:08
【问题描述】:
当运行以下代码来查看图片的差异时
using namespace cv;
int main()
{
Mat image1 = imread("1.bmp");
Mat image2 = imread("2.bmp");
Mat differenceImg1;
Mat differenceImg2;
subtract(image1, image2, differenceImg1);
imshow("subtract", differenceImg1);
absdiff(image1, image2, differenceImg2);
imshow("absdiff", differenceImg2);
waitKey(0);
}
这两者有区别吗?哪个和什么时候使用更好?
【问题讨论】:
-
“y=a-b”和“y=abs(a-b)”的区别是一样的。如果“a-b”是正数,结果显然是一样的。 Absdiff 是可交换的,顺便说一句。在第一种情况下,负值可能会被限制为 0,具体取决于数据类型。
-
可能会有差异,但我不确定是不是绝对差异。