ORB特徵提取1

2021-08-17 22:24:03 字數 638 閱讀 9839

orb特徵是在fast特徵點的基礎上再加上乙個旋轉量,本文以opencv自帶的fast函式求出特徵點keypoint,取特徵點附近一小塊區域b,b的大小是16*16,範圍是(u-8,v-8),(u+7,v+7),可以定義該區域影象的矩:

通過矩可以找到影象的質心

連線影象中心o與質心,可以得到方向向量oc,於是特徵點的方向可以定義為

這裡有幾點需要特別注意:

1,訪問畫素

image.at(v+i,u+j)
<>裡為uchar,而不是char,乙個是無符號數,乙個是有符號數。

然後y對應的是行,x對應的是列

void computeangle(const cv::mat &image, vector&keypoints) 		  

}kp.angle=(float)(atan2(m10,m01)/pi*180);

cout<

ORB特徵提取

不明白的地方的一些整理 非極大值抑制主要是為了避免影象上得到的角點過於密集,主要過程是每個特徵點都會計算得到相應的響應得分,然後以當前畫素p為中心,取其鄰域 如3 3 判斷當前畫素p的響應是否為該鄰域內最大的,如果是則保留,否則,則抑制。非極大值抑制,排除不穩定的角點,採用強度響應函式 如何確定特徵...

ORB特徵提取與匹配

特徵點的檢測 影象的特徵點可以簡單的理解為影象中比較顯著顯著的點,如輪廓點,較暗區域中的亮點,較亮區域中的暗點等。orb採用fast features from accelerated segment test 演算法來檢測特徵點。這個定義基於特徵點周圍的影象灰度值,檢測候選特徵點周圍一圈的畫素值,...

ORB特徵提取與匹配

orb特徵是目前最優秀的特徵提取與匹配演算法之一,下面具體講解一下 特徵點的檢測 影象的特徵點可以簡單的理解為影象中比較顯著顯著的點,如輪廓點,較暗區域中的亮點,較亮區域中的暗點等。orb採用fast features from accelerated segment test 演算法來檢測特徵點。...