3

比较两个图像(位图)以检查它们是否相同的有效方法是什么?

我试图记录我并且我已经读到我需要将两个图像的大小重新调整到大约 16x16px,但我没有得到预期的结果。

我尝试使用 .Equals 比较调整大小的图像:

    If img1.Equals(img2) then 
        msgbox("are equals!")
    End if

我看过AForge图像库,但我在里面找不到任何方法来比较图像。

有没有办法使用 .NET 类或 3rd 方库进行有效的图像比较,而无需硬编码逐像素图像比较器?如果没有,任何比较图像的功能示例?

4

1 回答 1

1

您需要仔细考虑您的要求以及平等的含义。如果您要进行逐个像素的直接比较,那么您可以找到许多 .net 图像类来帮助解决这个问题(我不是 .net 专家,但请在此处尝试图像比较以查找图像之间的相似性百分比

当然,实现一个简单的直接图像差异是相当容易的。您甚至可以允许差异 < 阈值的细微差异,上述 SO 答案中的教程对此进行了讨论。顺便说一句,这个答案还提到了 SIFT,直到我提到它之后我才意识到。SIFT 是一个很好的工具,具体取决于您的要求。

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

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

于 2013-10-18T17:30:46.700 回答