python图片去重复算法

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)

 

posted @ 2023-07-10 15:54  lvye001  阅读(151)  评论(0编辑  收藏  举报