#image #comparison #command-line-tool

bin+lib img_diff

命令行工具,用于比较两个结构相似的文件夹中的图像并输出差异图像

9个稳定版本 (4个主要版本)

5.0.0 2019年12月27日
4.0.0 2019年7月12日
3.0.2 2018年12月17日
2.0.0 2018年1月22日
1.1.0 2018年1月16日

#384 in 图像

每月21次下载

MIT 许可证

31KB
649

img_diff

Linux/OSX Build Status Windows Build Status Current Version dependency status License: MIT

Rust编写的命令行工具,用于比较两个结构相似的文件夹中的图像并输出差异图像。

输出的值表示像素数据与给定图像中每个像素最高可能值的差异百分比。

未来功能

  • 支持多种图像格式(JPEG)。
  • 允许输出阈值以输出差异文件。

来自CLI WG

  • 改进stdout和stderr效率(使用流避免刷新)。
  • 添加日志(log crate)
  • 添加进度条(indicatif crate)
  • 添加输出类型(convey crate)
  • 生成man页面(clap crate)

用法

img_diff -s path\to\images -d path\to\images\to\compare -f path\to\output\diff\images

将遍历-s目录及其子目录中的所有文件,并将它们与-f目录中的文件进行比较,如果发现差异,则输出到-f目录。

-v

启用详细模式,并在发现差异时输出到stderr。

在CI中的用法

img_diff -s path\to\images -d path\to\images\to\compare -f path\to\output\diff\images -v 2> results/output.txt

这将启用详细输出,并将失败的比较结果放入output.txt中。我们可以使用此功能启用CI,例如:if [[ -s results/output.txt ]]; then exit 1; else exit 0; fi

从源码编译

 git clone https://github.com/Mike-Neto/img_diff.git
 cd img_diff
 cargo build --release

构建所有文件

cargo build && cargo test && cargo test --benches
cargo +beta build && cargo +beta test && cargo +beta test --benches
cargo +nightly build && cargo +nightly test && cargo +nightly test --benches

测试

cargo test

文档

cargo doc --open

crate

Crates.io

下载

您需要 Rust

cargo install img_diff

您还可以在github releases上下载您平台上的二进制发布版

发布过程

cargo bump (major|minor|patch)
git commit -m "v4.0.0"
git tag -a v4.0.0 -m "v4.0.0"
git push --tags
cargo publish

基准测试和性能分析

依赖项

sudo apt install valgrind kcachegrind

本地基准测试

将运行所有基准测试针对本地数据。

cargo clean
git checkout master
cargo bench
git checkout $CURRENT_WORKING_BRANCH
cargo bench

性能分析更改

cargo bench img_diff/subtract
# Check for the binary name which will then be used as input bellow
valgrind --tool=callgrind --dump-instr=yes --collect-jumps=yes --simulate-cache=yes target/release/deps/bench-f72b65412859cf2f --bench img_diff/subtract
# Check for the above output file name
kcachegrind callgrind.out.20282

许可证

版权所有 2018 Miguel Mendes

在此条件下,任何人获得此软件及其相关文档的副本(“软件”),均可不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本,并允许向提供软件的人员授予此类权限,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。

软件按“现状”提供,不提供任何形式的保证,无论是明示的、暗示的,包括但不限于适销性、特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任源于合同、侵权或其他原因,以及与软件的使用或其他方式有关。

依赖项

~9–18MB
~237K SLoC