该工具使用近似人类视觉的算法来计算两个或多个 PNG 和/或 JPEG 图像之间的相似性。使用 SSIM 算法的变体进行比较。
返回的值为 1/SSIM-1,其中 0 表示相同的图像,>0(无界)表示差异量。值不能与其他工具直接比较。请参阅下文了解这些值的解释。
dssim file-original.png file-modified.png
将输出类似“0.02341”(越小越好)的内容,后跟文件名。
您可以提供多个文件名来将它们与第一个文件进行比较:
dssim file.png modified1.png modified2.png modified3.png
您可以保存图像来直观地显示文件之间的差异:
dssim -o difference.png file.png file-modified.png
它也可以用作图书馆。
请注意图像中的颜色配置文件。即使像素相同,不同的配置文件或缺乏对其他工具中的配置文件的支持也可能导致图像看起来不同。
差异量从 0 到无穷大。这不是一个百分比。
如果您要比较两种不同的图像压缩编解码器,请确保:
有关图像压缩基准测试的更多信息。
当您引用结果时,请包含 DSSIM 版本。版本之间的比例已发生变化。运行dssim -h
时会打印该版本。
从发布页面下载。 Mac Homebrew 和 Ubuntu Snaps 中也提供了它。
您需要 Rust 1.63 或更高版本。克隆存储库并运行:
rustup update
cargo build --release
会给你./target/release/dssim
。
根据 TID2013 数据库测量的 3.2 版分数:
2013年TID | 斯皮尔曼 | 肯德尔 |
---|---|---|
噪音 | -0.9392 | -0.7789 |
实际的 | -0.9448 | -0.7913 |
简单的 | -0.9499 | -0.8082 |
异国风情 | -0.8436 | -0.6574 |
新的 | -0.8717 | -0.6963 |
颜色 | -0.8789 | -0.7032 |
满的 | -0.8711 | -0.6984 |
确保构建dssim-core
库项目,而不是父dssim
二进制项目。
cd dssim-core
rustup update
cargo build --release
这将构建target/release/libdssim_core.a
,您可以将其链接到您的项目。使用 dssim 存储库中包含的dssim.h
。由您决定将这些文件放在哪里。
或者,在 Linux 上有一个更复杂但稍微更合适的方法:
cargo install cargo-c
cargo cinstall --release --destdir=/ --prefix=/usr/lib
这将在/usr/lib
中安装libdssim.so
并使dssim
可用于pkg-config
。请参阅target/
以了解以此方式构建的所有文件。
DSSIM 根据 AGPL 或商业许可证获得双重许可。
为了与单线程 WASM 运行时兼容,请禁用threads
Cargo 功能。它默认启用,因此要禁用它,请禁用默认功能:
dssim-core = { version = " 3.2 " , default-features = false }