Seu Curso

  • Full Screen
  • Wide Screen
  • Narrow Screen
  • Increase font size
  • Default font size
  • Decrease font size

Como comparar duas imagens na linha de comandos

Imprimir
Avaliação do Usuário: / 3
PiorMelhor 

Imagine que por um motivo qualquer você queira comprar duas imagens na linha de comandos. Achei como aqui e resolvi traduzir/testar. Então vai:


Você vai precisar ter no seu Linux o ImageMagick instalado, se não tiver instale com:


apt-get install imagemagick


O pacote do ImageMagick vai nos fornecer meios de redimensionar a imagem e garantir que estamos comparando as mesmas coisas. Ou melhor, claro que as imagens podem até ser diferentes, mas se não tiverem pelo menos o mesmo tamanho nunca terão a menor chance de serem iguais (caso forem).


Nesse mesmo pacote está o comando compare, que compara imagens.


A linha de comandos para comparar ficará assim:


convert logo.png logo2.png -resize '100x100!' MIFF:- | compare -metric AE -fuzz '10%' - null:


Onde logo.png e logo2.png são as imagens a serem comparadas, que passaram antes por um redimensionamento para ficarem com 100x100 pixeis.


Para o comando compare o parâmetro -metric diz qual a métrica a ser ussada, que pode ser:


AE - contagem de erros absolutos, número de pixeis diferentes.

FUZZ - distância média da cor.

MAE - média do erro absoluto (normalizado).

MEPP - erro médio por pixel (normalizado).

MSE - erro médio quadrado.

NCC - Correlação cruzada normalizada.

PAE - pico absoluto (pico absoluto normalizado).

PHASH - hash perceptual

PSNR - pico de sinal para taxa de ruído

RMSE - raiz média quadrada

 

O parâmetro -fuzz diz qual a distância de cores que deve ser utilizada para "afirmar" o erro. No nosso caso 10%. Isso quer dizer que para o pixel ser diferente de outro pixel precisa ter mais do que 10% de diferença na cor.

Adicionar comentário


Código de segurança
Atualizar

You are here: