您好,登錄后才能下訂單哦!
小編給大家分享一下C++ OpenCV特征提取之如何實現自定義角點檢測器,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
自定義角點檢測器簡介
基于Harris與Shi-Tomasi角點檢測
首先通過計算矩陣M得到兩個特征值根據他們得到角點響應值
然后自己設置閾值實現計算出閾值得到有效響應值的角點設置
相關API
C++: void cornerEigenValsAndVecs(
InputArray src, --單通道輸入8位或浮點圖像
OutputArray dst, --輸出圖像,同源圖像或CV_32FC(6)
int blockSize, --鄰域大小值
int apertureSize, --Sobel算子的參數
int borderType=BORDER_DEFAULT --像素外插方法
)
C++: void cornerMinEigenVal(
InputArray src, --單通道輸入8位或浮點圖像
OutputArray dst, --圖像存儲的最小特征值。類型為CV_32FC1
int blockSize, --鄰域大小值
int apertureSize=3, --Sobel算子的參數
int borderType=BORDER_DEFAULT --像素外插方法
)
代碼演示
我們再新建一個項目名為opencv--cornereigen,按照配置屬性(VS2017配置OpenCV通用屬性),然后在源文件寫入#include和main方法
這章我們試試Harris自定義檢測
首先定義相關的參數
我們要先定義輸出的最大最小值,一個響應圖,還有創建Trackbar用到的值和方法。都定義在上面是因為需要在TrackBar里調用。
然后在運行項目里面定義基本鄰域,能過我們的API cornerEigenValsAndVecs獲得到輸出圖像
再根據輸出的圖像計算響應值,并且計算出最大最小值。
然后在目標窗口中增加一個TrackBar
上面是TrackBar的滑動事件。
輸出結果
看完了這篇文章,相信你對“C++ OpenCV特征提取之如何實現自定義角點檢測器”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。