前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++ OpenCV特征提取之自定义角点检测器(一)

C++ OpenCV特征提取之自定义角点检测器(一)

作者头像
Vaccae
发布2019-07-24 13:10:16
1.3K0
发布2019-07-24 13:10:16
举报
文章被收录于专栏:微卡智享微卡智享

前言

我们在前面学习了《C++ OpenCV特征提取之Harris角点检测》和《C++ OpenCV特征提取之Shi-Tomasi角点检测》,今天我们再来学习一下自定义角点检测器。

自定义角点检测器简介

  • 基于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的滑动事件。


输出结果


-END-

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微卡智享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档