使用OpenCV進(jìn)行結(jié)構(gòu)化相似度判別
在計算機視覺領(lǐng)域,圖像相似度判別是一項重要的任務(wù)。除了直方圖之外,還有一種有效的方法是使用結(jié)構(gòu)化相似度判別,其中包括使用compare_ssim函數(shù)進(jìn)行處理。 導(dǎo)入必要的庫和模塊 首先需要從中導(dǎo)入
在計算機視覺領(lǐng)域,圖像相似度判別是一項重要的任務(wù)。除了直方圖之外,還有一種有效的方法是使用結(jié)構(gòu)化相似度判別,其中包括使用compare_ssim函數(shù)進(jìn)行處理。
導(dǎo)入必要的庫和模塊
首先需要從中導(dǎo)入compare_ssim函數(shù),并且導(dǎo)入cv2和numpy庫進(jìn)行圖像處理操作。同時,還需要導(dǎo)入庫用于繪制直方圖。
from import compare_ssim import cv2 as cv import numpy as np from matplotlib import pyplot as plt
加載圖像
使用函數(shù)分別加載兩張待判斷相似度的圖像。
image ("")
pic1 ("")
pic2 ("")
轉(zhuǎn)化為灰度圖像
對圖像進(jìn)行灰度化操作,注意與直方圖比較相似度的方法不同。
grayImage (image, _BGR2GRAY) grayPic1 (pic1, _BGR2GRAY) grayPic2 (pic2, _BGR2GRAY)
繪制直方圖
通過繪制直方圖,可以直觀地比較兩個灰度圖像的分布情況。
(2, 1, 1) plt.hist(grayImage.ravel(), 256, [0, 256]) (2, 1, 2) plt.hist(grayPic1.ravel(), 256, [0, 256]) ()
使用compare_ssim計算相似度
使用compare_ssim函數(shù)計算灰度圖像之間的結(jié)構(gòu)化相似度或者稱為SSIM(圖像質(zhì)量/評價)。
similarity, diff compare_ssim(grayImage, grayPic1, fullTrue) print(similarity, diff)
輸出結(jié)果
根據(jù)計算結(jié)果,可以得到相似度值。在本例中,相似度為0.56,與肉眼感覺差不多,說明這種結(jié)構(gòu)化判斷方法是有效的。