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圖片去重內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
PyTorch?Dataset與DataLoader使用超詳細講解
用于處理數據樣本的代碼可能會變得凌亂且難以維護;理想情況下,我們希望數據集代碼與模型訓練代碼解耦,以獲得更好的可讀性和模塊化。PyTorch提供的torch.utils.data.DataLoader和torch.utils.data.Dataset允許你使用預下載的數據集或自己制作的數據2022-10-10
百分百成功的全網最簡約sklearn環(huán)境配置教程
這篇文章主要介紹了百分百成功的全網最簡約sklearn環(huán)境配置教程,圖文全流程講解包簡單易懂,百分百成功,需要的朋友可以參考下2023-03-03

