imagededup使用起来非常方便,可以应对一些基本场景,但是由于所依赖的库包较多,所以我是使用
anaconda创建虚拟环境防止影响生产或者测试环境
conda create -n img_dup python=3.6
conda activate img_dup
安装
pip install imagededup
简单示例
from imagededup.methods import PHash
phasher = PHash()
# 生成图像目录中所有图像的二值hash编码
encodings = phasher.encode_images(image_dir='path/to/image/directory')
# find_duplicates方法 对已编码图像寻找重复图像
duplicates = phasher.find_duplicates(encoding_map=encodings)
"""
{
'image1.jpg': ['image1_duplicate1.jpg',
'image1_duplicate2.jpg'],
'image2.jpg': [..],
..
}
"""
# 绘制出指定图片的相同照片
from imagededup.utils import plot_duplicates
plot_duplicates(image_dir='path/to/image/directory',
duplicate_map=duplicates,
filename='image1.jpg')
# find_duplicates_to_remove 返回重复文件的文件列表
duplicates = phasher.find_duplicates_to_remove(encoding_map=encodings)
"""
[
'image1_duplicate1.jpg',
'image1_duplicate2.jpg',
...
]
"""
开源地址:
https://github.com/idealo/imagededup
API教程:
https://idealo.github.io/imagededup/