#image #comparison #finding #similarity #image-path #command-line-tool

app simagef

用于查找相似图像的 CLI 工具

10 个版本

0.2.6 2024 年 4 月 3 日
0.2.5 2023 年 11 月 29 日
0.1.2 2023 年 11 月 27 日

命令行工具 中排名第 1562

Download history 2/week @ 2024-05-28 1/week @ 2024-07-02 59/week @ 2024-07-23

每月下载量 59

GPL-3.0-or-later

28KB
593

Crates.io AUR version

simagef 是一个用于查找相似图像的 CLI 工具。它接受图像路径列表,并返回相似图像的组或对。

它使用 image-match crate 生成图像签名并进行比较。还有一个选项,可以使用 image-compare crate 通过像素比较来匹配图像。

simagef 比 Perl 脚本 findimagedupes 快,但可能不会产生完全相同的结果 - 即使在签名/像素模式下,也不是为了替换而设计的。

性能

在配备 Intel Core i7-11800-H 处理器的笔记本电脑上使用默认设置,simagef 可以在 47 秒内比较 12,399 张大小适中的图像,总共进行了 76,861,401 次比较。

安装

在大多数平台上通过 cargo 安装

cargo install simagef

在 Arch Linux 上安装

yay simagef-bin

用法

比较一组图像

simagef a.png b.png c.png

您可以使用 -t--threshold 选项设置相似度阈值

simagef -t 50 a.png b.png c.png

如果文件名列表中出现 -,则可以从中读取文件名。例如,使用 fd 命令查找文件时使用它

fd . ~/my_images | simages base.png base2.png -

您可以使用 (较慢的) 像素算法,使用 -m--pixels 标志。

如果您只想获取图像对而无需分组,请使用 -p--pairs 标志。

您可以使用 -e--exec 指定外部图像查看器来比较图像组。您还可以提供命令行参数

simagef -e "gwenview -s" ~/Pictures/*

这将使用文件名组(或对)作为参数启动可执行文件。在先前的可执行文件退出后,将再次启动可执行文件以启动下一组。

注意事项

  • 代码中使用的 crossbeam 通道是无界的,我认为这是一个错误。

  • 使用递归图算法创建组。

依赖关系

~8.5MB
~136K SLoC