我正在尝试使用Python 2.6和PIL计算两个图像的相似性(读取: Levenshtein距离)。
我打算给我们 用于快速比较的python-levenshtein库。
主要问题:
比较图像的好策略是什么?我的想法是这样的:
当然,这不会处理镜像图像,裁剪图像等情况。但是对于基本比较,这应该是有用的。
在某处记录了更好的策略吗?
编辑: Aaron H对速度问题是正确的。对于大于几百乘几百像素的图像,计算Levelshtein需要永远。但是,在我的示例中,缩小到100x100和200x200之后的结果之间的差异小于1%,因此将最大图像大小设置为~100px左右可能是明智的...
编辑:感谢PreludeAndFugue,我正在寻找这个问题。
顺便说一句,Levenshtein距离似乎可以优化,但它给了我一些非常糟糕的结果,也许是因为背景中有很多冗余元素。要看一些其他算法。
EIDT:均方根偏差和峰值信噪比似乎是另外两个选项,这些选项并不是很难实现,而且看起来并不是非常昂贵的CPU。但是,似乎我需要某种形式的上下文分析来识别形状等。
无论如何,感谢所有链接,并指出了朝向NumPy / SciPy的方向。