直方圖比較(compareHist)

直方圖是影像內容的一個重要特性,兩個直方圖的相似程度,也可以看成是兩張影像的相似程度,OpenCV用compareHist()函式進行直方圖比較,讓我們以量化的方式,得到兩個直方圖的相似程度,compareHist()函式根據輸入參數,有四種比較方式可以選擇。

大多數直方圖比較是逐個容器(bin)進行比較,並不會考慮相臨的情況,因此容易受到雜訊或光線的影響,比較前通常會先減色,類似將8位元每個bin儲存1個強度範圍,共256個bin的直方圖,改成每個bin儲存16個強度範圍,共16個bin的直方圖,再用更改後的直方圖比較相似程度。


OpenCV直方圖比較

double compareHist(InputArray H1, InputArray H2, int method)

  • H1:第一個直方圖。
  • H2:第二個直方圖,須和第一個直方圖尺寸相同。
  • method:比較方法,有以下四種方法可選擇,不論選擇何種,皆會返回一個比較值:

CV_COMP_CORREL:信號處理中的歸一化互相關方法,N為bin的總個數

enter image description here


CV_COMP_CHISQR:歸一化的平方和

enter image description here


CV_COMP_INTERSECT :比較每個直方圖bin的值,總和較小的那個,也就是假如兩個直方圖沒有共同的值,計算結果為0,完全相同的直方圖,返回值等於像素的個數。

enter image description here


CV_COMP_BHATTACHARYYA:統計學中用於評估兩個概率分布相似性

enter image description here