欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:算法 評估數(shù)據(jù)相似度的幾種方法

柚子快報激活碼778899分享:算法 評估數(shù)據(jù)相似度的幾種方法

http://yzkb.51969.com/

1、結(jié)構(gòu)化相似性指數(shù) (SSIM)

優(yōu)點:綜合考慮了亮度、對比度和結(jié)構(gòu)(圖像中的邊緣和紋理等高頻信息)等因素。 缺點:不考慮色彩信息

import cv2

# 函數(shù):計算兩張圖片的結(jié)構(gòu)化相似性(SSIM)

def calculate_ssim(image1, image2):

# 讀取圖片

img1 = cv2.imread(image1)

img2 = cv2.imread(image2)

# 將圖片轉(zhuǎn)換為灰度圖

gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)

gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)

# 計算SSIM,分數(shù)范圍通常是 ([-1, 1]),其中 1 表示完全相似,-1 表示完全不同,0 表示沒有任何相似性

(score, _) = cv2.compareSSIM(gray1, gray2, full=True)

return score

【注】轉(zhuǎn)為灰度的原因是1、不考慮色彩信息;2、加快計算速度。

2、峰值信噪比 (PSNR)

主要用于比較同一圖像的不同版本之間的質(zhì)量,如圖像壓縮算法評估、圖像復(fù)原等, 而不是用于比較不同圖像之間的質(zhì)量。 【注意】因為 PSNR 的計算是基于圖像的像素值之間的均方誤差(MSE)來衡量的,即使兩張圖像的質(zhì)量相同,但如果它們的像素值分布不同,PSNR 的值也可能不同,所以PSNR 主要用于比較同一圖像的不同版本之間的質(zhì)量,而不是用于比較不同圖像之間的質(zhì)量。

import cv2

# 函數(shù):計算兩張圖片的峰值信噪比(PSNR)

def calculate_psnr(image1, image2):

# 讀取圖片

img1 = cv2.imread(image1)

img2 = cv2.imread(image2)

# 計算PSNR,其返回值范圍通常是正值。PSNR 的值越高,表示圖像質(zhì)量越好,對于 8 位圖像,PSNR 的典型范圍在 20 到 50 之間,取決于圖像的內(nèi)容和失真程度。

psnr = cv2.PSNR(img1, img2)

return psnr

3、直方圖比較

通過比較圖像的直方圖來評估它們的相似度。適用于顏色分布較為重要的場景,如圖像檢索、圖像分類等。

import cv2

# 函數(shù):計算兩張圖片的直方圖相似度

def calculate_hist_similarity(image1, image2):

# 讀取圖片

img1 = cv2.imread(image1)

img2 = cv2.imread(image2)

# 計算直方圖

hist1 = cv2.calcHist([img1], [0, 1, 2], None, [256, 256, 256], [0, 256, 0, 256, 0, 256])

hist2 = cv2.calcHist([img2], [0, 1, 2], None, [256, 256, 256], [0, 256, 0, 256, 0, 256])

# 計算直方圖相似度,返回值范圍通常在0到1之間,0 表示兩個直方圖之間完全不相似,1 表示兩個直方圖之間完全相同。

similarity = cv2.compareHist(hist1, hist2, cv2.HISTCMP_CORREL)

return similarity

4、均值哈希 (Average Hash)

將圖像轉(zhuǎn)換為哈希碼,并比較哈希碼之間的差異來評估圖像相似度。適用于快速計算圖像相似度的場景,如圖像搜索、重復(fù)圖片檢測等。 缺點: 1、均值哈希是基于圖像的整體信息,即將圖像縮小為一個小尺寸的圖像,然后計算其均值作為哈希值。在這個過程中,大量的圖像細節(jié)信息被丟失,導(dǎo)致哈希值無法捕捉到圖像的局部特征和細微變化。因此,對于涉及到局部特征變化的復(fù)雜變換,均值哈希往往無法準確地區(qū)分不同圖像之間的差異。 2、均值哈希通常只使用灰度信息來計算哈希值,不會考慮到像素的顏色信息。

import imagehash

from PIL import Image

# 函數(shù):計算兩張圖片的均值哈希(Average Hash)相似度,介于0到1之間的浮點數(shù),如果返回值接近1,表示兩個圖像非常相似;如果返回值接近0,表示兩個圖像差異很大。

def calculate_avg_hash_similarity(image1, image2):

hash1 = imagehash.average_hash(Image.open(image1))

hash2 = imagehash.average_hash(Image.open(image2))

similarity = 1 - (hash1 - hash2) / len(hash1.hash) ** 2

return similarity

5、感知哈希 (Perceptual Hash)

類似于均值哈希,但在計算哈希碼時考慮了圖像的感知特征,使得哈希碼更加符合人類視覺系統(tǒng)的感知。適用于圖像搜索、版權(quán)保護等場景。 優(yōu)點:

