自学内容网 自学内容网

python用哈希删除文件夹中重复的图片

写在前面:删除的不完全精确,但是在可以接受的范围内,有误删的情况。所以,删之前,要备份!!!!windows下可用,linux修改文件夹即可!

安装包 pip install Pillow imagehash

代码

import os
from PIL import Image
import imagehash

def find_and_remove_duplicates(image_folder):
    seen_hashes = set()
    # 遍历文件夹中的所有文件
    for filename in os.listdir(image_folder):
        file_path = os.path.join(image_folder, filename)
        
        # 确保是文件并且是图像
        if os.path.isfile(file_path):
            try:
                # 打开图像并计算哈希值(使用 perceptual hash)
                img = Image.open(file_path)
                hash_value = imagehash.phash(img)
                
                # 检查哈希值是否已经存在
                if hash_value in seen_hashes:
                    # 如果存在,删除该文件
                    os.remove(file_path)
                    print(f"删除重复文件: {file_path}")
                else:
                    # 如果不存在,添加到集合中
                    seen_hashes.add(hash_value)
            except Exception as e:
                print(f"处理文件 {file_path} 时发生错误: {e}")

# 指定要检查重复的文件夹
image_folder = r"E:\delete"
find_and_remove_duplicates(image_folder)


原文地址:https://blog.csdn.net/waterice0717/article/details/143895498

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!