【特征检测】Harris角点检测中的数学推导

原创 2015年07月10日 13:27:32

简介

本文主要是对Harris角点检测的数学公式进行推导,更加深入的掌握原理性的理论知识。

预备知识

椭圆的矩阵方程表示

在高中课本中,我们学习到标准椭圆及其方程(如下图所示):


其实,矩阵在运算中使用非常广泛,现将上述标准方程写成矩阵形式(方便接下来的处理):


椭圆半轴与系数矩阵的关系

         一个nxn的矩阵,可以求解其特征值,我们对上述系数矩阵(含a、b)进行求解,则可得到特征值与椭圆半轴(a、b)的关系,过程如下:


泰勒展开

一元函数的泰勒展开式:


二元函数泰勒展开式:


Harris角点检测原理

         Harris算法是利用的窗口内图像灰度的自相关性进行的,设定一个窗口,并在图像中移动,计算移动前与移动后窗口所在区域图像的自相关系数。


自相关函数计算如下,(x,y)为窗口中心位置,w(u,v)为权重(一般取高斯函数),L表示窗口,(u,v)表示窗口中的图像位置:



将近似值代入自相关函数,有:


将平方项展开并写成矩阵形式,有:


回到自相关表达式:


其中,

        经过上面的数学形式推导,已经得到了自相关函数的表达式。可以看得这也是一个椭圆的矩阵表示形式(非标准椭圆),因此其系数矩阵M的特征值与椭圆的半轴长短有关,这与上面预备知识中的结论一样。

假设M的特征值为λ1、λ2,则分以下三种情况:


通过上面的情况,计算出特征值后就可以判别是否是角点了。

当然,这样计算量非常大,因为图像中的几乎每个点都需要进行一次特征值的计算;下面给出一个经验公式:


detM表示M的行列式,traceM表示M的迹,R表示角点响应值。α为经验常数,一般在0.04至0.06之间取值。

判断准则:当R超过某个设定的阈值时,可认为是角点;反之,则不是。

如此,便可得到一幅图像中的角点了,最后在3x3或5x5的邻域内进行非极大值抑制操作即可。

参考文献

1、HarrisC,Stephens.M—A Combined Corner and Edge Detector[J],1988.

2、王永明、王贵锦,图像局部不变性特征与描述[M],2010.

版权声明:本文为博主原创文章,未经博主允许不得转载。

OpenCV 显示图像的凸包 Convex Hull 效果

OpenCV 显示图像的凸包 Convex Hull 效果 目的 本文将教你如何使用 OpenCV 函数 convexHull 代码 代码如下所示,可从这里 下...
  • sun2728
  • sun2728
  • 2016年07月29日 14:56
  • 290

【OpenCV笔记 15-1】OpenCV寻找物体的凸包convexHull

OpenCV寻找物体的凸包convexHull() 应用到的知识点: 1.寻找物体的凸包convexHull 2.定义和输出vector容器点坐标 3.随机数发生器 =================...

图像局部特征(二)--Harris角点检测子

一、角点定义 有定义角点的几段话: 1、角点检测(Corner Detection)是计算机视觉系统中用来获得图像特征的一种方法,广泛应用于运动检测、图像匹配、视频跟踪、三维建模和目标识别等领域中...

特征检测器-Harris角点检测

Harris角点检测 原理:        角点:最直观的认识就是在水平、竖直两个方向上变化都比较大。理解为拐角。       harris是最典型的角点检测算子。角点经常被检测在边缘的交界处、被遮挡...

Harris角点检测旋转不变性和尺度不变性的数学理解

Harris角点检测算子 基本Harris角点检测算子 Harris角点检测算子本身具有旋转、平移不变性的特点,但不具有尺度不变性。下面是数学方面的理解。 Harris角点检测的灰度相关矩阵为:...
  • kxuehen
  • kxuehen
  • 2014年10月20日 20:25
  • 765

特征检测:白话Harris角点检测

角点是一个可重复、可靠、显著的特征。在特征匹配用来检测特征点的位置。本篇博客,用大白话谈一谈自己对Harris角点检测算法的理解。Harris实际上是设计了一个准则来度量角点的特点。角点有啥特点呢?显...
  • czl389
  • czl389
  • 2017年02月28日 13:25
  • 620

Harris角点检测

  • 2017年12月04日 22:09
  • 10.91MB
  • 下载

harris角点检测

  • 2017年12月07日 22:24
  • 4.72MB
  • 下载

Harris角点检测及matlab程序

Harris角点检测的步骤为: matlab程序如下: close all; clear all; clc; img=imread('lena.png'); imshow(img...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【特征检测】Harris角点检测中的数学推导
举报原因:
原因补充:

(最多只允许输入30个字)