Python实现批量图片去重

 更新时间:2024年11月29日 09:28:43   作者:一晌小贪欢  
在日常办公的时候,我们经常需要对图片进行去重后保存,如果一张张进行寻找将会非常的耗时,下面我们就来看看如何使用Python实现批量图片去重吧

1、库的介绍

在日常办公的时候,我们经常需要对图片进行去重后保存,如果我们一张张进行寻找,将会非常的耗时,这时候我们可以利用python对图片进行去重处理,保留唯一项的图片

2、库的安装

用途安装
Pillow图片处理pip install Pillow -i https://pypi.tuna.tsinghua.edu.cn/simple/
imagehash图片处理pip install imagehash -i https://pypi.tuna.tsinghua.edu.cn/simple/
os获取绝对路径内置库无需安装
shutil文件移动内置库无需安装

3、核心代码

图片去重处理

img = Image.open(file_path)
hash_value = imagehash.average_hash(img)

 if hash_value in hashes:
     self.log_output.append(f"跳过重复图片: {filename}")

4、完整代码

# -*- coding: UTF-8 -*-
'''
@Project :图片去重
@File    :图片去重.py
@IDE     :PyCharm 
@Author  :一晌小贪欢(278865463@qq.com)
@Date    :2024/11/6 10:04 
'''

import os
import hashlib
from PIL import Image
import imagehash
import shutil

# 设置文件夹路径
source_folder = './图片数据源'
result_folder = './去重后结果'

# 确保目标文件夹存在
if not os.path.exists(result_folder):
    os.makedirs(result_folder)

# 用于存储图片的哈希值,判断是否重复
hashes = {}

# 遍历文件夹内的所有图片文件
for filename in os.listdir(source_folder):
    file_path = os.path.join(source_folder, filename)

    if os.path.isfile(file_path):
        try:
            # 读取图片并计算哈希值
            img = Image.open(file_path)
            hash_value = imagehash.average_hash(img)

            # 如果哈希值已存在,表示图片重复,跳过
            if hash_value in hashes:
                print(f"跳过重复图片: {filename}")
                continue

            # 如果哈希值不重复,保存图片到目标文件夹
            hashes[hash_value] = filename
            shutil.copy(file_path, os.path.join(result_folder, filename))
            print(f"保存图片: {filename}")

        except Exception as e:
            print(f"无法处理图片 {filename}: {e}")

print("图片去重完成!")

到此这篇关于Python实现批量图片去重的文章就介绍到这了,更多相关Python图片去重内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python定时采集摄像头图像上传ftp服务器功能实现

    python定时采集摄像头图像上传ftp服务器功能实现

    本文程序实现python定时采集摄像头图像上传ftp服务器功能,大家参考使用吧
    2013-12-12
  • Python dash-fastapi前后端搭建过程

    Python dash-fastapi前后端搭建过程

    项目中需要快速搭建一个前后端系统,涉及到dash-fastapi架构的时候,对该架构的时候进行总结,本文主要总结的是对该架构的基本使用,后续再对该架构的项目源码进行总结分析,感兴趣的朋友一起看看吧
    2025-03-03
  • Python中的高级数据结构详解

    Python中的高级数据结构详解

    这篇文章主要介绍了Python中的高级数据结构详解,本文讲解了Collection、Array、Heapq、Bisect、Weakref、Copy以及Pprint这些数据结构的用法,需要的朋友可以参考下
    2015-03-03
  • Python实现Windows上气泡提醒效果的方法

    Python实现Windows上气泡提醒效果的方法

    这篇文章主要介绍了Python实现Windows上气泡提醒效果的方法,涉及Python针对windows窗口操作的相关技巧,需要的朋友可以参考下
    2015-06-06
  • 用1行Python代码识别身份证信息实例

    用1行Python代码识别身份证信息实例

    这篇文章主要介绍了用1行Python代码识别身份证信息实例的相关资料,需要的朋友可以参考下
    2023-01-01
  • 使用python将微信image下.dat文件解密为.png的方法

    使用python将微信image下.dat文件解密为.png的方法

    这篇文章主要介绍了使用python将微信image下.dat文件解密为.png的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • jupyter 添加不同内核的操作

    jupyter 添加不同内核的操作

    这篇文章主要介绍了jupyter 添加不同内核的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • python学习Selenium介绍及安装部署详解

    python学习Selenium介绍及安装部署详解

    这篇文章主要为大家介绍了python学习中Selenium介绍以及如何安装部署的详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10
  • 解读requests.session()获取Cookies全过程

    解读requests.session()获取Cookies全过程

    这篇文章主要介绍了解读requests.session()获取Cookies全过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • python 将md5转为16字节的方法

    python 将md5转为16字节的方法

    今天小编就为大家分享一篇python 将md5转为16字节的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05

最新评论