【问题标题】:Function subtract vs function absdiff函数减法与函数 absdiff
【发布时间】: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,具体取决于数据类型。
  • 可能会有差异,但我不确定是不是绝对差异。

标签: c++ opencv


【解决方案1】:

如果您subtract 一个图像来自另一个图像,它将给出一个图像,其中仅包含第二个图像比第一个图像具有更高值的区域。

absdiff 将给出两个图像之间的绝对差异。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多