OpenCV---直方圖反向投影


一:直方圖反向投影的方法

二:二維直方圖的表示

(一)直接顯示

def hist2D_demo(image):
    hsv = cv.cvtColor(image,cv.COLOR_BGR2HSV)
    hist = cv.calcHist([image],[0,1],None,[289,286],[0,289,0,286])
    cv.imshow("hist2D",hist)

(二)使用matplotlib

def hist2D_demo(image):
    hsv = cv.cvtColor(image,cv.COLOR_BGR2HSV)
    hist = cv.calcHist([image],[0,1],None,[289,286],[0,289,0,286])
    plt.imshow(hist,interpolation="nearest")
    plt.title("2D Histogram")
    plt.show()

三:直方圖反向映射

calcHist方法參數可見:OpenCV---圖像直方圖

def back_projection_demo():
    sample = cv.imread("./s2.png")
    target = cv.imread("./b.png")
    roi_hsv = cv.cvtColor(sample,cv.COLOR_BGR2HSV)
    tar_hsv = cv.cvtColor(target,cv.COLOR_BGR2HSV)

    cv.imshow("sample",sample)
    cv.imshow("target",target)

    roihist = cv.calcHist([roi_hsv], [0, 1], None, [324, 356], [0, 324, 0, 356])  #加紅部分越小,匹配越放松,匹配越全面,若是bsize值越大,則要求得越精細,越不易匹配,所以導致匹配出來的比較小
    cv.normalize(roihist,roihist,0,255,cv.NORM_MINMAX)  #規划到0-255之間
    dst = cv.calcBackProject([tar_hsv],[0,1],roihist,[0,324,0,356],1)   #直方圖反向投影
    cv.imshow("back_projection_demo",dst)

roihist = cv.calcHist([roi_hsv], [0, 1], None, [32, 46], [0, 324, 0, 356])  #這是兩個通道,bsize變少了,但是他的匹配更加廣了(對於匹配的局限放寬了)

 

opencv 2 歸一化函數normalize詳解

1. 歸一化就是要把需要處理的數據經過處理后(通過某種算法)限制在你需要的一定范圍內。

歸一化函數cv2.normalize原型:normalize(src, dst[, alpha[, beta[, norm_type[, dtype[, mask]]]]]) -> dst 

src參數表示輸入數組。

dst參數表示輸出與src相同大小的數組,支持原地運算。

alpha參數表示range normalization模式的最小值。

beta參數表示range normalization模式的最大值,不用於norm normalization(范數歸一化)模式。

norm_type參數表示歸一化的類型。

norm_type參數可以有以下的取值:

NORM_MINMAX:數組的數值被平移或縮放到一個指定的范圍,線性歸一化,一般較常用。

NORM_INF:歸一化數組的C-范數(絕對值的最大值)。

NORM_L1 :歸一化數組的L1-范數(絕對值的和)。

NORM_L2 :歸一化數組的(歐幾里德)L2-范數。
2.反向投影用於在輸入圖像(通常較大)中查找特定圖像(通常較小或者僅1個像素,以下將其稱為模板圖像)最匹配的點或者區域,也就是定位模板圖像出現在輸入圖像的位置。

函數cv2.calcBackProject用來計算直方圖反向投影。

函數原型:calcBackProject(images, channels, hist, ranges, scale[, dst]) -> dst

images參數表示輸入圖像(是HSV圖像)。傳入時應該用中括號[ ]括起來。

channels參數表示用於計算反向投影的通道列表,通道數必須與直方圖維度相匹配。

hist參數表示輸入的模板圖像直方圖。

ranges參數表示直方圖中每個維度bin的取值范圍 (即每個維度有多少個bin)。

scale參數表示可選輸出反向投影的比例因子,一般取1。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM