前言微信
咱們在前面學習了《C++ OpenCV特徵提取之Harris角點檢測》和《C++ OpenCV特徵提取之Shi-Tomasi角點檢測》,今天咱們再來學習一下自定義角點檢測器。學習
自定義角點檢測器簡介url
基於Harris與Shi-Tomasi角點檢測spa
首先經過計算矩陣M獲得
兩個特徵值根據他們獲得角點響應值.net
而後本身設置閾值實現計算出閾值獲得有效響應值的角點設置3d
相關APIblog
C++: void cornerEigenValsAndVecs(事件
InputArray src, --單通道輸入8位或浮點圖像get
OutputArray dst, --輸出圖像,同源圖像或CV_32FC(6)io
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的滑動事件。
輸出結果
-END-
長按下方二維碼關注微卡智享
本文分享自微信公衆號 - 微卡智享(VaccaeShare)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。