Этот инструмент вычисляет (не)сходство между двумя или более изображениями 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
.
Результаты версии 3.2, измеренные по базе данных TID2013:
ТИД2013 | Копейщик | Кендалл |
---|---|---|
Шум | -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.h
включенный в репозиторий dssim. Вам решать, куда вы поместите эти файлы.
Альтернативно, в Linux есть более сложный, но немного более правильный метод:
cargo install cargo-c
cargo cinstall --release --destdir=/ --prefix=/usr/lib
Это установит libdssim.so
в /usr/lib
и сделает dssim
доступным для pkg-config
. См. target/
для всех файлов, созданных таким образом.
DSSIM имеет двойную лицензию AGPL или коммерческую лицензию.
Для совместимости с однопоточными средами выполнения WASM отключите функцию threads
Cargo. Он включен по умолчанию, поэтому, чтобы отключить его, отключите функции по умолчанию:
dssim-core = { version = " 3.2 " , default-features = false }