Я хочу сравнить два изображения в формате JPG.Я знаю параметр "fuzz" из-за компенсации JPG.Теперь я хочу сравнить эти два изображения с маской - я не хочу сравнивать весь прямоугольник, только его часть.В результате я хочу, чтобы разница в пикселях вычислялась как процентная разница, а на втором шаге я хочу изображение, которое показывает разницу в красном / черном.
Я нашел эту статью: Новая функция сравнения
Мой старый способ (сравните весь прямоугольник):
/usr/bin/compare -metric ae /mnt/usbstorage/tmp/15.jpg /mnt/usbstorage/tmp/14.jpg -compose src /dev/null 2>&1
=> 8432 Pixels different
Мой старый способ (сравните весь прямоугольник и нарисуйте его в изображение):
/usr/bin/compare -metric ae /mnt/usbstorage/tmp/15.jpg /mnt/usbstorage/tmp/14.jpg -compose src /dev/null -highlight-color Red -lowlight-color Black /mnt/usbstorage/tmp/diff.gif
Моя новая попытка (сравните изображения с маскирующим изображением):
/usr/bin/compare -read-mask /mnt/usbstorage/tmp/mask.png -metric ae /mnt/usbstorage/tmp/15.jpg /mnt/usbstorage/tmp/14.jpg -compose src /dev/null 2>&1
=> 8432 Pixels different
Различные пиксели не изменятся!8432 <=> 8432 ... так что моя маска ничего не меняет!
Когда я делаю эту команду, чтобы сохранить разницу в новом изображении, для маски есть серые места, а для черных - нет.-пиксели и красные области для разных пикселей -> идеально.Изображение идеальное, сравнение пикселей остается прежним.Почему?
Я не понимаю - у вас есть объяснение / пример?Я что-то не так делаю?
Вот файлы: