检测类似图像

133*_*day 12 python media comparison image

可能重复:
图像比较算法

所以基本上我需要编写一个程序来检查2个图像是否相同.考虑以下2张图片:

http://i221.photobucket.com/albums/dd298/ramdeen32/starry_night.jpg

http://i221.photobucket.com/albums/dd298/ramdeen32/starry_night2.jpg

那么它们都是相同的图像,但我如何检查这些图像是否相同.我仅限于媒体功能.我现在能想到的只是宽度高度缩放并比较每个像素的RGB但是颜色不同吗?

我完全迷失在这一个,任何帮助表示赞赏.

*注意这必须在python中并使用(媒体库)

Joh*_*rth 5

哇-这是一个巨大的问题,而且有很多可能的解决方案。恐怕我不是python专家,但我认为您的问题很有趣-因此,我想提出一种方法,如果遇到这个问题,我将实施该方法。

显然,您发布的两个图像实际上是非常不同的-因此您将需要考虑“相同之处有多少不同”,尤其是在处理图像并考虑不同的图像格式和压缩方式等情况下。

无论如何,对于允许给定颜色值差异的解决方案(但不允许像素位于错误的位置),我将执行以下操作:

  1. 选择两个图像。

  2. 将最大的图像重新缩放为与第一个图像完全相同的高度和宽度(必要时甚至扭曲图像)。

  3. 可能会对图像进行灰度处理,以使下一步变得更简单,而又不会损失很多效果。实际上,这里的运行边缘检测也可能起作用。

  4. 遍历两个图像中的每个像素,并将差异存储在每个RGB通道中,或者仅存储灰度强度的差异。您将得到一个图像大小的数组,并注意两个图像上像素强度之间的差异。

  5. 现在,我不知道确切的值,但是您可能会发现,如果对数组进行迭代,则可以看到两个图像中每个像素之间的差异在所有像素中是否相同(或几乎相同)。像素。也许一次遍历数组以找到两个图像中像素强度之间的平均差异,然后再次遍历图像以查看90%的差异是否在某个阈值之内(5%差异?)。

只是一个主意。当然,可能有些简单的功能我并没有意识到,但我不会屏息!