Esta herramienta calcula la (des)similitud entre dos o más imágenes PNG y/o JPEG utilizando un algoritmo que se aproxima a la visión humana. La comparación se realiza utilizando una variante del algoritmo SSIM.
El valor devuelto es 1/SSIM-1, donde 0 significa imagen idéntica y >0 (ilimitado) es la cantidad de diferencia. Los valores no son directamente comparables con otras herramientas. Consulte a continuación cómo interpretar los valores.
dssim file-original.png file-modified.png
Generará algo como "0.02341" (cuanto más pequeño, mejor) seguido de un nombre de archivo.
Puede proporcionar varios nombres de archivos para compararlos todos con el primer archivo:
dssim file.png modified1.png modified2.png modified3.png
Puede guardar una imagen visualizando la diferencia entre los archivos:
dssim -o difference.png file.png file-modified.png
También se puede utilizar como biblioteca.
Tenga en cuenta los perfiles de color en las imágenes. Los diferentes perfiles, o la falta de compatibilidad con perfiles en otras herramientas, pueden hacer que las imágenes parezcan diferentes incluso cuando los píxeles sean los mismos.
La cantidad de diferencia va de 0 a infinito. No es un porcentaje.
Si está comparando dos códecs de compresión de imágenes diferentes, asegúrese de:
Más información sobre la evaluación comparativa de la compresión de imágenes.
Cuando cite resultados, incluya la versión DSSIM. La escala ha cambiado entre versiones. La versión se imprime cuando ejecuta dssim -h
.
Descargar desde la página de lanzamientos. También está disponible en Mac Homebrew y Ubuntu Snaps.
Necesitará Rust 1.63 o posterior. Clona el repositorio y ejecuta:
rustup update
cargo build --release
Le dará ./target/release/dssim
.
Puntuaciones de la versión 3.2 medidas con respecto a la base de datos TID2013:
TID2013 | Lancero | Kendall |
---|---|---|
Ruido | -0.9392 | -0.7789 |
Actual | -0.9448 | -0.7913 |
Simple | -0.9499 | -0.8082 |
Exótico | -0.8436 | -0.6574 |
Nuevo | -0.8717 | -0.6963 |
Color | -0.8789 | -0.7032 |
Lleno | -0.8711 | -0.6984 |
Asegúrese de crear el proyecto de biblioteca dssim-core
, no el proyecto binario dssim
principal.
cd dssim-core
rustup update
cargo build --release
Esto creará target/release/libdssim_core.a
que puede vincular con su proyecto. Utilice dssim.h
incluido en el repositorio de dssim. Depende de usted dónde coloca estos archivos.
Alternativamente, en Linux existe un método más complicado pero un poco más adecuado:
cargo install cargo-c
cargo cinstall --release --destdir=/ --prefix=/usr/lib
Esto instalará libdssim.so
en /usr/lib
y hará que dssim
esté disponible para pkg-config
. Consulte target/
para ver todos los archivos creados de esta manera.
DSSIM tiene doble licencia AGPL o licencia comercial.
Para compatibilidad con tiempos de ejecución WASM de un solo subproceso, deshabilite la función threads
Cargo. Está habilitado de forma predeterminada, así que para deshabilitarlo, deshabilite las funciones predeterminadas:
dssim-core = { version = " 3.2 " , default-features = false }