2016 - 2024

感恩一路有你

使用OpenCV进行结构化相似度判别

浏览量:2721 时间:2024-01-23 22:20:17 作者:采采

在计算机视觉领域,图像相似度判别是一项重要的任务。除了直方图之外,还有一种有效的方法是使用结构化相似度判别,其中包括使用compare_ssim函数进行处理。

导入必要的库和模块

首先需要从中导入compare_ssim函数,并且导入cv2和numpy库进行图像处理操作。同时,还需要导入库用于绘制直方图。

from  import compare_ssim
import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt

加载图像

使用函数分别加载两张待判断相似度的图像。

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函数计算灰度图像之间的结构化相似度或者称为SSIM(图像质量/评价)。

similarity, diff  compare_ssim(grayImage, grayPic1, fullTrue)
print(similarity, diff)

输出结果

根据计算结果,可以得到相似度值。在本例中,相似度为0.56,与肉眼感觉差不多,说明这种结构化判断方法是有效的。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。