Сравнение скриншотов Python + PIL - PullRequest
0 голосов
/ 07 марта 2011

Я создал программу, которая сравнивает скриншоты, полученные PIL, хранящиеся в таблице, и я использую ImageChops.difference для их сравнения.

Программа работает довольно хорошо, но есть одна проблема.Точно такие же снимки экрана (например, если вы делаете два снимка экрана вашего рабочего стола с интервалом в 1 секунду), не имеют одинаковых пикселей.Я нашел это с помощью Photoshop с большим увеличением.Так что в некоторых случаях программа возвращает неправильные значения.

Есть ли способ получить точно такие же пиксели на похожих скриншотах, чтобы мне не приходилось использовать пороги?Или любой другой способ добиться высокой точности сравнения моей базы данных?

Ответы [ 2 ]

0 голосов
/ 07 марта 2011

Capis,

Насколько я знаю, Open CV - лучшая библиотека для обработки изображений. Я закодировал в C, хотя. Однако он также имеет питонную обертку. http://opencv.willowgarage.com/documentation/python/index.html Дайте ему шанс.

0 голосов
/ 07 марта 2011

Я не уверен, какие из ваших пикселей отличаются, и какие именно различия вы ищете, поэтому немного сложно помочь.

Отключение всех анимаций и эффектов рабочего стола, конечно же, должно помочь в получении последовательных скриншотов. Я уверен, что можно написать инструмент, который делает это.

Также, как я уверен, вы сохраняете снимки экрана в формате JPEG (или в любом формате с потерями).

Существует также утилита под названием pdiff , которая сравнивает изображения на основе различий восприятия, а не различий на основе прямых значений. Это может помочь вам, в зависимости от того, чего вы на самом деле пытаетесь достичь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...