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源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索