python進(jìn)行圖片相似度對(duì)比的兩種實(shí)現(xiàn)方法
Python提供了一些庫(kù)和工具可以用于圖片的相似度比對(duì)。下面介紹兩種常用的方法:
1、感知哈希(Perceptual Hashing)
這種方法通過(guò)計(jì)算圖像的哈希值來(lái)表示圖像的特征,從而進(jìn)行相似度比對(duì)。
常用庫(kù):imagehash 和 phash
具體代碼如下:
from PIL import Image import imagehash # 生成圖像的感知哈希 hash1 = imagehash.average_hash(Image.open('image1.jpg')) hash2 = imagehash.average_hash(Image.open('image2.jpg')) # 計(jì)算相似度 similarity = 1 - (hash1 - hash2) / len(hash1.hash) # 范圍為0到1,值越大表示相似度越高 print(similarity)
2、結(jié)構(gòu)相似性(Structural Similarity)
這種方法通過(guò)比較圖像的結(jié)構(gòu)、紋理和亮度等特征來(lái)衡量相似度。
常用庫(kù):scikit-image
具體代碼如下:
from PIL import Image from skimage import metrics from skimage.transform import resize # 打開(kāi)并調(diào)整圖像大小 image1 = Image.open('image1.jpg') image2 = Image.open('image2.jpg') image1 = image1.resize((500, 500)) # 調(diào)整圖像1的大小為500x500 image2 = image2.resize((500, 500)) # 調(diào)整圖像2的大小為500x500 # 將圖像轉(zhuǎn)換為灰度圖像 image1_gray = image1.convert("L") image2_gray = image2.convert("L") # 將圖像轉(zhuǎn)換為NumPy數(shù)組 image1_array = np.array(image1_gray) image2_array = np.array(image2_gray) # 計(jì)算結(jié)構(gòu)相似性指數(shù)(SSIM) similarity = metrics.structural_similarity(image1_array, image2_array) # 將相似性指數(shù)轉(zhuǎn)換為相似度(范圍0到1,值越大表示相似度越高) similarity = (similarity + 1) / 2 print(similarity)
到此這篇關(guān)于python進(jìn)行圖片相似度對(duì)比的兩種實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)python 圖片相似度對(duì)比內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)用戶管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)用戶管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01python內(nèi)置數(shù)據(jù)類(lèi)型之列表操作
數(shù)據(jù)類(lèi)型是一種值的集合以及定義在這種值上的一組操作。這篇文章主要介紹了python內(nèi)置數(shù)據(jù)類(lèi)型之列表的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11Python 工具類(lèi)實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳功能詳解
用python進(jìn)行大文件下載的時(shí)候,一旦出現(xiàn)網(wǎng)絡(luò)波動(dòng)問(wèn)題,導(dǎo)致文件下載到一半。如果將下載不完全的文件刪掉,那么又需要從頭開(kāi)始,如果連續(xù)網(wǎng)絡(luò)波動(dòng),是不是要頭禿了。本文提供斷點(diǎn)續(xù)傳下載工具方法,希望可以幫助到你2021-10-10Python讀取Excel數(shù)據(jù)實(shí)現(xiàn)批量生成PPT
我們常常面臨著大量的重復(fù)性工作,通過(guò)人工方式處理往往耗時(shí)耗力易出錯(cuò)。而Python在辦公自動(dòng)化方面具有天然優(yōu)勢(shì)。本文將利用讀取Excel數(shù)據(jù)并實(shí)現(xiàn)批量生成PPT,需要的可以參考一下2022-05-05Python 實(shí)現(xiàn) T00ls 自動(dòng)簽到腳本代碼(郵件+釘釘通知)
這篇文章主要介紹了Python 實(shí)現(xiàn) T00ls 自動(dòng)簽到腳本(郵件+釘釘通知),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07Python實(shí)現(xiàn)抓取頁(yè)面上鏈接的簡(jiǎn)單爬蟲(chóng)分享
這篇文章主要介紹了Python實(shí)現(xiàn)抓取頁(yè)面上鏈接的簡(jiǎn)單爬蟲(chóng)分享,本文使用了一個(gè)開(kāi)源模塊requests實(shí)現(xiàn)需求,需要的朋友可以參考下2015-01-01Python第三方庫(kù)jieba庫(kù)與中文分詞全面詳解
jieba庫(kù)是一款優(yōu)秀的Python第三方中文分詞庫(kù),jieba支持三種分詞模式:精確模式、全模式和搜索引擎模式,下面這篇文章主要給大家介紹了關(guān)于Python第三方庫(kù)jieba庫(kù)與中文分詞的相關(guān)資料,需要的朋友可以參考下2022-07-07