Python + PIL截图比较

时间:2011-03-07 19:43:09

标签: python compare screenshot python-imaging-library

我制作了一个程序,用于比较PIL抓取的截图,存储在表格中,然后使用ImageChops.difference进行比较。

该程序运行良好,但有一个问题。完全相同的屏幕截图(例如,如果您以1秒的间隔拍摄桌面的两个屏幕截图),则不具有完全相同的像素。我通过使用带有大量缩放的Photoshop找到了这个。因此,在某些情况下,程序会返回一些错误的值。

有没有办法从类似的屏幕截图中获得完全相同的像素,所以我不必使用阈值?或者以其他方式成功地比较我的数据库的准确性?

2 个答案:

答案 0 :(得分:0)

我不确定你的哪些像素是不同的,也不确定你正在寻找什么差异,所以提供帮助有点困难。

关闭所有动画和桌面效果应该有助于获得一致的屏幕截图。我敢肯定,人们可以编写一个可以做到这一点的工具。

此外,将屏幕截图保存为JPEG(或任何有损格式)也是正确的,因为我相信你知道。

还有一个名为pdiff的实用程序,它根据感知差异比较图像,而不是基于直接值的差异。它可能对你有所帮助,取决于你实际想要实现的目标。

答案 1 :(得分:0)

Capis,

据我所知,Open CV是图像处理的最佳库。我用C编码。然而,它也有一个pythonic包装。 http://opencv.willowgarage.com/documentation/python/index.html试一试。