C++ OpenCV特徵提取之自定義角點檢測器(一)

前言微信

咱們在前面學習了《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源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索