Python的Opencv初學部分知識點(六)

2021-08-21 00:24:29 字數 1775 閱讀 6316

直方圖反向投影:

直方圖反向投影可以用於影象中某個圖案的追蹤查詢,直方圖漂移通過在規定範圍內不斷漂移,然後對比原影象直方圖,直到找出最相似的區域。

直方圖得反向投影多數基於hsv色彩空間,直方圖得反向投影基於2維直方圖建立、實現。

#建立得二維直方圖

defhist2d_demo(image):

#hsv色彩空間得轉換

hsv = cv.cvtcolor(image,cv.color_bgr2hsv)

#[image] 影象檔案

#[0,1] channels,色彩通道

#none mask,本例中無mask

#[180,256] histsize,直方圖得

hist = cv.calchist([image],[0,1],none,[180,256],[0,180,0,256])

plt.imshow(hist,interpolation='nearest')

plt.title("2d histrgam")

plt.show()

#cv.imshow("hist2d_demo",hist)

#直方圖得反向投影

defback_projection_demo():

sample = cv.imread("timg_example.png")

target = cv.imread("timg.png")

roi_hsv = cv.cvtcolor(sample, cv.color_bgr2hsv)

target_hsv = cv.cvtcolor(target, cv.color_bgr2hsv)

cv.imshow("sample",sample)

cv.imshow("target",target)

#計算第乙個直方圖

roihist = cv.calchist([roi_hsv],[0,1],none,[36,48],[0,36,0,48])

#歸一化到0-255之間

cv.normalize(roihist,roihist,0,255,cv.norm_minmax)

#產生反向投影

dst = cv.calcbackproject(target_hsv,[0,1],roihist,[0,180,0,256],1)

cv.imshow("backprojectiondemo",dst)

#cv.imshow("fomate",src)

#hist2d_demo(src)

back_projection_demo()

cv.waitkey(0)

cv.destroyallwindows()

Python的Opencv初學部分知識點(三)

roi region of interest 區域範圍獲取,可以通過numpy來指定寬高獲取roi位置 通過numpy來獲取制定高度寬度得roi區域範圍 face src 10 600,500 1000 將roi區域轉換為灰色 gray cv.cvtcolor face,cv.color bgr2g...

OpenCV初學筆記(一)

1 多通道矩陣中,通道是連續的,在乙個二維的rgb矩陣中,矩陣資料儲存格式如下 rgbrgbrgb。故而使用cvptr d函式族得到指向某個矩陣元素的指標,只需要 1便可移動到下一通道,或者加上合適的偏移量移動到下乙個矩陣元素的相應通道。2 矩陣陣列中的step元素代表矩陣中行的長度,單位為位元組。...

python初學函式 python 初學函式

len s 金老闆小 len s def my len 自定義函式 i 0 for k in s i 1 print i length my len print length 函式 定義了之後,可以在任何需要它的地方呼叫 沒有返回長度,只是單純的列印 返回的重要性 a,b len a 內建函式 le...