2016-09-24 15 views
0

Я использую compare, чтобы узнать, изменилось ли что-то между двумя фотографиями. Как правило, хорошо работает, за исключением случаев, когда комната внезапно становится немного темнее или ярче. Поэтому мне интересно - можно ли игнорировать разницу в яркости при запуске compare?Игнорирование различий в яркости с помощью инструмента сравнения ImageMagick

До сих пор я использую следующую команду:

compare -fuzz 15% -metric ae /path/to/image1.jpg /path/to/image2.jpg /path/to/diff.png 

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

Любое предложение?

+2

Если вы используете метку «NCC», а не «AE», изображения сначала нормализуются, и вы увидите разницу в 07%, а не 4,6%, которую вы сейчас видите. –

ответ

1

Вы можете нормализовать два изображения, а затем сравнить их:

convert VaoZF.jpg -normalize image1.ppm 
convert whgkn.jpg -normalize image2.ppm 
compare -fuzz 15% -metric ae image1.ppm image2.ppm diff.png 

Вы можете получить разницу метрики с помощью одной команды и без внесения каких-либо временных файлов:

magick \(VaoZF.jpg -normalize \) \(whgkn.jpg -normalize \) \ 
     -fuzz 15% -metric ae -compare -format "%[distortion]" info: 

Если вы находитесь на Windows, используйте «(« и ») вместо« \ (»и« \) »и используйте«^»вместо« \ »для подавления разрыва строки и замените«% »на« %% ».