图像直方图
图像直方图是反映一个图像像素分布的统计表,其实横坐标代表了图像像素的种类,可以是灰度的,也可以是彩色的。纵坐标代表了每一种颜色值在图像中的像素总数或者占所有像素个数的百分比。
图像是由像素构成,因为反映像素分布的直方图往往可以作为图像一个很重要的特征。在实际工程中,图像直方图在特征提取、图像匹配等方面都有很好的应用。
直方图比较
1. 图像相似度比较
如果我们有两张图像,并且这两张图像的直方图一样,或者有极高的相似度,那么在一定程度上,我们可以认为这两幅图是一样的,这就是直方图比较的应用之一。
2. 分析图像之间关系
两张图像的直方图反映了该图像像素的分布情况,可以利用图像的直方图,来分析两张图像的关系。
直方图比较函数
cv2.compareHist(H1, H2, method)
其中:
- H1,H2 分别为要比较图像的直方图
- method - 比较方式
比较方式(method)
- 相关性比较 (method=cv.HISTCMP_CORREL) 值越大,相关度越高,最大值为1,最小值为0
- 卡方比较(method=cv.HISTCMP_CHISQR 值越小,相关度越高,最大值无上界,最小值0
- 巴氏距离比较(method=cv.HISTCMP_BHATTACHARYYA) 值越小,相关度越高,最大值为1,最小值为0
代码实现
import cv2 as cv import numpy as np from matplotlib import pyplot as plt def create_rgb_hist(image): """"创建 RGB 三通道直方图(直方图矩阵)""" h, w, c = image.shape # 创建一个(16*16*16,1)的初始矩阵,作为直方图矩阵 # 16*16*16的意思为三通道每通道有16个bins rgbhist = np.zeros([16 * 16 * 16, 1], np.float32) bsize = 256 / 16 for row in range(h): for col in range(w): b = image[row, col, 0] g = image[row, col, 1] r = image[row, col, 2] # 人为构建直方图矩阵的索引,该索引是通过每一个像素点的三通道值进行构建 index = int(b / bsize) * 16 * 16 + int(g / bsize) * 16 + int(r / bsize) # 该处形成的矩阵即为直方图矩阵 rgbhist[int(index), 0] += 1 plt.ylim([0, 10000]) plt.grid(color='r', linestyle='--', linewidth=0.5, alpha=0.3) return rgbhist def hist_compare(image1, image2): """直方图比较函数""" # 创建第一幅图的rgb三通道直方图(直方图矩阵) hist1 = create_rgb_hist(image1) # 创建第二幅图的rgb三通道直方图(直方图矩阵) hist2 = create_rgb_hist(image2) # 进行三种方式的直方图比较 match1 = cv.compareHist(hist1, hist2, cv.HISTCMP_BHATTACHARYYA) match2 = cv.compareHist(hist1, hist2, cv.HISTCMP_CORREL) match3 = cv.compareHist(hist1, hist2, cv.HISTCMP_CHISQR) print("巴氏距离:%s, 相关性:%s, 卡方:%s" %(match1, match2, match3)) src1 = cv.imread("diff1.PNG") cv.imshow("diff1", src1) src2 = cv.imread("diff2.PNG") cv.imshow("diff2", src2) plt.subplot(1,2,1) plt.title("diff1") plt.plot(create_rgb_hist(src1)) plt.subplot(1,2,2) plt.title("diff2") plt.plot(create_rgb_hist(src2)) hist_compare(src1, src2) plt.show() cv.waitKey(0) cv.destroyAllWindows()
巴氏距离:0.3116175231543461, 相关性:0.8805851455583134,
卡方:154379.82963705878
从计算得到的三个比较值可以发现巴氏距离较低,相关性较高,可以简单认为这两幅图的相似度比较大。
例如下面两幅图
巴氏距离:0.8939676325760126, 相关性:0.03202528698270991,
卡方:503948.24201884575
从计算得到的三个比较值可以发现巴氏距离很高,相关性系数很低,可以简单认为这两幅图的相似度非常小。
总结
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“Python Opencv中用compareHist函数进行直方图比较对比图片”评论...
更新日志
2024年11月08日
2024年11月08日
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]