日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

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

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

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

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

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

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

服務(wù)器上網(wǎng)友上傳重復(fù)圖片太多,幾步操作檢測重復(fù)圖片并刪除
 
 
 

建立圖片哈希值函數(shù)

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])

本函數(shù)的主要目的是計(jì)算每個圖片的哈希值

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

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

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

最后返回圖片的哈希值

加載圖片,計(jì)算圖片哈希值

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")函數(shù)來獲取dataset目錄下的所有圖片

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

使用for循環(huán)遍歷所有的圖片

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

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

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

由于字典不會存在2個相同的key,所以,當(dāng)圖片的哈希值相等時,我們把路徑都賦值給同一個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)

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

當(dāng)檢測到相識圖片時,就可以直接執(zhí)行

for path in hashedPaths[1:]:

os.remove(path)

函數(shù)來進(jìn)行圖片的刪除工作,這里我們保留了第一張圖片,其他相同圖片刪除

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

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

 
 
 
 

分享到:
標(biāo)簽:服務(wù)器
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

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

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定