import os
from imagededup.methods import PHash
phasher = PHash()
def process_file(img_path):
# 生成图像目录中所有图像的二值hash编码
encodings = phasher.encode_images(image_dir=img_path)
duplicates = phasher.find_duplicates(encoding_map=encodings)
only_img = [] # 唯一图片
like_img = [] # 相似图片
for img, img_list in duplicates.items():
if img not in only_img and img not in like_img:
only_img.append(img)
like_img.extend(img_list)
for p in like_img:
pic_full_path = os.path.join(img_path,p)
if os.path.exists(pic_full_path):
os.remove(pic_full_path)
print('相似图片{}张,唯一图片{}张'.format(len(like_img),len(only_img)))
if __name__ == '__main__':
image_path = r'F:\2023_07_10\zhangyifei\pic_data_01\lou_shao'
process_file(image_path)