Skip to main content

照片重复查找器 - 在 (Mac) 照片库中搜索重复或相似的图像。

项目描述

照片重复 (photosdup)

用于扫描(Mac)照片库以查找重复项、缩略图等的工具。

photodup 工具可从PyPI获得:

pip install photosdup

3.1 中的新功能

此版本还可以扫描包含不在 Mac 照片库中的图像的任意目录。在这种情况下,假定 --no-thumbs 选项并忽略 --tag 选项。

最新版本的 Photos Duplicates 支持 OpenCV 的所有图像格式以及 iPhone 生成的 HEIC 格式。

命令行界面

安装后,可以通过向它提供您要扫描的照片库的目录来运行photosdup。

python -m photosdup Pictures/Photos.photoslibrary

默认情况下,命令行版本打印一个图像列表列表,每个内部列表表示一个原始的作为它的第一个元素,它可能的重复作为剩余的元素。

默认情况下,photsdup 使用照片预先计算的缩略图。如果这会导致任何问题,或者您想使用更大的比例尺,请改为扫描比例尺原件:

python -m photosdup Pictures/Photos.photoslibrary --no-thumbs

要使用关键字标记原始和重复并为其创建相册,您可以添加以下参数:

python -m photosdup Pictures/Photos.photoslibrary --tag

作为图书馆使用

您可以通过提供要扫描的库的路径并使用扫描便利功能来实例化 DuplicateFinder 对象: from photosdup import DuplicateFinder df = DuplicateFinder("Picturs/Photos Library.photoslibrary") print(df.scan()) 通过函数 load、represent、find 和 tag 可以实现更精细的控制。有关典型用法,请参见 scan 的实现。

图形用户界面(实验性)

有一个实验性的图形用户界面,它试图帮助定位照片库并设置参数(见下一节)。

python -m photosdup --gui

图形用户界面总是用关键字标记原始和重复,并为它们创建相册。

参数

可以在命令行和图形用户界面中提供几个参数,例如用于比较的缩小图像的尺寸。如需解释和概述,请使用帮助功能。

python -m photosdup --help

如果图形用户界面存在稳定性问题,请强制使用 0 作为 cores 参数的单核代码。

扫描结果

photodup 以两种方式存储扫描结果:

  1. 每次找到副本时,较高质量的图像(根据总文件大小判断)用关键字photodup-duplicate 标记,而较低质量的重复图像用关键字photodup-original 标记。
  2. 每组原件和副本都标有原件的 UUID,并放入名为 photosdup-UUID 的相册中。

相关工作和方法

用于缩放图像的方法受到 difPy 中采用的方法的启发。不幸的是,difPy 无法使用,因为它没有与照片数据库集成(更新数据库时会有一点麻烦),并且使用二次算法将每个图像与所有其他图像进行比较,即 N*(N-1) 比较 N图片。尽管如此,这里描述的方法是一个很大的启发: https ://towardsdatascience.com/finding-duplicate-images-with-python-71c04ec8051

重复和近似重复的搜索使用 KD 树上的半径查询。使用 SciPy 实现是因为它支持通过多个线程工作人员进行并行化: https ://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.KDTree.query_ball_point.html#scipy.spatial.KDTree.query_ball_point

最后但并非最不重要的一点是,以较低分辨率扫描形式的迭代加深用于从更昂贵的高分辨率扫描中消除可能的非重复。这方面可以通过--xdims、--ydims 和--radiuses 参数控制(参见--help 的输出)。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

photosdup-3.1.tar.gz (11.0 kB 查看哈希)

已上传 source