角点检测方法
来源:互联网 发布:config.inc.php下载 编辑:程序博客网 时间:2024/05/17 22:31
TrackingMotion\cornerDetector_Demo.cpp, cornerHarris_Demo.cpp , cornerSubPix_Demo.cpp, goodFeaturesToTrack_Demo.cpp
Harris角点检测
步骤:
1、灰度化
2、二值化
3、角点检测:cornerHarris( src_gray, dst, blockSize, apertureSize, k, BORDER_DEFAULT );
4、角点归一化:normalize( dst, dst_norm, 0, 255, NORM_MINMAX, CV_32FC1, Mat() );
5、范围处理:convertScaleAbs( dst_norm, dst_norm_scaled );
6、绘制角点:circle( dst_norm_scaled, Point( i, j ), 5, Scalar(0), 2, 8, 0 );
cornerEigenValsAndVecs()
作用:计算图像块的特征值和特征向量用于角点检测。
形式:void cornerEigenValsAndVecs(InputArray src, OutputArray dst, int blockSize, int ksize, int borderType=BORDER_DEFAULT );
参数:
src:输入单通道8位或浮点图像;
dst:用来存储结果的图像;它有src相同的大小和类型为CV_32FC(6);
blockSize:领域尺寸;
ksize:Sobel()算子的孔径参数;
borderType:像素外推方式;
cornerMinEigenVal()
作用:计算梯度矩阵的最小特征值用于角点检测。
形式:void cornerMinEigenVal(InputArray src, OutputArray dst, int blockSize, int ksize=3, int borderType=BORDER_DEFAULT );
参数:
src:输入单通道8位或浮点图像;
dst:用来存储最小特征值的图像;它有src相同的大小和类型为CV_32FC1;
blockSize:领域尺寸;
ksize:Sobel()算子的孔径参数;
borderType:像素外推方式;
goodFeaturesToTrack——Shi-Tomasi角点检测
goodFeaturesToTrack有比cornerHarris更多的控制参数,函数原型:
- void goodFeaturesToTrack( InputArray image, OutputArray corners,
- int maxCorners, double qualityLevel, double minDistance,
- InputArray mask=noArray(), int blockSize=3,
- bool useHarrisDetector=false, double k=0.04 );
第二个参数corners:位置点向量,保存的是检测到的角点的坐标;
第三个参数maxCorners:定义可以检测到的角点的数量的最大值;
第四个参数qualityLevel:检测到的角点的质量等级,角点特征值小于qualityLevel*最大特征值的点将被舍弃;
第五个参数minDistance:两个角点间最小间距,以像素为单位;
第六个参数mask:指定检测区域,若检测整幅图像,mask置为空Mat();
第七个参数blockSize:计算协方差矩阵时窗口大小;
第八个参数useHarrisDetector:是否使用Harris角点检测,为false,则使用Shi-Tomasi算子;
第九个参数k:留给Harris角点检测算子用的中间参数,一般取经验值0.04~0.06。第八个参数为false时,该参数不起作用;
cornerSubPix()亚像素角点检测
goodFeaturesToTrack()提取到的角点只能达到像素级别,在很多情况下并不能满足实际的需求,这时,我们则需要使用cornerSubPix()对检测到的角点作进一步的优化计算,可使角点的精度达到亚像素级别。
- void cv::cornerSubPix(
- cv::InputArray image, // 输入图像
- cv::InputOutputArray corners, // 角点(既作为输入也作为输出)
- cv::Size winSize, // 区域大小为 NXN; N=(winSize*2+1)
- cv::Size zeroZone, // 类似于winSize,但是总具有较小的范围,Size(-1,-1)表示忽略
- cv::TermCriteria criteria // 停止优化的标准
- );
- 角点检测方法
- 角点检测方法总结
- 角点检测的几种方法
- 类神经网络的角点检测方法
- FAST角点检测方法详解
- 离群点检测方法
- 离群点检测方法
- 常用角点检测与角点匹配方法比较
- 角点检测,圆形检测
- 离群点检测方法综述
- 离群点检测方法综述
- 角点检测 susan角点检测
- 角点检测Harris角点检测
- 角点检测的几种基本方法
- haaris角点检测方法—超详细实现过程
- 基于图像像素梯度的角点检测方法综述
- SUSAN角点及边缘检测方法详解
- 基于模板的角点检测方法综述
- 28个Java常用的工具类之交易前置系统专用工具类
- STM32 采集SHT10传感器数据(非float)
- group by 和 order by
- HashMap实现原理分析
- 使用C语言生成bitmap
- 角点检测方法
- Expecting "jsp:param" standard action with "name" and "value" attributes解决方案
- 关于KMP算法(模块匹配)的实现
- MySQL性能分析及explain的使用
- 0基础UI设计的人如何快速入门
- Search for a Range
- Torch
- duilib将xml和图片合并到exe资源中或者dll中
- DES加密模式详解(zz)