十四講重新過一遍,今天進度到了第七講,139頁ORB特徵點提取程序的部分參數解釋如下

ORB中有很多參數可以設置,在OpenCV中它可以通過ORB來創建一個ORB檢測器。

ORB::ORB(int nfeatures=500, float scaleFactor=1.2f, int nlevels=8, int edgeThreshold=31, int firstLevel=0, int WTA_K=2, int scoreType=ORB::HARRIS_SCORE, int patchSize=31)

下面介紹一下各個參數的含義:

nfeatures - 最多提取的特徵點的數量;

scaleFactor - 金字塔圖像之間的尺度參數,類似於SIFT中的kk

nlevels – 高斯金字塔的層數;

edgeThreshold – 邊緣閾值,這個值主要是根據後面的patchSize來定的,靠近邊緣edgeThreshold以內的像素是不檢測特徵點的。

firstLevel - 看過SIFT都知道,我們可以指定第一層的索引值,這裏默認爲0。

WET_K - 用於產生BIREF描述子的 點對的個數,一般爲2個,也可以設置爲3個或4個,那麼這時候描述子之間的距離計算就不能用漢明距離了,而是應該用一個變種。OpenCV中,如果設置WET_K = 2,則選用點對就只有2個點,匹配的時候距離參數選擇NORM_HAMMING,如果WET_K設置爲3或4,則BIREF描述子會選擇3個或4個點,那麼後面匹配的時候應該選擇的距離參數爲NORM_HAMMING2。

scoreType - 用於對特徵點進行排序的算法,你可以選擇HARRIS_SCORE,也可以選擇FAST_SCORE,但是它也只是比前者快一點點而已。

patchSize – 用於計算BIREF描述子的特徵點鄰域大小



——————————————————————————————————————————————————————————————————————— 

    和opencv3  427頁的orb程序相比,不同在於十四講的編程風格偏向於模板的使用,個人感覺對比之後也更喜歡模板的風格。





———————————————————————————————————————————————————————————————————————

PS:今天另一個知識盲點,常見於OPENCV的相關編程中,馬克一下。

矩陣數據類型:

–     CV_<bit_depth>(S|U|F)C<number_of_channels>

S = 符號整型  U = 無符號整型  F = 浮點型

E.g.:

CV_8UC1 是指一個8位無符號整型單通道矩陣,

CV_32FC2是指一個32位浮點型雙通道矩陣

CV_8UC1          CV_8SC1         CV_16U C1      CV_16SC1
CV_8UC2          CV_8SC2         CV_16UC2       CV_16SC2
CV_8UC3          CV_8SC3         CV_16UC3       CV_16SC3
CV_8UC4          CV_8SC4         CV_16UC4       CV_16SC4
CV_32SC1        CV_32FC1        CV_64FC1
CV_32SC2        CV_32FC2        CV_64FC2
CV_32SC3        CV_32FC3        CV_64FC3
CV_32SC4        CV_32FC4        CV_64FC4

 

其中,通道表示每個點能存放多少個數,類似於RGB彩色圖中的每個像素點有三個值,即三通道的。

圖片中的深度表示每個值由多少位來存儲,是一個精度問題,一般圖片是8bit(位)的,則深度是8.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章