比较两个图像以检查它们是否相同

时间:2013-10-18 01:16:23

标签: .net vb.net image pixel image-comparison

哪种方法可以比较两个图像(位图),检查它们是否相同?

我试图记录我,并且我已经读过我需要将两张图片重新调整为大约16x16像素,但我没有得到预期的结果。

我尝试使用.Equals:

比较已调整大小的图像
    If img1.Equals(img2) then 
        msgbox("are equals!")
    End if

我已经看过 AForge 图片库,但我找不到任何方法来比较图片。

有没有办法使用.NET类或第三方库进行高效的图像比较而不使用硬编码像素每像素图像比较器?如果没有,比较图像的任何功能示例?

1 个答案:

答案 0 :(得分:0)

您需要仔细考虑您的要求和平等的意义。如果您正在进行逐像素比较,那么您可以找到许多.net图像类来帮助解决这个问题(我不是.net专家,但请尝试Image Comparison for find percentage of similarity between images

当然,实现简单的直接图像差异相当容易。您甚至可以允许与差异的轻微差异<阈值,上面的SO答案讨论的教程。顺便提一句,这个答案也提到了SIFT,直到我提到它之后我才意识到这一点。根据您的要求,SIFT是一个很好的工具。

SIFT第三方工具是比较可能有轻微变化的图像的好方法,但您可能不得不进行系统调用,因为我不确定它们是否提供了.net接口。 SIFT实施的最终网站是:http://www.cs.ubc.ca/~lowe/keypoints/

我确实在互联网上找到了这个:http://www.nowozin.net/sebastian/tu-berlin-2006/libsift/声称是c#实现。