这完全取决于您希望算法的智能程度。
例如,这是一些问题:
- 裁剪的图像与未裁剪的图像
- 带有文字的图像与没有文字的图像
- 镜像图像
我见过的最简单最简单的算法就是对每个图像执行以下步骤:
- 缩放到小尺寸(例如64x64或32x32)而忽略宽高比,请使用组合缩放算法而不是最近的像素
- 缩放颜色范围,以使最暗的为黑色,最亮的为白色
- 旋转并翻转图像,以使最大的颜色在左上角,然后右上角变暗,左下角变暗(当然要尽可能)
编辑 组合缩放算法是一种将10像素缩小到1的算法 ,该函数将使用所有这10个像素的颜色并将它们合并为一个的函数。可以使用平均,均值或更复杂的算法(例如三次三次样条)来完成。
然后计算两个图像之间逐像素的平均距离。
要在数据库中查找可能的匹配项,请将像素颜色存储为数据库中的各个列,对一堆像素进行索引(但不是全部索引,除非您使用非常小的图像),然后执行针对每个像素使用范围的查询像素值,即小图像中像素在要查找的图像的-5到+5之间的每个图像。
这很容易实现,并且运行起来相当快,但是当然不能处理大多数高级差异。为此,您需要更高级的算法。
0
我想将一个应用程序(可能是网页)的屏幕快照与先前获取的屏幕快照进行比较,以确定该应用程序是否正确显示了自己。我不希望进行完全匹配比较,因为方面可能略有不同(对于Web应用程序,取决于浏览器,某些元素可能位于稍有不同的位置)。它应该衡量屏幕截图的相似程度。
是否已经有一个库/工具?您将如何实施?