Python實(shí)現(xiàn)批量圖片去重
1、庫(kù)的介紹
在日常辦公的時(shí)候,我們經(jīng)常需要對(duì)圖片進(jìn)行去重后保存,如果我們一張張進(jìn)行尋找,將會(huì)非常的耗時(shí),這時(shí)候我們可以利用python對(duì)圖片進(jìn)行去重處理,保留唯一項(xiàng)的圖片
2、庫(kù)的安裝
| 庫(kù) | 用途 | 安裝 |
|---|---|---|
| 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 | 獲取絕對(duì)路徑 | 內(nèi)置庫(kù)無(wú)需安裝 |
| shutil | 文件移動(dòng) | 內(nèi)置庫(kù)無(wú)需安裝 |
3、核心代碼
圖片去重處理
img = Image.open(file_path)
hash_value = imagehash.average_hash(img)
if hash_value in hashes:
self.log_output.append(f"跳過(guò)重復(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)
# 用于存儲(chǔ)圖片的哈希值,判斷是否重復(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:
# 讀取圖片并計(jì)算哈希值
img = Image.open(file_path)
hash_value = imagehash.average_hash(img)
# 如果哈希值已存在,表示圖片重復(fù),跳過(guò)
if hash_value in hashes:
print(f"跳過(guò)重復(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"無(wú)法處理圖片 {filename}: {e}")
print("圖片去重完成!")

到此這篇關(guān)于Python實(shí)現(xiàn)批量圖片去重的文章就介紹到這了,更多相關(guān)Python圖片去重內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
人臉識(shí)別經(jīng)典算法一 特征臉?lè)椒ǎ‥igenface)
這篇文章主要為大家詳細(xì)介紹了人臉識(shí)別經(jīng)典算法一,特征臉?lè)椒‥igenface,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03
Python特征降維知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理了一篇關(guān)于Python特征降維知識(shí)點(diǎn)總結(jié)內(nèi)容,有需要的朋友們可以學(xué)習(xí)參考下。2021-08-08
Face++ API實(shí)現(xiàn)手勢(shì)識(shí)別系統(tǒng)設(shè)計(jì)
這篇文章主要為大家詳細(xì)介紹了Face++ API實(shí)現(xiàn)手勢(shì)識(shí)別系統(tǒng)設(shè)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11
PyTorch?Dataset與DataLoader使用超詳細(xì)講解
用于處理數(shù)據(jù)樣本的代碼可能會(huì)變得凌亂且難以維護(hù);理想情況下,我們希望數(shù)據(jù)集代碼與模型訓(xùn)練代碼解耦,以獲得更好的可讀性和模塊化。PyTorch提供的torch.utils.data.DataLoader和torch.utils.data.Dataset允許你使用預(yù)下載的數(shù)據(jù)集或自己制作的數(shù)據(jù)2022-10-10
淺談Python 釘釘報(bào)警必備知識(shí)系統(tǒng)講解
這篇文章主要介紹了淺談Python 釘釘報(bào)警必備知識(shí)系統(tǒng)講解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
Python filter過(guò)濾器原理及實(shí)例應(yīng)用
這篇文章主要介紹了Python filter過(guò)濾器原理及實(shí)例應(yīng)用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
python實(shí)現(xiàn)取余操作的簡(jiǎn)單實(shí)例
在本篇文章里小編給各位分享的是一篇關(guān)于python實(shí)現(xiàn)取余操作的簡(jiǎn)單實(shí)例內(nèi)容,需要的朋友們可以參考下。2020-08-08
python爬蟲(chóng) 批量下載zabbix文檔代碼實(shí)例
這篇文章主要介紹了python爬蟲(chóng) 批量下載zabbix文檔代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
百分百成功的全網(wǎng)最簡(jiǎn)約sklearn環(huán)境配置教程
這篇文章主要介紹了百分百成功的全網(wǎng)最簡(jiǎn)約sklearn環(huán)境配置教程,圖文全流程講解包簡(jiǎn)單易懂,百分百成功,需要的朋友可以參考下2023-03-03

