compare
Exemples d'utilisation • Récapitulatif des options
Utilisez le programme compare pour annoter mathématiquement et visuellement la différence entre une image et sa reconstruction. Consultez le Traitement en ligne de commande pour des conseils sur la façon de structurer votre commande compare, ou voyez ci-dessous des exemples d'utilisation de la commande.
Exemples d'utilisation
Nous présentons ici quelques exemples de la commande compare pour illustrer son utilité et sa simplicité d'emploi. Pour commencer, comparons une image à une version d'elle-même qui a été renforcée (sharpen) :
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
Les zones rouges de l'image de différence mettent en évidence (highlight) les pixels affectés par le renforcement de l'image, tandis que le blanc atténue (lowlight) les pixels non touchés par le processus de renforcement.
En plus de l'interprétation visuelle de la différence entre une image et sa reconstruction, nous rapportons une mesure mathématique de la différence :
$ 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)
Ou, si vous ne voulez que la distorsion du canal rouge, utilisez cette commande :
$ magick compare -channel red -metric PSNR rose.jpg reconstruct.jpg difference.png
27.2817 (0.227348)
Ou, si vous ne voulez que la distorsion globale de l'image, utilisez cette commande :
$ magick compare -metric PSNR rose.jpg reconstruct.jpg difference.png
28.0142 (0.233452)
Si l'image reconstruite est une sous-image de l'image, le programme compare renvoie le décalage de la meilleure correspondance. De plus, il renvoie une image de similarité dans laquelle un emplacement de correspondance exacte est entièrement blanc, et si aucun des pixels ne correspond, noir, sinon un niveau de gris intermédiaire :
$ 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
La valeur entre crochets est la métrique de similarité normalisée.
Notez que la recherche de similarité respecte le décalage de page virtuelle. Pour garantir les résultats attendus, assurez-vous que le décalage de page de votre image est +0+0.
La fonctionnalité de recherche de sous-image dans ImageMagick peut être assez lente en raison de sa nature itérative. Cependant, si votre version d'ImageMagick inclut la prise en charge de FFTW (Fastest Fourier Transform in the West) et que votre métrique est DPC, MSE, NCC, RMSE, PHASE ou PSNR, vous pouvez vous attendre à une accélération d'un ordre de grandeur du temps de traitement. Pour la discussion, reportez-vous à Accelerated Subimage-search Compare.
Si l'option -subimage-search n'est pas activée, ImageMagick effectue une comparaison directe pixel par pixel entre les deux images, en commençant à partir de leur décalage de page, généralement les coins supérieurs gauches. Dans les cas où les images diffèrent en taille, la plus petite image est alignée sur la plus grande. Les zones supplémentaires de la plus petite image sont traitées comme des pixels virtuels. Ces pixels virtuels peuvent être traités selon la méthode de pixel virtuel choisie, qui influence la façon dont les régions non correspondantes sont gérées dans la comparaison. Par conséquent, les métriques de comparaison peuvent être affectées par ces zones supplémentaires, ce qui peut avoir une incidence sur l'évaluation globale de la similarité. Pour ne comparer que les pixels authentiques, utilisez -define compare:virtual-pixels=false.
Vous trouverez d'autres exemples d'utilisation de compare dans Examples of ImageMagick Usage.
Deux images sont considérées comme similaires si leur différence selon la métrique et la valeur de fuzz spécifiées est de 0, à l'exception de la métrique de corrélation croisée normalisée (NCC), où deux images sont considérées comme similaires lorsque leur corrélation croisée normalisée est de 1. La métrique par défaut est NCC.
Le programme compare renvoie 2 en cas d'erreur, 0 si les images sont similaires, ou une valeur comprise entre 0 et 1 si elles ne sont pas similaires.
Récapitulatif des options
La commande compare reconnaît ces options. Cliquez sur une option pour obtenir plus de détails sur son fonctionnement.
| Option | Description |
|---|---|
| -adjoin | regrouper plusieurs images dans un seul fichier multi-images |
| -alpha | on, activate, off, deactivate, set, opaque, copy, transparent, extract, background ou shape pour le canal alpha |
| -authenticate value | déchiffrer l'image avec ce mot de passe |
| -auto-orient | orienter automatiquement l'image |
| -background color | couleur d'arrière-plan |
| -brightness-contrast geometry | améliorer la luminosité / le contraste de l'image |
| -channel type | appliquer l'option aux canaux d'image sélectionnés |
| -colorspace type | définir l'espace colorimétrique de l'image |
| -compose operator | définir l'opérateur de composition de l'image |
| -crop geometry | rogner l'image |
| -decipher filename | convertir les pixels chiffrés en clair |
| -debug events | afficher d'abondantes informations de débogage |
| -define format:option | définir une ou plusieurs options de format d'image |
| -density geometry | densité horizontale et verticale de l'image |
| -depth value | profondeur de l'image |
| -dissimilarity-threshold value | distorsion maximale pour la correspondance de (sous-)image (par défaut 0.2) |
| -distort type coefficients | déformer l'image |
| -encipher filename | convertir les pixels en clair en pixels chiffrés |
| -extract geometry | extraire une zone de l'image |
| -fuzz distance | les couleurs situées dans cette distance sont considérées comme égales |
| -gravity type | placement horizontal et vertical du texte |
| -help | afficher les options du programme |
| -highlight-color color | mettre en évidence les différences de pixels avec cette couleur |
| -identify | identifier le format et les caractéristiques de l'image |
| -interlace type | type de schéma d'entrelacement de l'image |
| -level value | ajuster le niveau de contraste de l'image |
| -limit type value | limite de ressource du cache de pixels |
| -log format | format des informations de débogage |
| -lowlight-color color | atténuer les différences de pixels avec cette couleur |
| -metric type | mesurer les différences entre les images avec cette métrique. La métrique par défaut est RMSE. |
| -negate | remplacer chaque pixel par sa couleur complémentaire |
| -profile filename | ajouter, supprimer ou appliquer un profil d'image |
| -quality value | niveau de compression JPEG/MIFF/PNG |
| -quantize colorspace | réduire les couleurs de l'image dans cet espace colorimétrique |
| -quiet | supprimer tous les messages d'avertissement |
| -read-mask filename | associer un masque de lecture à l'image |
| -regard-warnings | prêter attention aux messages d'avertissement |
| -repage geometry | taille et emplacement d'un canevas d'image |
| -resize geometry | redimensionner l'image |
| -respect-parentheses | les réglages restent en vigueur jusqu'à la limite de parenthèse |
| -rotate degrees | appliquer une rotation de Paeth à l'image |
| -sampling-factor geometry | facteur d'échantillonnage horizontal et vertical |
| -seed value | initialiser une nouvelle séquence de nombres pseudo-aléatoires |
| -separate | séparer un canal d'image en une image en niveaux de gris |
| -set attribute value | définir un attribut d'image |
| -sigmoidal-contrast geometry | augmenter le contraste sans saturer les hautes lumières ni les ombres |
| -similarity-threshold value | distorsion minimale pour la correspondance de (sous-)image (par défaut 0.0) |
| -size geometry | largeur et hauteur de l'image |
| -subimage-search | rechercher une sous-image |
| -synchronize | synchroniser l'image vers le périphérique de stockage |
| -taint | marquer l'image comme modifiée |
| -transparent-color color | couleur transparente |
| -trim | rogner les bords de l'image |
| -verbose | afficher des informations détaillées sur l'image |
| -version | afficher les informations de version |
| -virtual-pixel method | méthode d'accès aux pixels situés hors des limites de l'image |
| -write-mask filename | associer un masque d'écriture à l'image |


