Простой способ (инструмент?) Сравнить изображения пиксель за пикселем в разных форматах? - PullRequest
15 голосов
/ 28 марта 2009

Хорошо, я написал базовую вещь без потерь в формате jpeg в java, но я хотел бы сравнить файлы, которые он создает, с оригинальными файлами.

Я могу сравнивать только столько в шестнадцатеричном редакторе, кто-нибудь знает простой способ, программное обеспечение или на основе Java (желательно программного обеспечения, так как сейчас я больше не чувствую необходимости писать код!), Что я могу сравнить два изображения и создать «карта различий», где пиксели не совпадают?

Спасибо.

Ответы [ 8 ]

14 голосов
/ 31 марта 2009

Спасибо за предложения.

Сначала я попробовал подход Gimp, который хорошо работает, за исключением случаев, когда разница между изображениями очень мала. Я не смог найти опцию «увеличения различий», чтобы сделать различия очевидными, а гистограмма также дает только приблизительное представление о различиях.

В конце концов, я использовал ImageMagick , что-то, что я установил некоторое время назад, и забыл обо всем. Создать изображение разницы / сравнения так же просто, как набрать:

 compare first.jpg second.png difference.gif

в командной строке.

Здесь все хорошо объяснено здесь.

5 голосов
/ 01 апреля 2009

TortoiseIDiff - бесплатная программа просмотра различий изображений:

http://tortoisesvn.tigris.org/TortoiseIDiff.html

Он является частью TortoiseSVN, но может использоваться без Subversion.

В зависимости от вашего проекта, не все файлы, которые находятся под версией контроль текстовые файлы. Скорее всего, у вас будут изображения, для примеры скриншотов и диаграмм для документации / справочного файла.

Для этих файлов невозможно использовать общий инструмент сравнения файлов, потому что они работают только с текстовыми файлами и diff построчно. Вот где инструмент Tortoise Image Diff (TortoiseIDiff) приходит к спасение. Это может показать два изображения рядом, или даже показать изображения друг над другом альфа смешивается.

4 голосов
/ 28 марта 2009

Вы можете сделать намного хуже, чем Разница восприятия .

2 голосов
/ 20 августа 2011

Лучший подход - использовать Pix для Windows (поставляется с DirectX SDK). Поддерживает Bitmap, PNG и Jpeg ... Наслаждайтесь!

1 голос
/ 28 марта 2009

В последней версии Araxis Merge будут использоваться различия в изображениях (http://www.araxis.com/merge/topic_comparing_image_files.html).

К сожалению, это не бесплатное приложение, так что, готовы ли вы платить за это, это другое дело ...

1 голос
/ 28 марта 2009

За такие вещи я люблю netpbm / pbmplus инструментарий. Вы можете использовать djpeg и pnmtoplainpnm для преобразования каждого изображения в простой формат ASCII. Затем вы просто читаете оба файла и создаете новое изображение, которое показывает, где пиксели различаются. Вы можете, например, вычислить евклидово расстояние в RGB-пространстве между старыми и новыми пикселями и получить белый пиксель для нулевой разности, светло-серый для небольшой разности, темнее для больших разностей и так далее. Формат ASCII прост и хорошо документирован на страницах руководства, и все стандартные программы просмотра могут просматривать его напрямую.

1 голос
/ 28 марта 2009

Используйте графический редактор, такой как Photoshop, Gimp или любой другой, который имеет несколько слоев. Создайте изображение, где каждое исходное изображение в отдельном слое.

На этом этапе вы можете визуально сравнивать изображения, переключая видимость верхнего слоя.

В большинстве приличных редакторов вы также можете установить верхний слой в режим «разности». Теперь значение каждого пикселя изображения является абсолютной разницей значений пикселей в нижележащих изображениях. Вы можете использовать, например, инструмент гистограммы, чтобы увидеть, идентичны ли изображения. Если они идентичны, то все значения пикселей будут точно равны 0.

0 голосов
/ 14 апреля 2016

Существует также удобное веб-приложение Resemble.js , которое анализирует и сравнивает изображения попиксельно. Различные пиксели на изображениях (если есть) подсвечиваются розовым или желтым цветом в зависимости от ваших предпочтений.

...