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中的元组(Tuple)操作实例详解

    Python中的元组(Tuple)操作实例详解

    Python 元组和列表很像,也是一个包含多个元素的集合,下面这篇文章主要给大家介绍了关于Python中元组(Tuple)操作的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-02-02
  • Python文件常见操作实例分析【读写、遍历】

    Python文件常见操作实例分析【读写、遍历】

    这篇文章主要介绍了Python文件常见操作,结合实例形式分析Python针对文件的读写、遍历等相关操作技巧,需要的朋友可以参考下
    2018-12-12
  • Python实现图片指定位置加图片水印(附Pyinstaller打包exe)

    Python实现图片指定位置加图片水印(附Pyinstaller打包exe)

    这篇文章主要介绍了Python实现图片指定位置加图片水印,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Pytest框架 conftest.py文件的使用详解

    Pytest框架 conftest.py文件的使用详解

    conftest.py是pytest特有的本地测试配置文件,既可以用来设置项目级别的fixture,也可以用来导入外部插件,本文给大家介绍Pytest框架 conftest.py文件的使用,感兴趣的朋友一起看看吧
    2022-06-06
  • Python requests设置代理的方法步骤

    Python requests设置代理的方法步骤

    这篇文章主要介绍了Python requests设置代理的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Python基于多线程实现抓取数据存入数据库的方法

    Python基于多线程实现抓取数据存入数据库的方法

    这篇文章主要介绍了Python基于多线程实现抓取数据存入数据库的方法,结合实例形式分析了Python使用数据库类与多线程类进行数据抓取与写入数据库操作的具体使用技巧,需要的朋友可以参考下
    2018-06-06
  • Scrapy框架基本命令与settings.py设置

    Scrapy框架基本命令与settings.py设置

    这篇文章主要介绍了Scrapy框架基本命令与settings.py设置,结合实例形式分析了创建爬虫项目、创建爬虫文件、存储、打开网页及settings.py设置等相关操作技巧,需要的朋友可以参考下
    2020-02-02
  • 对python中if语句的真假判断实例详解

    对python中if语句的真假判断实例详解

    今天小编就为大家分享一篇对python中if语句的真假判断实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • Pytorch中torch.nn.Softmax的dim参数用法说明

    Pytorch中torch.nn.Softmax的dim参数用法说明

    这篇文章主要介绍了Pytorch中torch.nn.Softmax的dim参数用法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • 快速进修Python指南之迭代器Iterator与生成器

    快速进修Python指南之迭代器Iterator与生成器

    这篇文章主要为大家介绍了Java开发者快速进修Python指南之迭代器Iterator与生成器示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12

最新评论