Esta ferramenta calcula (dis)similaridade entre duas ou mais imagens PNG e/ou JPEG usando um algoritmo que aproxima a visão humana. A comparação é feita usando uma variante do algoritmo SSIM.
O valor retornado é 1/SSIM-1, onde 0 significa imagem idêntica e >0 (ilimitado) é a quantidade de diferença. Os valores não são diretamente comparáveis com outras ferramentas. Veja abaixo como interpretar os valores.
dssim file-original.png file-modified.png
Produzirá algo como "0,02341" (quanto menor, melhor) seguido por um nome de arquivo.
Você pode fornecer vários nomes de arquivos para compará-los com o primeiro arquivo:
dssim file.png modified1.png modified2.png modified3.png
Você pode salvar uma imagem visualizando a diferença entre os arquivos:
dssim -o difference.png file.png file-modified.png
Também pode ser usado como biblioteca.
Esteja atento aos perfis de cores nas imagens. Perfis diferentes ou a falta de suporte para perfis em outras ferramentas podem fazer com que as imagens pareçam diferentes mesmo quando os pixels são iguais.
A quantidade de diferença vai de 0 a infinito. Não é uma porcentagem.
Se você estiver comparando dois codecs de compactação de imagem diferentes, certifique-se de:
Mais sobre benchmarking de compactação de imagem.
Ao citar os resultados, inclua a versão do DSSIM. A escala mudou entre as versões. A versão é impressa quando você executa dssim -h
.
Baixe na página de lançamentos. Também está disponível no Mac Homebrew e Ubuntu Snaps.
Você precisará do Rust 1.63 ou posterior. Clone o repositório e execute:
rustup update
cargo build --release
Darei a você ./target/release/dssim
.
Pontuações para a versão 3.2 medidas no banco de dados TID2013:
TID2013 | Lanceiro | Kendall |
---|---|---|
Barulho | -0,9392 | -0,7789 |
Real | -0,9448 | -0,7913 |
Simples | -0,9499 | -0,8082 |
Exótico | -0,8436 | -0,6574 |
Novo | -0,8717 | -0,6963 |
Cor | -0,8789 | -0,7032 |
Completo | -0,8711 | -0,6984 |
Certifique-se de construir o projeto da biblioteca dssim-core
, não o projeto binário dssim
pai.
cd dssim-core
rustup update
cargo build --release
Isso criará target/release/libdssim_core.a
que você pode vincular ao seu projeto. Use dssim.h
incluído no repositório dssim. Depende de você onde colocar esses arquivos.
Alternativamente, no Linux existe um método mais complexo, mas um pouco mais adequado:
cargo install cargo-c
cargo cinstall --release --destdir=/ --prefix=/usr/lib
Isso instalará libdssim.so
em /usr/lib
e disponibilizará dssim
para pkg-config
. Consulte target/
para todos os arquivos construídos desta forma.
O DSSIM tem licença dupla sob AGPL ou licença comercial.
Para compatibilidade com tempos de execução WASM de thread único, desative o recurso threads
Cargo. Está ativado por padrão, portanto, para desativá-lo, desative os recursos padrão:
dssim-core = { version = " 3.2 " , default-features = false }