imagededup图片去重

imagededup使用起来非常方便,可以应对一些基本场景,但是由于所依赖的库包较多,所以我是使用anaconda创建虚拟环境防止影响生产或者测试环境

conda create -n img_dup python=3.6
conda activate img_dup

安装

pip install imagededup

简单示例

# conda环境  imagededup


from imagededup.methods import PHash
import os
import shutil

from scipy.fft import dst


def makepath(path):
    if not os.path.exists(path):
        os.makedirs(path)


phasher = PHash()
 
 
ori_path = './images'
dst_path = './images2'

makepath(dst_path)
# makepath(dst_path_duplicate)

# 生成图像目录中所有图像的二值hash编码
encodings = phasher.encode_images(image_dir=ori_path)
 
# 对已编码图像寻找重复图像
duplicates = phasher.find_duplicates(encoding_map=encodings, max_distance_threshold=3)#通过阈值控制去重率
 
 
# # 给定一幅图像,显示与其重复的图像
# from imagededup.utils import plot_duplicates
# plot_duplicates(image_dir='path/to/image/directory',
#                 duplicate_map=duplicates,
#                 filename='ukbench00120.jpg')

duplicate_list = []

for k,v in duplicates.items():
    if k not in duplicate_list:
        shutil.copy(os.path.join(ori_path,k),os.path.join(dst_path,k))
    duplicate_list.extend(v)

print('finish!!')

开源地址:
https://github.com/idealo/imagededup

API教程:
https://idealo.github.io/imagededup/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值