menu Hyou
主页
分类
标签
关于
color_lens

... Rei ...

... cjlmonster@163.com ...

... 白开水与方便面 ...

home
主页
chevron_right
local_library
分类
chevron_right
local_offer
标签
chevron_right
brightness_auto
关于
chevron_right

标签云

Python图片查重工具库imagededup

2021-07-01 约 128 字 预计阅读 1 分钟 Python

简介

imagededup是一个基于Python的图片查重工具库,其利用散列算法,计算图片数据的重复项,并提供一些工具生成图片重复项快照 ​

提供的算法库和对应的算法名字

算法
PHash 感知哈希
AHash 平均哈希
DHash 差异哈希
WHash 小波哈希
CNN 卷积神经网络

安装

  1. 通过 pip 安装

$ pip install imagededup

如果安装超时的话,可以设置超时时间

pip install imagededup --timeout 6000

或更换国内源(推荐)

pip install imagededup -i https://mirrors.aliyun.com/pypi/simple/

  1. 通过源码安装

拷贝源码仓库到本地

$ git clone https://github.com/idealo/imagededup.git

进入源码目录,通过setuptools安装

$ cd imagededup
$ python setup.py install

使用

写demo前,先准备一些图片,这里存了一些图片在 anime 文件夹里 image.png 下面使用 感知哈希(PHash)算法,对图片 cvcv.jpg 进行重复项查询并生成快照

import os
# 导入哈希算法,对图片数据进行哈希编码
from imagededup.methods import PHash
# 导入图片查重工具,用于生成快照
from imagededup.utils import plot_duplicates

# 需要查重的图片所在文件夹
image_dir = 'c:/anime'

# 创建哈希算法对象,这里使用感知哈希(PHash)
_hash = PHash()

if __name__ == '__main__':
    # 对 image_dir 文件里的所有图片进行编码
    encodings = _hash.encode_images(image_dir=image_dir)

    dedup_json = os.path.join(image_dir, 'dedup.json')

    # 使用上面生成的编码,查找重复项,并把结果输出到 dedup.json
    duplicates = _hash.find_duplicates(encoding_map=encodings, outfile=dedup_json)

    # 需要查重的图片的名字
    image = 'cvcv.jpg'
    
	# 查重结果快照保存
    dedup_shot = os.path.join(image_dir, 'dedup_shot.jpg')

    # 查找指定图片的重复项并生成快照保存为 dedup_shot.jpg
    plot_duplicates(image_dir=image_dir, duplicate_map=duplicates, filename=image, outfile=dedup_shot)

上述代码运行后,在c:/anime文件里生成:

  • dedup.json: 查重结果字典
  • dedup_shot.jpg: 图片’cvcv.jpg’的查重结果快照

image.png 查重结果快照 dedup_shot.jpg image.png

copyright 2021 cjlmonster | 粤ICP备2021067029号 | 粤公网安备 44132302100200号
设置文档主题

主题色

主色

强调色