Cet outil calcule la (dis)similarité entre deux ou plusieurs images PNG et/ou JPEG à l'aide d'un algorithme se rapprochant de la vision humaine. La comparaison est effectuée à l'aide d'une variante de l'algorithme SSIM.
La valeur renvoyée est 1/SSIM-1, où 0 signifie une image identique et >0 (illimité) correspond à la différence. Les valeurs ne sont pas directement comparables à celles d’autres outils. Voir ci-dessous pour l'interprétation des valeurs.
dssim file-original.png file-modified.png
Affichera quelque chose comme "0,02341" (plus petit est mieux) suivi d'un nom de fichier.
Vous pouvez fournir plusieurs noms de fichiers pour les comparer tous avec le premier fichier :
dssim file.png modified1.png modified2.png modified3.png
Vous pouvez enregistrer une image visualisant la différence entre les fichiers :
dssim -o difference.png file.png file-modified.png
Il est également utilisable comme bibliothèque.
Veuillez faire attention aux profils de couleurs dans les images. Des profils différents, ou le manque de prise en charge des profils dans d'autres outils, peuvent rendre les images différentes même lorsque les pixels sont identiques.
Le montant de la différence va de 0 à l’infini. Ce n'est pas un pourcentage.
Si vous comparez deux codecs de compression d'image différents, assurez-vous soit :
En savoir plus sur l’analyse comparative de la compression d’images.
Lorsque vous citez les résultats, veuillez inclure la version DSSIM. L'échelle a changé entre les versions. La version est imprimée lorsque vous exécutez dssim -h
.
Télécharger à partir de la page des versions. Il est également disponible dans Mac Homebrew et Ubuntu Snaps.
Vous aurez besoin de Rust 1.63 ou version ultérieure. Clonez le dépôt et exécutez :
rustup update
cargo build --release
Vous donnera ./target/release/dssim
.
Scores pour la version 3.2 mesurés par rapport à la base de données TID2013 :
TID2013 | Lancier | Kendall |
---|---|---|
Bruit | -0,9392 | -0,7789 |
Réel | -0,9448 | -0,7913 |
Simple | -0,9499 | -0,8082 |
Exotique | -0,8436 | -0,6574 |
Nouveau | -0,8717 | -0,6963 |
Couleur | -0,8789 | -0,7032 |
Complet | -0,8711 | -0,6984 |
Assurez-vous de créer le projet de bibliothèque dssim-core
, et non le projet binaire dssim
parent.
cd dssim-core
rustup update
cargo build --release
Cela créera target/release/libdssim_core.a
que vous pourrez lier à votre projet. Utilisez dssim.h
inclus dans le dépôt dssim. C'est à vous de décider où vous placez ces fichiers.
Alternativement, sous Linux, il existe une méthode plus complexe mais légèrement plus appropriée :
cargo install cargo-c
cargo cinstall --release --destdir=/ --prefix=/usr/lib
Cela installera libdssim.so
dans /usr/lib
et rendra dssim
disponible pour pkg-config
. Voir target/
pour tous les fichiers construits de cette façon.
DSSIM est sous double licence AGPL ou licence commerciale.
Pour la compatibilité avec les environnements d'exécution WASM monothread, désactivez la fonctionnalité threads
Cargo. Il est activé par défaut, donc pour le désactiver, désactivez les fonctionnalités par défaut :
dssim-core = { version = " 3.2 " , default-features = false }