1、 感知哈希考慮了圖像的顏色信息,但對于顏色的變化并不敏感,因此在一定程度上可以應(yīng)對色彩變化。 2、感知哈希在計算哈希值時會考慮到圖像的局部特征,能夠比較好地應(yīng)對一些常見的圖像變換,因此在圖像檢索、相似度匹配等應(yīng)用中表現(xiàn)較為穩(wěn)定。 缺點: 1、感知哈希算法通常涉及到較復(fù)雜的圖像處理和特征提取過程,因此計算復(fù)雜

import imagehash

from PIL import Image

# 函數(shù):計算兩張圖片的感知哈希(Perceptual Hash)相似度,介于0到1之間的浮點數(shù),如果返回值接近1,表示兩個圖像非常相似;如果返回值接近0,表示兩個圖像差異很大。

def calculate_phash_similarity(image1, image2):

hash1 = imagehash.phash(Image.open(image1))

hash2 = imagehash.phash(Image.open(image2))

similarity = 1 - (hash1 - hash2) / len(hash1.hash) ** 2

return similarity

6、結(jié)構(gòu)化相似矩陣 (SSD)

比較兩個結(jié)構(gòu)化數(shù)據(jù)(例如文本、圖像、音頻等)之間相似性的方法 缺點: 1、計算復(fù)雜度高: 計算結(jié)構(gòu)化相似度矩陣需要對每對數(shù)據(jù)進行特征提取和相似度計算,這在數(shù)據(jù)規(guī)模較大時會導(dǎo)致計算復(fù)雜度較高。 2、依賴特征提取方法: 結(jié)構(gòu)化相似度矩陣的計算結(jié)果很大程度上取決于所選擇的特征提取方法。 3、數(shù)據(jù)結(jié)構(gòu)要求高: SSD通常要求數(shù)據(jù)具有一定的結(jié)構(gòu)性,比如圖像要具有明顯的區(qū)域、文本要有清晰的語義等。對于一些非結(jié)構(gòu)化數(shù)據(jù)或者噪聲較多的數(shù)據(jù),SSD可能無法有效地計算相似度。 4、難以處理高維數(shù)據(jù): 高維數(shù)據(jù)(如高分辨率圖像、大規(guī)模文本數(shù)據(jù))的相似度計算通常會面臨維度災(zāi)難問題,SSD在處理這些數(shù)據(jù)時可能會受到限制。

import cv2

import numpy as np

# 函數(shù):計算兩張圖片的結(jié)構(gòu)化相似度矩陣(SSD)

def calculate_ssd(image1, image2):

# 讀取圖片

img1 = cv2.imread(image1, cv2.IMREAD_GRAYSCALE)

img2 = cv2.imread(image2, cv2.IMREAD_GRAYSCALE)

# 計算SSD,返回值范圍是非負實數(shù),表示兩幅圖像之間的差異程度。越大,表示兩幅圖像之間的差異越大,反之則表示兩幅圖像之間的相似度越高。

ssd = np.sum((img1 - img2) ** 2)

return ssd

結(jié)合使用

在實際使用時,可以將多個維度的指標結(jié)合起來 如,將直方圖和SSMI結(jié)合: 直方圖捕獲圖像的顏色分布信息,而 SSMI 則可以考慮圖像的結(jié)構(gòu)信息。

import cv2

import numpy as np

from skimage.metrics import structural_similarity as ssim

def calculate_image_similarity(image1, image2):

# 讀取彩色圖像

img1 = cv2.imread(image1)

img2 = cv2.imread(image2)

# 轉(zhuǎn)換為 HSV 顏色空間

hsv1 = cv2.cvtColor(img1, cv2.COLOR_BGR2HSV)

hsv2 = cv2.cvtColor(img2, cv2.COLOR_BGR2HSV)

# 計算彩色直方圖

hist1 = cv2.calcHist([hsv1], [0, 1], None, [180, 256], [0, 180, 0, 256])

hist2 = cv2.calcHist([hsv2], [0, 1], None, [180, 256], [0, 180, 0, 256])

# 歸一化直方圖

hist1 /= hist1.sum()

hist2 /= hist2.sum()

# 計算直方圖相似度

hist_similarity = cv2.compareHist(hist1, hist2, cv2.HISTCMP_CORREL)

# 轉(zhuǎn)換為灰度圖像

img1_gray = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)

img2_gray = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)

# 計算結(jié)構(gòu)相似度

ssmi, _ = ssim(img1_gray, img2_gray, full=True)

# 組合得分,組合的方式可以自行定義

final_score = 0.5 * hist_similarity + 0.5 * ssmi

return final_score

柚子快報激活碼778899分享:算法 評估數(shù)據(jù)相似度的幾種方法

http://yzkb.51969.com/

精彩文章

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19568704.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