av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python Opencv中用compareHist函數(shù)進(jìn)行直方圖比較對(duì)比圖片

瀏覽:130日期:2022-07-30 18:46:14

圖像直方圖

圖像直方圖是反映一個(gè)圖像像素分布的統(tǒng)計(jì)表,其實(shí)橫坐標(biāo)代表了圖像像素的種類,可以是灰度的,也可以是彩色的。縱坐標(biāo)代表了每一種顏色值在圖像中的像素總數(shù)或者占所有像素個(gè)數(shù)的百分比。圖像是由像素構(gòu)成,因?yàn)榉从诚袼胤植嫉闹狈綀D往往可以作為圖像一個(gè)很重要的特征。在實(shí)際工程中,圖像直方圖在特征提取、圖像匹配等方面都有很好的應(yīng)用。

直方圖比較

1. 圖像相似度比較

如果我們有兩張圖像,并且這兩張圖像的直方圖一樣,或者有極高的相似度,那么在一定程度上,我們可以認(rèn)為這兩幅圖是一樣的,這就是直方圖比較的應(yīng)用之一。

2. 分析圖像之間關(guān)系

兩張圖像的直方圖反映了該圖像像素的分布情況,可以利用圖像的直方圖,來(lái)分析兩張圖像的關(guān)系。

直方圖比較函數(shù)

cv2.compareHist(H1, H2, method)

其中:

H1,H2 分別為要比較圖像的直方圖 method - 比較方式

比較方式(method)

相關(guān)性比較 (method=cv.HISTCMP_CORREL) 值越大,相關(guān)度越高,最大值為1,最小值為0 卡方比較(method=cv.HISTCMP_CHISQR 值越小,相關(guān)度越高,最大值無(wú)上界,最小值0 巴氏距離比較(method=cv.HISTCMP_BHATTACHARYYA) 值越小,相關(guān)度越高,最大值為1,最小值為0

代碼實(shí)現(xiàn)

import cv2 as cvimport numpy as npfrom matplotlib import pyplot as pltdef create_rgb_hist(image): ''''創(chuàng)建 RGB 三通道直方圖(直方圖矩陣)''' h, w, c = image.shape # 創(chuàng)建一個(gè)(16*16*16,1)的初始矩陣,作為直方圖矩陣 # 16*16*16的意思為三通道每通道有16個(gè)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] # 人為構(gòu)建直方圖矩陣的索引,該索引是通過(guò)每一個(gè)像素點(diǎn)的三通道值進(jìn)行構(gòu)建 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 rgbhistdef hist_compare(image1, image2): '''直方圖比較函數(shù)''' # 創(chuàng)建第一幅圖的rgb三通道直方圖(直方圖矩陣) hist1 = create_rgb_hist(image1) # 創(chuàng)建第二幅圖的rgb三通道直方圖(直方圖矩陣) hist2 = create_rgb_hist(image2) # 進(jìn)行三種方式的直方圖比較 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, 相關(guān)性:%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()

Python Opencv中用compareHist函數(shù)進(jìn)行直方圖比較對(duì)比圖片

Python Opencv中用compareHist函數(shù)進(jìn)行直方圖比較對(duì)比圖片

巴氏距離:0.3116175231543461, 相關(guān)性:0.8805851455583134,卡方:154379.82963705878

從計(jì)算得到的三個(gè)比較值可以發(fā)現(xiàn)巴氏距離較低,相關(guān)性較高,可以簡(jiǎn)單認(rèn)為這兩幅圖的相似度比較大。

例如下面兩幅圖

Python Opencv中用compareHist函數(shù)進(jìn)行直方圖比較對(duì)比圖片

Python Opencv中用compareHist函數(shù)進(jìn)行直方圖比較對(duì)比圖片

巴氏距離:0.8939676325760126, 相關(guān)性:0.03202528698270991,卡方:503948.24201884575

從計(jì)算得到的三個(gè)比較值可以發(fā)現(xiàn)巴氏距離很高,相關(guān)性系數(shù)很低,可以簡(jiǎn)單認(rèn)為這兩幅圖的相似度非常小。

總結(jié)

到此這篇關(guān)于Python Opencv中用compareHist函數(shù)進(jìn)行直方圖比較進(jìn)行對(duì)比圖片的文章就介紹到這了,更多相關(guān)python Opencv compareHist函數(shù)直方圖內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 久久久午夜精品 | 免费在线看a | 一级免费黄色片 | 激情久久久 | 日日干夜夜爽 | 五月六月丁香 | 欧美亚洲激情 | 日韩精品一区二区三区中文在线 | 99re视频| 欧美日韩二区三区 | 视频一二区| 91精品视频在线 | 国产乡下妇女三片 | av永久免费| 精品欧美一区二区精品久久 | 一级黄色免费 | 亚洲免费观看 | 国产丝袜一区 | 中文在线字幕观看 | 欧美日本一区二区三区 | 韩国精品一区 | 91成人观看 | av观看免费 | 国产免费一区二区三区免费视频 | 精品国产91乱码一区二区三区 | 欧美精品二区三区四区免费看视频 | 五月婷婷激情 | 欧美视频一区二区三区 | 久久综合国产 | 国产精品免费在线播放 | 免费一级a毛片 | 日韩免费精品视频 | 一本色道久久加勒比精品 | 日本欧美亚洲 | 国产区在线视频 | 免费毛片网站 | 中文在线免费观看 | 男人的天堂在线视频 | 色在线播放 | 福利小视频 | 亚洲三级小说 |