欢迎来到天天文库
浏览记录
ID:34574518
大小:400.60 KB
页数:3页
时间:2019-03-08
《harris角点检测的c_实现及应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Harris角点检测的C#实现及应用叶增炉摘要:用C#语言实现了Harris角点检测算法程序,并结合图例分析了该算法各种参数的设置。关键词:角点检测;Harris角点检测角点特征具有计算量少、匹配简单以及旋转、平移、放缩不变的性质,因此角点在图像配准与匹配、目标识别、运(3)动分析、目标跟踪等应用领域都起着非常重要的作用。Harris其中G为高斯模板;<.>表示高斯模板与函数卷积:角点检测算法是Harris和Stephens[1]在1988年提出的角点特征(4)提取算子。这种算子受信号处理中自相关函数的启发,给出按此方法求
2、出的角点数量很多。为了减少匹配计算量,可与自相关函数相联系的矩阵M。M阵的特征值是自相关函数以对想要获得的角点数量进行限制。限制方法是确定一个阈的一阶曲率,如果两个曲率值都高,那么就认为该点是角点值,仅仅选取CRF值大于这个阈值的点作为角点。这个阈值特征。根据需要的检点数量来确定。Harris算子是一种有效的点特征提取算子,其优点有如下[2]2C#实现几个方面:(1)计算简单:Haris算子中只用到灰度的一阶差分以及滤波,操作简单;(2)提取的点特征均匀而且合理Harris角点检测算法的具体编程步骤如下:Haris算子对图
3、像中的每个点都计算其兴趣值,然后在邻域中(1)对灰度图像I的每一点,计算其在x和y方向上的一选择最优点。Harris角点提取方法是目前效果最好的,它不受阶导数,以及二者的乘积。具体操作时,采取类似卷积的方摄像机姿态及光照的影响[3]。式,分别使用(5)式中的模板w(x方向)和模板w(y方向)xy在图像上移动,并在每个位置计算对应中心像素的梯度值,得1Harris角点检测原理到x方向和y方向的两幅梯度图像。计算每个像素位置对应的建立矩阵Mx方向和y方向梯度的乘积,得到1幅新的图像。三幅图像中的每个像素对应的属性值分别代表Ix
4、,Iy和IxIy。(1)其中I(x,y)是亮度值,这里用灰度表示;Ix为图像I的x(5)方向的梯度;Iy为y方向的梯度。通过分析上面矩阵可以看出,如果在一点上矩阵M的两个特征值很大,则在该点向任核心代码如下://----------------------------------意方向上的一个很小的移动都会引起灰度值的较大变化。这也//第一步:利用差分算子对图像进行滤波就说明该点是一个角点。//--------------------------------在矩阵M基础上,角点响应函数CRF定义为://定义水平方向差分算子
5、,并求Ixx、Iyy、Ixy(2)double[,]Ix=newdouble[height,width];其中det为矩阵M的行列式;trace为矩阵M的迹(矩阵double[,]Iy=newdouble[height,width];对角线元素的和);k为常数,一般取0.04[1]。CRF的局部极大double[,]Ixx=newdouble[height,width];double[,]Iyy=newdouble[height,width];值所在的点即为角点。double[,]Ixy=newdouble[height,
6、width];该算法易受噪声的影响。为了减小噪声的干扰,在对图像filter=newCorrelation(xKernel);进行偏导计算以后用高斯滤波器对数据进行平滑。于是(1)式Ix=filter.CorrelationMatrix(scr);矩阵M重新定义为如下(3)式:filter=newCorrelation(yKernel);2010.1911Iy=filter.CorrelationMatrix(scr);for(inti=0;i7、gaussWidth;j++)doublew,v;kernel[i,j]/=total;doublegxx=0,gyy=0,gxy=0;//createfilter//foreachlinefilter=newCorrelation(kernel);for(inty=0;y8、);for(intx=0;x
7、gaussWidth;j++)doublew,v;kernel[i,j]/=total;doublegxx=0,gyy=0,gxy=0;//createfilter//foreachlinefilter=newCorrelation(kernel);for(inty=0;y8、);for(intx=0;x
8、);for(intx=0;x
此文档下载收益归作者所有