2011-12-05 48 views
3

我希望能够检查两幅图像在某个阈值内是否显示相同。直观地比较两幅图像

Image 1

Image 2

这两个图像是相同的对眼睛的,但是稍微不同的颜色。我曾尝试下面的例子:

http://www.vb-helper.com/howto_net_image_compare_threshold.html

遗憾的是,似乎只有当图像是相同的检测。如何使用VB.NET确定图像在特定阈值内是否相同?

+0

难道你不能只显示图像,重新捕获它,然后使用你有的代码? – stimms

+0

对不起,你能解释一下吗? –

+0

你使用过TinEye.com吗?他们也有一个API:http://ideeinc.com/products/pixmatch/ - 我没有看到它的宽容信息,但我相信会有很多其他第三方工具类似,HTH –

回答

4
  1. 将这两个图像的大小调整为相同的小尺寸,例如16x12或90x60(取决于您的阈值)。
  2. 将颜色深度减少为每像素4位或8位(未调色板)。你可以使用posterize功能。

然后再看看两个较小的图像是否重复。如果是这样,原件必须非常接近。

0
  • 鸿沟图像分成R,G,B
  • 对于每种颜色:
    • 对于每个(X,Y):
      • 乘图像1与图像2
      • 的像素的像素
    • 萨姆所有像素值
  • 萨姆3 VALU es每种颜色

这是两张图像之间的correlation。为了得到从0到1的值,首先计算图像与其自身的相关性,以查看最佳可能值是什么,然后执行图像1与图像2的相关性并除以最佳可能值。