Dieses Tool berechnet die (Un-)Ähnlichkeit zwischen zwei oder mehr PNG- und/oder JPEG-Bildern mithilfe eines Algorithmus, der dem menschlichen Sehvermögen nahe kommt. Der Vergleich erfolgt mit einer Variante des SSIM-Algorithmus.
Der zurückgegebene Wert ist 1/SSIM-1, wobei 0 identisches Bild bedeutet und >0 (unbegrenzt) den Unterschiedsbetrag angibt. Werte sind nicht direkt mit anderen Tools vergleichbar. Zur Interpretation der Werte siehe unten.
dssim file-original.png file-modified.png
Gibt etwa „0,02341“ (kleiner ist besser) gefolgt von einem Dateinamen aus.
Sie können mehrere Dateinamen angeben, um sie alle mit der ersten Datei zu vergleichen:
dssim file.png modified1.png modified2.png modified3.png
Sie können ein Bild speichern, das den Unterschied zwischen den Dateien visualisiert:
dssim -o difference.png file.png file-modified.png
Es ist auch als Bibliothek nutzbar.
Bitte achten Sie auf Farbprofile in den Bildern. Unterschiedliche Profile oder fehlende Profilunterstützung in anderen Tools können dazu führen, dass Bilder unterschiedlich aussehen, selbst wenn die Pixel gleich sind.
Der Betrag der Differenz reicht von 0 bis unendlich. Es ist kein Prozentsatz.
Wenn Sie zwei verschiedene Bildkomprimierungscodecs vergleichen, stellen Sie sicher, dass Sie Folgendes tun:
Mehr zum Benchmarking der Bildkomprimierung.
Wenn Sie Ergebnisse zitieren, geben Sie bitte die DSSIM-Version an. Der Maßstab hat sich zwischen den Versionen geändert. Die Version wird gedruckt, wenn Sie dssim -h
ausführen.
Von der Veröffentlichungsseite herunterladen. Es ist auch in Mac Homebrew und Ubuntu Snaps verfügbar.
Sie benötigen Rust 1.63 oder höher. Klonen Sie das Repo und führen Sie Folgendes aus:
rustup update
cargo build --release
Gibt Ihnen ./target/release/dssim
.
Ergebnisse für Version 3.2 gemessen an der TID2013-Datenbank:
TID2013 | Speermann | Kendall |
---|---|---|
Lärm | -0,9392 | -0,7789 |
Tatsächlich | -0,9448 | -0,7913 |
Einfach | -0,9499 | -0,8082 |
Exotisch | -0,8436 | -0,6574 |
Neu | -0,8717 | -0,6963 |
Farbe | -0,8789 | -0,7032 |
Voll | -0,8711 | -0,6984 |
Stellen Sie sicher, dass Sie dssim-core
-Bibliotheksprojekt erstellen, nicht das übergeordnete dssim
Binärprojekt.
cd dssim-core
rustup update
cargo build --release
Dadurch wird target/release/libdssim_core.a
erstellt, das Sie mit Ihrem Projekt verknüpfen können. Verwenden Sie dssim.h
das im dssim-Repository enthalten ist. Es liegt an Ihnen, wo Sie diese Dateien ablegen.
Alternativ gibt es unter Linux eine aufwändigere, aber etwas geeignetere Methode:
cargo install cargo-c
cargo cinstall --release --destdir=/ --prefix=/usr/lib
Dadurch wird libdssim.so
in /usr/lib
installiert und dssim
für pkg-config
verfügbar gemacht. Alle auf diese Weise erstellten Dateien finden Sie target/
.
DSSIM ist unter AGPL oder einer kommerziellen Lizenz doppelt lizenziert.
Um die Kompatibilität mit Single-Thread-WASM-Laufzeiten zu gewährleisten, deaktivieren Sie die threads
Cargo-Funktion. Es ist standardmäßig aktiviert. Um es zu deaktivieren, deaktivieren Sie die Standardfunktionen:
dssim-core = { version = " 3.2 " , default-features = false }