compare
Ejemplos de uso • Resumen de opciones
Utilice el programa compare para anotar matemática y visualmente la diferencia entre una imagen y su reconstrucción. Consulte Command Line Processing para obtener consejos sobre cómo estructurar su comando compare, o vea más abajo ejemplos de uso del comando.
Ejemplos de uso
Aquí listamos algunos ejemplos del comando compare para ilustrar su utilidad y facilidad de uso. Para empezar, comparemos una imagen con otra que ha sido enfocada:
magick rose.jpg -sharpen 0x1 reconstruct.jpg
magick compare rose.jpg reconstruct.jpg difference.png
magick compare -compose src rose.jpg reconstruct.jpg difference.png
Las áreas rojas de la imagen de diferencia enfatizan (resaltan) los píxeles afectados por el enfoque de la imagen, mientras que el blanco resta énfasis (atenúa) a los píxeles no tocados por el proceso de enfoque.
Además de la interpretación visual de la diferencia entre una imagen y su reconstrucción, informamos de una medida matemática de la diferencia:
$ magick compare -verbose -metric rmse rose.jpg reconstruct.jpg difference.png
Image: rose.jpg
Channel distortion: RMSE
red: 2833.91 (0.0432427)
green: 2401.45 (0.0366438)
blue: 2560.43 (0.0390696)
all: 2604.73 (0.0397456)
O bien, si solo desea la distorsión del canal rojo, utilice este comando:
$ magick compare -channel red -metric PSNR rose.jpg reconstruct.jpg difference.png
27.2817 (0.227348)
O bien, si solo desea la distorsión global de la imagen, utilice este comando:
$ magick compare -metric PSNR rose.jpg reconstruct.jpg difference.png
28.0142 (0.233452)
Si la imagen reconstruida es una subimagen de la imagen, el programa compare devuelve el desplazamiento de la mejor coincidencia. Además, devuelve una imagen de similitud en la que una ubicación de coincidencia exacta es completamente blanca y, si ninguno de los píxeles coincide, negra; en caso contrario, algún nivel de gris intermedio:
$ magick compare -metric NCC -subimage-search logo.png hat.png similarity.pfm
0 (0) @ 417,44 [0]
$ magick identify -define identify:locate=maximum -define identify:limit=1 similarity.pfm
Channel maximum locations:
Gray: 65532.9 (0.999967) 417,44
El valor entre corchetes es la métrica de similitud normalizada.
Tenga en cuenta que la búsqueda de similitud respeta el desplazamiento de página virtual. Para garantizar los resultados esperados, asegúrese de que el desplazamiento de página de su imagen sea +0+0.
La función de búsqueda de subimagen en ImageMagick puede ser bastante lenta debido a su naturaleza iterativa. Sin embargo, si su versión de ImageMagick incluye soporte para FFTW (Fastest Fourier Transform in the West) y su métrica es DPC, MSE, NCC, RMSE, PHASE o PSNR, puede esperar una mejora de un orden de magnitud en el tiempo de procesamiento. Para más información, consulte Accelerated Subimage-search Compare.
Si la opción -subimage-search no está habilitada, ImageMagick realiza una comparación directa píxel a píxel entre las dos imágenes, comenzando desde su desplazamiento de página, normalmente las esquinas superiores izquierdas. En los casos en que las imágenes difieren en tamaño, la imagen más pequeña se alinea con la más grande. Las áreas adicionales de la imagen más pequeña se tratan como píxeles virtuales. Estos píxeles virtuales pueden procesarse según el método de píxel virtual elegido, que influye en cómo se manejan las regiones no coincidentes en la comparación. En consecuencia, las métricas de comparación pueden verse afectadas por estas áreas adicionales, lo que potencialmente repercute en la evaluación global de similitud. Para comparar únicamente los píxeles auténticos, utilice -define compare:virtual-pixels=false.
Puede encontrar ejemplos adicionales del uso de compare en Examples of ImageMagick Usage.
Dos imágenes se consideran similares si su diferencia según la métrica y el valor de fuzz especificados es 0, con la excepción de la métrica de correlación cruzada normalizada (NCC), donde dos imágenes se consideran similares cuando su correlación cruzada normalizada es 1. La métrica predeterminada es NCC.
El programa compare devuelve 2 en caso de error, 0 si las imágenes son similares, o un valor entre 0 y 1 si no son similares.
Resumen de opciones
El comando compare reconoce estas opciones. Haga clic en una opción para obtener más detalles sobre su funcionamiento.
| Opción | Descripción |
|---|---|
| -adjoin | unir imágenes en un único archivo multiimagen |
| -alpha | on, activate, off, deactivate, set, opaque, copy, transparent, extract, background o shape del canal alfa |
| -authenticate value | descifrar la imagen con esta contraseña |
| -auto-orient | orientar la imagen automágicamente |
| -background color | color de fondo |
| -brightness-contrast geometry | mejorar el brillo / contraste de la imagen |
| -channel type | aplicar la opción a los canales de imagen seleccionados |
| -colorspace type | establecer el espacio de color de la imagen |
| -compose operator | establecer el operador de composición de la imagen |
| -crop geometry | recortar la imagen |
| -decipher filename | convertir píxeles cifrados en texto plano |
| -debug events | mostrar abundante información de depuración |
| -define format:option | definir una o más opciones de formato de imagen |
| -density geometry | densidad horizontal y vertical de la imagen |
| -depth value | profundidad de bits de la imagen |
| -dissimilarity-threshold value | distorsión máxima para la coincidencia de (sub)imagen (predeterminado 0.2) |
| -distort type coefficients | distorsionar la imagen |
| -encipher filename | convertir píxeles en texto plano en píxeles cifrados |
| -extract geometry | extraer un área de la imagen |
| -fuzz distance | los colores dentro de esta distancia se consideran iguales |
| -gravity type | colocación horizontal y vertical del texto |
| -help | imprimir las opciones del programa |
| -highlight-color color | enfatizar las diferencias de píxeles con este color |
| -identify | identificar el formato y las características de la imagen |
| -interlace type | tipo de esquema de entrelazado de la imagen |
| -level value | ajustar el nivel de contraste de la imagen |
| -limit type value | límite de recursos de la caché de píxeles |
| -log format | formato de la información de depuración |
| -lowlight-color color | restar énfasis a las diferencias de píxeles con este color |
| -metric type | medir las diferencias entre imágenes con esta métrica. La métrica predeterminada es RMSE. |
| -negate | reemplazar cada píxel por su color complementario |
| -profile filename | añadir, eliminar o aplicar un perfil de imagen |
| -quality value | nivel de compresión JPEG/MIFF/PNG |
| -quantize colorspace | reducir los colores de la imagen en este espacio de color |
| -quiet | suprimir todos los mensajes de advertencia |
| -read-mask filename | asociar una máscara de lectura con la imagen |
| -regard-warnings | prestar atención a los mensajes de advertencia |
| -repage geometry | tamaño y ubicación del lienzo de la imagen |
| -resize geometry | redimensionar la imagen |
| -respect-parentheses | los ajustes permanecen vigentes hasta el límite del paréntesis |
| -rotate degrees | aplicar la rotación de Paeth a la imagen |
| -sampling-factor geometry | factor de muestreo horizontal y vertical |
| -seed value | sembrar una nueva secuencia de números pseudoaleatorios |
| -separate | separar un canal de imagen en una imagen en escala de grises |
| -set attribute value | establecer un atributo de la imagen |
| -sigmoidal-contrast geometry | aumentar el contraste sin saturar las luces ni las sombras |
| -similarity-threshold value | distorsión mínima para la coincidencia de (sub)imagen (predeterminado 0.0) |
| -size geometry | ancho y alto de la imagen |
| -subimage-search | buscar una subimagen |
| -synchronize | sincronizar la imagen con el dispositivo de almacenamiento |
| -taint | marcar la imagen como modificada |
| -transparent-color color | color transparente |
| -trim | recortar los bordes de la imagen |
| -verbose | imprimir información detallada sobre la imagen |
| -version | imprimir información de la versión |
| -virtual-pixel method | método de acceso para los píxeles fuera de los límites de la imagen |
| -write-mask filename | asociar una máscara de escritura con la imagen |


