您好,登錄后才能下訂單哦!
這篇文章主要介紹C++ OpenCV特征提取之如何實(shí)現(xiàn)SIFT特征檢測,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
SIFT特征和SURF特征比較
比較項(xiàng)目 | SIFT | SURF |
---|---|---|
尺度空間極值檢測 | 使用高斯濾波器,根據(jù)不同尺度的高斯差(DOG)圖像尋找局部極值 | 使用方形濾波器,利用海森矩陣的行列式值檢測極值,并利用積分圖加速運(yùn)算 |
關(guān)鍵點(diǎn)定位 | 通過鄰近信息插補(bǔ)來定位 | 與SIFT類似 |
方向定位 | 通過計(jì)算關(guān)鍵點(diǎn)局部鄰域的方向直方圖,尋找直方圖中最大值的方向作為關(guān)鍵點(diǎn)的主方向 | 通過計(jì)算特征點(diǎn)周圍像素點(diǎn)x,y方向的哈爾小波變換,將x、y方向小波變換的和向量的最大值作為特征點(diǎn)方向 |
特征描述子 | 是關(guān)鍵點(diǎn)鄰域高斯圖像梯度方向直方圖統(tǒng)計(jì)結(jié)果的一種表示,是16*8=128維向量 | 是關(guān)鍵點(diǎn)鄰域2D離散小波變換響應(yīng)的一種表示,是16*4=64維向量 |
應(yīng)用中的主要區(qū)別 | 通常在搜索正確的特征時(shí)更加精確,當(dāng)然也更加耗時(shí) | 描述子大部分基于強(qiáng)度的差值,計(jì)算更快捷 |
SIFT特征基本介紹
SIFT(Scale-Invariant Feature Transform)特征檢測關(guān)鍵特征:
建立尺度空間,尋找極值
關(guān)鍵點(diǎn)定位(尋找關(guān)鍵點(diǎn)準(zhǔn)確位置與刪除弱邊緣)
關(guān)鍵點(diǎn)方向指定
關(guān)鍵點(diǎn)描述子
建立尺度空間,尋找極值
工作原理
構(gòu)建圖像高斯金字塔,求取DOG,發(fā)現(xiàn)最大與最小值在每一級(jí)
構(gòu)建的高斯金字塔,每一層根據(jù)sigma的值不同,可以分為幾個(gè)待級(jí),最少有4個(gè)。
關(guān)鍵點(diǎn)定位
我們在像素級(jí)別獲得了極值點(diǎn)的位置,但是更準(zhǔn)確的值應(yīng)該在亞像素位置,如何得到--這個(gè)過程稱為關(guān)鍵點(diǎn)(準(zhǔn)確/精確)定位。
刪除弱邊緣--通過Hassian矩陣特征值實(shí)現(xiàn),小于閾值自動(dòng)舍棄。
關(guān)鍵點(diǎn)方向指定
求得每一層對應(yīng)圖像的梯度,根據(jù)給定的窗口大小
計(jì)算每個(gè)高斯權(quán)重,sigma=scale*1.5, 0-360之間建立36個(gè)直方圖Bins
找最高峰對應(yīng)的Bin,大于max*80%的都保留
這樣就實(shí)現(xiàn)了旋轉(zhuǎn)不變性,提高了匹配時(shí)候的穩(wěn)定性
大約有15%的關(guān)鍵點(diǎn)會(huì)有多個(gè)方向
關(guān)鍵點(diǎn)描述子
擬合多項(xiàng)式插值尋找最大Peak
得到描述子 = 4*4*8=128
構(gòu)造函數(shù)
cv::xfeatures2d::SIFT::create(
int nfeatures = 0,
int nOctaveLayers = 3, --高斯金字塔乘積數(shù)
double contrastThreshold = 0.04, --對比度
double edgeThreshold = 10, --邊緣閾值,一般默認(rèn)10就行
double sigma = 1.6
)
代碼演示
我們再新建一個(gè)項(xiàng)目名為opencv--sift,按照配置屬性(VS2017配置OpenCV通用屬性),然后在源文件寫入#include和main方法
記得我們要加上opencv2\xfeatures2d.hpp
使用SIFT檢測,其實(shí)紅框里面是我們定義的參數(shù),可以修改一下參數(shù)進(jìn)行變化
運(yùn)行效果
上面左邊紅框處就是我們獲取了多少個(gè)KeyPoints并打印出來,可以看到這個(gè)比SURF檢測明顯要少了不少,說明檢測的更為細(xì)致了,不過也比SURF花費(fèi)的時(shí)間要長一點(diǎn)。
接下來我們改一下參數(shù)
再看一下運(yùn)行效果
可以看到獲取到的Keypoints的特征點(diǎn)更少了。
以上是“C++ OpenCV特征提取之如何實(shí)現(xiàn)SIFT特征檢測”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。