重复图片查找器

重复图片查找器

当我下载档案时,它们通常包含我已经在另一个文件夹中的图像,但大多数情况下使用不同的名称或文件格式。

我的问题:您知道什么脚本/软件1可以识别2 张重复的图像?

它应该让您判断它们是否真的相同(并且可能删除质量较差的图像)。

最好是1跨平台,但 Linux 就足够了

2例如通过颜色差异或其他东西

答案1

对于 Windows,有一个小型免费软件“visipic”。它可以搜索相似的图片并让您根据图片的质量选择删除或移动文件。

下载 vispichttp://www.visipics.info/index.php?title=下载

答案2

这里有一些 Python 魔法可以帮助你。确保已安装 PIL:

import os, sys, glob
import ImageChops, Image


def equal(im1, im2):
    return ImageChops.difference(im1, im2).getbbox() is None

dir1 = sys.argv[1]
dir2 = sys.argv[2]

for im1 in glob.glob(os.path.join(dir1, "*.jpg")):
    for im2 in glob.glob(os.path.join(dir2, "*.jpg")):
        if im1!=im2 and equal(Image.open(im1), Image.open(im2)):
            print im1, "==", im2

假设脚本保存为 image-diff.py:

$python 图像差异.py dir1 dir2

它会查找 dir1 和 dir2 中的所有 JPG 图像,并进行比较。除了 ImageChops.difference 所花费的时间外,它的运行时间为 O(N^2),因此可能不适合大量图像存档。但它能给你提供思路。请随意修改和破解。

答案3

对于逐字节复制图像,您可以使用diff终端中的命令(man diff)对于逻辑上可能不相同的图像,有一个名为的程序fdupes,我曾经在 ubuntu 中使用过。

相关内容