您好,登錄后才能下訂單哦!
這篇文章主要介紹了C++ OpenCV特征提取之如何實(shí)現(xiàn)亞像素級(jí)角點(diǎn)檢測,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
前言
前面我們學(xué)習(xí)了Harris角點(diǎn)檢測還有Shi-Tomasi角點(diǎn)檢測等,如果我們要對(duì)有點(diǎn)的精度有更高的要求,就需要用到了亞像素級(jí)角點(diǎn)檢測。其實(shí)在實(shí)際應(yīng)用中可以看到,幾乎所有的角點(diǎn)不會(huì)是一個(gè)真正的準(zhǔn)確像素點(diǎn)。比如說我們得到的角點(diǎn)是(80,20),但是實(shí)際上是(80.223,20.789)。
亞像素定位方法
插值方法
基說圖像矩計(jì)算
曲線擬合方法 -(高斯曲面、多項(xiàng)式、橢圓曲面)
在OpenCV中已經(jīng)為我們提供了一個(gè)亞像素定位取值的函數(shù)了。
相關(guān)API
C++: void cornerSubPix(
InputArray image, --輸入圖像
InputOutputArray corners, --初始輸入坐標(biāo)和角坐標(biāo)
Size winSize, --一半的側(cè)長度搜索值
Size zeroZone, --一半?yún)^(qū)域在搜索區(qū)域中的求和公式。
TermCriteria criteria --標(biāo)準(zhǔn)終止迭代處理的隅角細(xì)化
)
代碼演示
我們再新建一個(gè)項(xiàng)目名為opencv--corner,按照配置屬性(VS2017配置OpenCV通用屬性),然后在源文件寫入#include和main方法
首先我們還是用到了TrackBar
所以先定義TrackBar的參數(shù)
然后在代碼中創(chuàng)建TrackBar
接下來就是我們最關(guān)鍵的函數(shù)SubPixel_Demo
顯示效果
可以看到紅色是我們原來用SHi-Toamsi角點(diǎn)檢測出來的點(diǎn),藍(lán)色是用的亞像素檢測出來的點(diǎn)會(huì)有小小的偏差,說明亞像素的點(diǎn)更精確一些,再看看命令行輸出的我們的點(diǎn)的坐標(biāo),大部分都是帶有小數(shù)的
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“C++ OpenCV特征提取之如何實(shí)現(xiàn)亞像素級(jí)角點(diǎn)檢測”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!
免責(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)容。