我想将一个应用程序(可能是网页)的屏幕快照与先前拍摄的屏幕快照进行比较,以确定该应用程序是否正确显示了自己。我不希望进行完全匹配比较,因为方面可能略有不同(对于Web应用程序,取决于浏览器,某些元素可能位于稍有不同的位置)。它应该衡量屏幕截图的相似程度。
是否已经有一个库/工具?您将如何实施?
这完全取决于您希望算法的智能程度。
例如,这是一些问题:
我见过的最简单最简单的 算法 就是对每个图像执行以下步骤:
编辑 一个 结合缩放算法 是一个比例10个像素降低到一个时候会使用一个函数,所有的10个像素,并将其组合的颜色到一个做到这一点。可以使用平均,均值算法或双三次样条曲线等更复杂的算法来完成。
然后计算两个图像之间的逐像素平均距离。
要在数据库中查找可能的匹配项,请将像素颜色存储为数据库中的各个列,对一堆像素进行索引(但不是全部,除非使用非常小的图像),然后进行查询以对每个像素使用范围像素值,即 小图像中像素在要查找的图像的-5到+5之间的每个图像。
这很容易实现,并且运行起来相当快,但是当然不能处理大多数高级差异。为此,您需要更高级的算法。