Python实现图片识别并去重,释放你的硬盘空间

本文介绍了如何使用Python解决图片重复问题,通过调整代码实现图片的相似度比较,并删除重复图片,以释放存储空间。作者警告读者在使用代码前要备份文件,以防误删。文章详细阐述了代码的工作原理和关键部分,包括图片的重置大小和相似度计算方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何识别同文件夹下相同的图片并删除较小的一个,保留高清大图

写在前面的警告

在您真正掌握使用这段代码之前,请勿直接用于您要清理的图片文件夹以免造成误删!请提前备份文件夹!

原始需求

由于本人特别喜欢二次元的各种美图,每次看到喜欢的都会情不自禁保存下来,而且本人写了一爬虫增量爬取了很多网站的美图(在法律和道德允许范围内)。但是出现了一个问题,就是图片出现了很多重复,导致我256G的手机存储捉襟见肘。

解决问题

那么,就试试用Python来解决一下问题吧。这里楼主用的MacOS自带的python2.7.10,如果诸位也想用那就请自行百度安装哦。
然后安装pip,通过pip install -r requirements.txt 安装依赖库。
Pillow==6.2.1

代码

from PIL import Image
from PIL import ImageFile
import sys
from webUrlGetor.settings import *

ImageFile.LOAD_TRUNCATED_IMAGES = True


class SavePic(object):
    def __init__(self):
        pass
    def getGray(self, image_file):
        tmpls = []
        for h in range(0, image_file.size[1]):  # h
            for w in range(0, image_file.size[0]):  # w
                tmpls.append(image_file.getpixel((w, h)))

        return tmpls

    def getAvg(self, ls):  # 获取平均灰度值
        return sum(ls) / len(ls)

    def getImgHash(self, fne):
        image_file = Image.open(fne)  # 打开
        image_file = image_file.resize((480, 480))  # 重置图片大小,两个值相乘越大,表示对比精确度越高
        image_file = image_file.convert("L")  # 转256灰度图
        Grayls = self.getGray(image_file)  # 灰度集合
        avg = self.getAvg(Grayls)  # 灰度平均值
        bitls = ''  # 接收获取0或1
        # 除去变宽1px遍历像素
        for h in range(1, image_file.size[1] - 1):  # h
            for w in range(1, image_file.size[0] - 1):  # w
                if image_file.getpixel((w, h)) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值