import cv2 as cv
box = cv.imread(
"../images/box.png"
)box_in_sence = cv.imread(
"../images/box_in_scene.png"
)cv.imshow(
"box"
, box)
cv.imshow(
"box_in_sence"
, box_in_sence)
# 建立orb特徵檢測器
orb = cv.orb_create(
)kp1, des1 = orb.detectandcompute(box,
none
)kp2, des2 = orb.detectandcompute(box_in_sence,
none
)# 暴力匹配
bf = cv.bfmatcher(cv.norm_hamming, crosscheck=
true
)matches = bf.match(des1,des2)
# 繪製匹配
得到特徵點資料之後,根據brief演算法就可以建立描述子。選擇候選特徵點周圍sxs大小的畫素塊、隨機選擇n對畫素點。其中p(x)是影象模糊處理之後的畫素值,原因在於高斯模糊可以抑制雜訊影響、提供特徵點穩定性,在實際**實現中通常用均值濾波替代高斯濾波以便利用積分圖方式加速計算獲得更好的效能表現。常見濾波時候使用3x3~9x9之間的卷積核。濾波之後,根據上述描述子的生成條件,得到描述子。
作者**提到n的取值通常為128、256或者512。得到二進位制方式的字串描述子之後,匹配就可以通過xor方式矩形,計算漢明距離。orb特徵提取跟純brief特徵提取相比較,brief方式採用隨機點方式得最終描述子、而orb通過fast得到特徵點然後得到描述子。
所有內容均**於賈志剛老師的知識星球——opencv研習社,本文為個人整理學習,已獲得賈老師授權,有興趣、有能力的可以加入賈老師的知識星球進行深入學習。
Opencv特徵分析
影象處理程式設計例項筆記 第8章特徵分析 第8章 特徵分析 8.1尺度空間 8.2特徵描述子 8.3方向梯度直方圖hog 8.4區域性二值模式lbp 8.5haar特徵描述 8.6應用例項 分析未知場景目標,無法得知目標尺寸。8.1.1尺度與旋轉不變性 8.1.2特徵點尺度變換 關鍵點檢測與關鍵點提...
opencv 輪廓特徵2
函式 moments moments inputarray array,bool binaryimage false 用來計算多邊形或珊格形狀的0 3階矩。moments類定義如下 classmoments mxx是0 3階矩,muxx是0 3階中心矩,nuxx是0 3階歸一化中心矩,公式如下 當計...
特徵點提取opencv
opencv中提供了harris角點檢測的介面,即cv cornerharris 缺陷 角點是畫素級別的,速度較慢 dst cv2.cornerharris gray,2,3,0.04 img 資料型別為 float32 的輸入影象 blocksize 角點檢測中要考慮的領域大小 ksize sob...