Python實現(xiàn)批量圖片去重
1、庫的介紹
在日常辦公的時候,我們經(jīng)常需要對圖片進(jìn)行去重后保存,如果我們一張張進(jìn)行尋找,將會非常的耗時,這時候我們可以利用python對圖片進(jìn)行去重處理,保留唯一項的圖片
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 | 獲取絕對路徑 | 內(nèi)置庫無需安裝 |
| shutil | 文件移動 | 內(nèi)置庫無需安裝 |
3、核心代碼
圖片去重處理
img = Image.open(file_path)
hash_value = imagehash.average_hash(img)
if hash_value in hashes:
self.log_output.append(f"跳過重復(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
# 設(shè)置文件夾路徑
source_folder = './圖片數(shù)據(jù)源'
result_folder = './去重后結(jié)果'
# 確保目標(biāo)文件夾存在
if not os.path.exists(result_folder):
os.makedirs(result_folder)
# 用于存儲圖片的哈希值,判斷是否重復(fù)
hashes = {}
# 遍歷文件夾內(nèi)的所有圖片文件
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)
# 如果哈希值已存在,表示圖片重復(fù),跳過
if hash_value in hashes:
print(f"跳過重復(fù)圖片: {filename}")
continue
# 如果哈希值不重復(fù),保存圖片到目標(biāo)文件夾
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("圖片去重完成!")

到此這篇關(guān)于Python實現(xiàn)批量圖片去重的文章就介紹到這了,更多相關(guān)Python圖片去重內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python定時采集攝像頭圖像上傳ftp服務(wù)器功能實現(xiàn)
本文程序?qū)崿F(xiàn)python定時采集攝像頭圖像上傳ftp服務(wù)器功能,大家參考使用吧2013-12-12
Python中的高級數(shù)據(jù)結(jié)構(gòu)詳解
這篇文章主要介紹了Python中的高級數(shù)據(jù)結(jié)構(gòu)詳解,本文講解了Collection、Array、Heapq、Bisect、Weakref、Copy以及Pprint這些數(shù)據(jù)結(jié)構(gòu)的用法,需要的朋友可以參考下2015-03-03
Python實現(xiàn)Windows上氣泡提醒效果的方法
這篇文章主要介紹了Python實現(xiàn)Windows上氣泡提醒效果的方法,涉及Python針對windows窗口操作的相關(guān)技巧,需要的朋友可以參考下2015-06-06
使用python將微信image下.dat文件解密為.png的方法
這篇文章主要介紹了使用python將微信image下.dat文件解密為.png的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
python學(xué)習(xí)Selenium介紹及安裝部署詳解
這篇文章主要為大家介紹了python學(xué)習(xí)中Selenium介紹以及如何安裝部署的詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-10-10
解讀requests.session()獲取Cookies全過程
這篇文章主要介紹了解讀requests.session()獲取Cookies全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02
python 將md5轉(zhuǎn)為16字節(jié)的方法
今天小編就為大家分享一篇python 將md5轉(zhuǎn)為16字節(jié)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05

