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-03Python特征降維知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理了一篇關(guān)于Python特征降維知識(shí)點(diǎn)總結(jié)內(nèi)容,有需要的朋友們可以學(xué)習(xí)參考下。2021-08-08Face++ 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-11PyTorch?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-08Python filter過(guò)濾器原理及實(shí)例應(yīng)用
這篇文章主要介紹了Python filter過(guò)濾器原理及實(shí)例應(yīng)用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08python實(shí)現(xiàn)取余操作的簡(jiǎn)單實(shí)例
在本篇文章里小編給各位分享的是一篇關(guān)于python實(shí)現(xiàn)取余操作的簡(jiǎn)單實(shí)例內(nèi)容,需要的朋友們可以參考下。2020-08-08python爬蟲(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