角点检测之Harris角点检测的原理及opencv中API的应用
来源:互联网 发布:h3c交换机端口汇聚 编辑:程序博客网 时间:2024/06/04 08:13
本篇博客主要是对下面几篇博客的内容进行了小结:
1. 不同类型的角点
在现实世界中,角点对应于物体的拐角,道路的十字路口、丁字路口等。关于角点的具体描述可以有几种:
1). 一阶导数(即灰度的梯度)的局部最大所对应的像素点;
2). 两条及两条以上边缘的交点;
3). 图像中梯度值和梯度方向的变化速率都很高的点;
4).角点处的一阶导数最大,二阶导数为零,指示物体边缘变化不连续的方向。
从求解思路上可以分为两种,一种基于边缘,一种基于图像灰度。前者往往需要对图像边缘进行编码,这在很大程度上依赖于图像的分割与边缘提取,具有相当大的难度和计算量,且一旦待检测目标局部发生变化,很可能导致操作的失败。早期主要有Rosenfeld和Freeman等人的方法,后期有CSS等方法。
基于图像灰度的方法通过计算点的曲率及梯度来检测角点,避免了第一类方法存在的缺陷,此类方法主要有Moravec算子、Forstner算子、Harris算子、SUSAN算子等。
这篇文章主要介绍Harris角点检测的算法原理。
2. Harris角点
2.1 基本原理
人眼对角点的识别通常是在一个局部的小区域或小窗口完成的。如果在各个方向上移动这个特征的小窗口,窗口内区域的灰度发生了较大的变化,那么就认为在窗口内遇到了角点。如果这个特定的窗口在图像各个方向上移动时,窗口内图像的灰度没有发生变化,那么窗口内就不存在角点;如果窗口在某一个方向移动时,窗口内图像的灰度发生了较大的变化,而在另一些方向上没有发生变化,那么,窗口内的图像可能就是一条直线的线段。
对于图像
其中,
根据泰勒展开,对图像
其中,
其中
也就是说图像
其中
二次项函数本质上就是一个椭圆函数。椭圆的扁率和尺寸是由
椭圆函数特征值与图像中的角点、直线(边缘)和平面之间的关系如下图所示。共可分为三种情况:
- 图像中的直线。一个特征值大,另一个特征值小,
或 。自相关函数值在某一方向上大,在其他方向上小。 - 图像中的平面。两个特征值都小,且近似相等;自相关函数数值在各个方向上都小。
- 图像中的角点。两个特征值都大,且近似相等,自相关函数在所有方向都增大。
根据二次项函数特征值的计算公式,我们可以求
式中,
增大
事实上,特征值隐含在
R取决于M的特征值,对于角点|R|很大,平坦的区域|R|很小,边缘的R为负值。
- C: void cvCornerHarris(const CvArr* image, CvArr* harris_response, int block_size, int aperture_size=3, double k=0.04 )
Parameters: - src – Input single-channel 8-bit or floating-point image.
- dst – Image to store the Harris detector responses. It has the type CV_32FC1 and the same size as src .
- blockSize – Neighborhood size (see the details on cornerEigenValsAndVecs() ).
- ksize – Aperture parameter for the Sobel() operator.
- k – Harris detector free parameter. See the formula below.
- borderType – Pixel extrapolation method. See borderInterpolate() .
The function runs the Harris corner detector on the image. Similarly to cornerMinEigenVal() andcornerEigenValsAndVecs() , for each pixel it calculates a gradient covariance matrix over a neighborhood. Then, it computes the following characteristic:
Corners in the image can be found as the local maxima of this response map.
- 角点检测之Harris角点检测的原理及opencv中API的应用
- opencv的Harris角点检测
- 基于OpenCV的harris角点检测
- harris角点检测的数学原理
- Harris角点检测原理的理解
- OPENCV中Harris 角点检测 的Qt例子
- Harris角点检测原理及openCV实现
- OpenCV角点检测之Harris角点检测
- ★OpenCV 角点检测之Harris角点检测
- Harris角点检测原理及实现
- opencv harris角点检测
- opencv-Harris 角点检测
- Opencv Harris角点检测
- harris角点检测原理
- Harris角点检测原理
- Harris角点检测原理与opencv(python)实现
- 【OpenCV】角点检测:Harris角点及Shi-Tomasi角点检测
- 【OpenCV】角点检测:Harris角点及Shi-Tomasi角点检测
- python[变量作用域-函数-闭包-装饰器-生成器]
- 图像视频互转python 实现
- css面试题
- visio 2013 破解工具
- Mastering Swift.pdf 英文原版 免费下载
- 角点检测之Harris角点检测的原理及opencv中API的应用
- KMP算法学习分享
- csdn 疯了
- SQL语句大全--经典
- IDEA创建web项目配置环境
- redis持久化
- Android UI布局的性能分析和优化措施
- 训练日记-45
- Fox And Two Dots 迷宫 深搜