小編給大家分享一下C++ OpenCV特征提取之如何實現(xiàn)自定義角點檢測器,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供南雄網(wǎng)站建設(shè)、南雄做網(wǎng)站、南雄網(wǎng)站設(shè)計、南雄網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、南雄企業(yè)網(wǎng)站模板建站服務(wù),十載南雄做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
自定義角點檢測器簡介
基于Harris與Shi-Tomasi角點檢測
首先通過計算矩陣M得到兩個特征值根據(jù)他們得到角點響應(yīng)值
然后自己設(shè)置閾值實現(xiàn)計算出閾值得到有效響應(yīng)值的角點設(shè)置
相關(guān)API
C++: void cornerEigenValsAndVecs(
InputArray src, --單通道輸入8位或浮點圖像
OutputArray dst, --輸出圖像,同源圖像或CV_32FC(6)
int blockSize, --鄰域大小值
int apertureSize, --Sobel算子的參數(shù)
int borderType=BORDER_DEFAULT --像素外插方法
)
C++: void cornerMinEigenVal(
InputArray src, --單通道輸入8位或浮點圖像
OutputArray dst, --圖像存儲的最小特征值。類型為CV_32FC1
int blockSize, --鄰域大小值
int apertureSize=3, --Sobel算子的參數(shù)
int borderType=BORDER_DEFAULT --像素外插方法
)
代碼演示
我們再新建一個項目名為opencv--cornereigen,按照配置屬性(VS2017配置OpenCV通用屬性),然后在源文件寫入#include和main方法
這章我們試試Harris自定義檢測
首先定義相關(guān)的參數(shù)
我們要先定義輸出的最大最小值,一個響應(yīng)圖,還有創(chuàng)建Trackbar用到的值和方法。都定義在上面是因為需要在TrackBar里調(diào)用。
然后在運行項目里面定義基本鄰域,能過我們的API cornerEigenValsAndVecs獲得到輸出圖像
再根據(jù)輸出的圖像計算響應(yīng)值,并且計算出最大最小值。
然后在目標窗口中增加一個TrackBar
上面是TrackBar的滑動事件。
輸出結(jié)果
看完了這篇文章,相信你對“C++ OpenCV特征提取之如何實現(xiàn)自定義角點檢測器”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!