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图片去重内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 人脸识别经典算法一 特征脸方法(Eigenface)

    人脸识别经典算法一 特征脸方法(Eigenface)

    这篇文章主要为大家详细介绍了人脸识别经典算法一,特征脸方法Eigenface,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Python特征降维知识点总结

    Python特征降维知识点总结

    在本篇文章里小编给大家整理了一篇关于Python特征降维知识点总结内容,有需要的朋友们可以学习参考下。
    2021-08-08
  • Face++ API实现手势识别系统设计

    Face++ API实现手势识别系统设计

    这篇文章主要为大家详细介绍了Face++ API实现手势识别系统设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • PyTorch Dataset与DataLoader使用超详细讲解

    PyTorch Dataset与DataLoader使用超详细讲解

    用于处理数据样本的代码可能会变得凌乱且难以维护;理想情况下,我们希望数据集代码与模型训练代码解耦,以获得更好的可读性和模块化。PyTorch提供的torch.utils.data.DataLoader和torch.utils.data.Dataset允许你使用预下载的数据集或自己制作的数据
    2022-10-10
  • 浅谈Python 钉钉报警必备知识系统讲解

    浅谈Python 钉钉报警必备知识系统讲解

    这篇文章主要介绍了浅谈Python 钉钉报警必备知识系统讲解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Python filter过滤器原理及实例应用

    Python filter过滤器原理及实例应用

    这篇文章主要介绍了Python filter过滤器原理及实例应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • python实现取余操作的简单实例

    python实现取余操作的简单实例

    在本篇文章里小编给各位分享的是一篇关于python实现取余操作的简单实例内容,需要的朋友们可以参考下。
    2020-08-08
  • python爬虫 批量下载zabbix文档代码实例

    python爬虫 批量下载zabbix文档代码实例

    这篇文章主要介绍了python爬虫 批量下载zabbix文档代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 百分百成功的全网最简约sklearn环境配置教程

    百分百成功的全网最简约sklearn环境配置教程

    这篇文章主要介绍了百分百成功的全网最简约sklearn环境配置教程,图文全流程讲解包简单易懂,百分百成功,需要的朋友可以参考下
    2023-03-03
  • python中if及if-else如何使用

    python中if及if-else如何使用

    在本篇文章里小编给大家整理的是关于python中if及if-else使用方法,需要的朋友们可以参考下。
    2020-06-06

最新评论