亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

電腦中重復圖片很多,不刪吧,占用電腦資源,刪除吧,一個一個的找,很是麻煩。還好我們會Python,畢竟python號稱是世界上無所不能的編程語言(這里請不要討論誰是世界上最好的編程語言)

1、加載所有圖片,獲取圖片的信息以及圖片路徑

2、計算每個圖片的哈希值,并保存

3、檢測每個哈希值,若相同,表明圖片相同

4、根據哈希值反推圖片的路徑,然后進行圖片的刪除,獲取其他操作

服務器上網友上傳重復圖片太多,幾步操作檢測重復圖片并刪除
 
 
 

建立圖片哈希值函數

import numpy as np

import cv2

import os

def dhash(image, hashSize=8):

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

resized = cv2.resize(gray, (hashSize + 1, hashSize))

diff = resized[:, 1:] > resized[:, :-1]

return sum([2 ** i for (i, v) in enumerate(diff.flatten()) if v])

本函數的主要目的是計算每個圖片的哈希值

首先我們使用cv2.cvtColor函數把圖片從RGB空間轉換為灰度照片(便于計算)

然后使用cv2.resize函數把圖片縮?。ㄟ@里的操作也是為了快速計算)

diff = resized[:, 1:] > resized[:, :-1]來計算相鄰列像素之間的相對水平梯度

最后返回圖片的哈希值

加載圖片,計算圖片哈希值

hashes = {}

imagePaths=[]

for root, dirs, files in os.walk("dataset"):

for file in files:

imagePaths.Append(os.path.join(root, file))

for imagePath in imagePaths:

image = cv2.imread(imagePath)

h = dhash(image)

path = hashes.get(h, [])

path.append(imagePath)

hashes[h] = path

我們新建2個初識變量,一個來保存圖片路徑,一個來保存圖片路徑以及圖片哈希值的字典

首先使用os.walk("dataset")函數來獲取dataset目錄下的所有圖片

使用for循環來獲取所有圖片的路徑(絕對路徑)

使用for循環遍歷所有的圖片

image = cv2.imread(imagePath)來讀取圖片

然后使用h = dhash(image)函數來獲取圖片的哈希值

使用圖片哈希值作為key,圖片路徑作為value,來保存所有圖片的哈希值與圖片路徑

由于字典不會存在2個相同的key,所以,當圖片的哈希值相等時,我們把路徑都賦值給同一個key值

遍歷字典,獲取相同圖片

for (h, hashedPaths) in hashes.items():

if len(hashedPaths) > 1:

print("same num:", len(hashedPaths))

if -1 <= 0:

same = None

for p in hashedPaths:

image = cv2.imread(p)

image = cv2.resize(image, (150, 150))

if same is None:

same = images

else:

same = np.hstack([montage, image])

cv2.imshow("same", same)

cv2.waitKey(0)

else:

for path in hashedPaths[1:]:

os.remove(path)

我們遍歷字典,當某個key值下面對應的圖片路徑有2個或者2個以上時,這證明存在相識圖片

當檢測到相識圖片時,就可以直接執行

for path in hashedPaths[1:]:

os.remove(path)

函數來進行圖片的刪除工作,這里我們保留了第一張圖片,其他相同圖片刪除

很多時候,我們想看看相識圖片的數量以及其他信息

這里我們打印了相識圖片的數量,最后把相識的圖片顯示出來

 
 
 
 

分享到:
標簽:服務器
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定