使用OpenCV進行結構化相似度判別
在計算機視覺領域,圖像相似度判別是一項重要的任務。除了直方圖之外,還有一種有效的方法是使用結構化相似度判別,其中包括使用compare_ssim函數(shù)進行處理。 導入必要的庫和模塊 首先需要從中導入
在計算機視覺領域,圖像相似度判別是一項重要的任務。除了直方圖之外,還有一種有效的方法是使用結構化相似度判別,其中包括使用compare_ssim函數(shù)進行處理。
導入必要的庫和模塊
首先需要從中導入compare_ssim函數(shù),并且導入cv2和numpy庫進行圖像處理操作。同時,還需要導入庫用于繪制直方圖。
from import compare_ssim import cv2 as cv import numpy as np from matplotlib import pyplot as plt
加載圖像
使用函數(shù)分別加載兩張待判斷相似度的圖像。
image ("")
pic1 ("")
pic2 ("")
轉化為灰度圖像
對圖像進行灰度化操作,注意與直方圖比較相似度的方法不同。
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ù)計算灰度圖像之間的結構化相似度或者稱為SSIM(圖像質量/評價)。
similarity, diff compare_ssim(grayImage, grayPic1, fullTrue) print(similarity, diff)
輸出結果
根據(jù)計算結果,可以得到相似度值。在本例中,相似度為0.56,與肉眼感覺差不多,說明這種結構化判斷方法是有效的。