Python實現(xiàn)批量圖片去重
更新時間:2024年11月29日 09:28:43 作者:一晌小貪歡
在日常辦公的時候,我們經(jīng)常需要對圖片進行去重后保存,如果一張張進行尋找將會非常的耗時,下面我們就來看看如何使用Python實現(xiàn)批量圖片去重吧
1、庫的介紹
在日常辦公的時候,我們經(jīng)常需要對圖片進行去重后保存,如果我們一張張進行尋找,將會非常的耗時,這時候我們可以利用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 | 獲取絕對路徑 | 內(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)文章
人臉識別經(jīng)典算法一 特征臉方法(Eigenface)
這篇文章主要為大家詳細介紹了人臉識別經(jīng)典算法一,特征臉方法Eigenface,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03Face++ API實現(xiàn)手勢識別系統(tǒng)設(shè)計
這篇文章主要為大家詳細介紹了Face++ API實現(xiàn)手勢識別系統(tǒng)設(shè)計,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-11-11PyTorch?Dataset與DataLoader使用超詳細講解
用于處理數(shù)據(jù)樣本的代碼可能會變得凌亂且難以維護;理想情況下,我們希望數(shù)據(jù)集代碼與模型訓(xùn)練代碼解耦,以獲得更好的可讀性和模塊化。PyTorch提供的torch.utils.data.DataLoader和torch.utils.data.Dataset允許你使用預(yù)下載的數(shù)據(jù)集或自己制作的數(shù)據(jù)2022-10-10百分百成功的全網(wǎng)最簡約sklearn環(huán)境配置教程
這篇文章主要介紹了百分百成功的全網(wǎng)最簡約sklearn環(huán)境配置教程,圖文全流程講解包簡單易懂,百分百成功,需要的朋友可以參考下2023-03-03