harris角点检测与ncc匹配
- 格式:doc
- 大小:33.00 KB
- 文档页数:5
Harris角点统计量1. 简介Harris角点统计量(Harris corner measure)是计算机视觉中用于检测图像中角点的一种方法。
角点是图像中具有明显变化的位置,通常是物体边缘的交点或者具有纹理的区域。
Harris角点统计量通过计算图像局部区域的像素强度变化来判断是否存在角点,并给出一个表示角点强度的数值。
Harris角点统计量是由Chris Harris和Mike Stephens在1988年提出的,是计算机视觉中最经典的角点检测算法之一。
它的原理简单直观,计算效率高,并且在许多计算机视觉应用中都得到了广泛应用。
2. 原理Harris角点统计量的计算基于图像局部区域的像素强度变化。
对于一个图像上的点(x, y),其周围的局部区域可以用一个窗口来表示。
在该窗口内,我们可以计算出每个像素的梯度向量,即在x和y方向上的梯度分量。
然后,通过计算每个像素的梯度向量的协方差矩阵,可以得到一个表示该窗口内像素强度变化的指标。
具体来说,对于一个窗口内的像素点p(x, y),其梯度向量可以表示为:其中,Ix和Iy分别是点p在x和y方向上的梯度分量。
根据梯度的定义,可以通过计算像素点p的邻域内像素值的差分来近似计算梯度分量。
然后,我们可以计算窗口内像素强度变化的协方差矩阵C:其中,Σ表示对窗口内的像素进行求和。
最后,根据协方差矩阵C的特征值,我们可以计算出Harris角点统计量R:其中,det()表示矩阵的行列式,trace()表示矩阵的迹,k是一个经验参数,用于调整角点的敏感度。
根据Harris角点统计量的值,我们可以判断该点是否为角点。
当R的值较大时,表示该点周围存在明显的像素强度变化,可能是一个角点。
而当R的值较小时,表示该点周围的像素强度变化相对较小,不是一个角点。
3. 实现Harris角点统计量的计算可以通过以下步骤实现:1.对图像进行灰度化处理,将彩色图像转换为灰度图像。
2.计算每个像素点的梯度分量Ix和Iy,可以使用Sobel算子等方法进行计算。
列举三种角点检测的方法及其原理。
当涉及角点检测时,有几种常见的方法:
1. Harris角点检测方法:
Harris角点检测是一种基于局部区域的方法,它通过计算图像
中每个像素周围区域的灰度变化来检测角点。
该方法使用特征值来
判断像素点是否为角点,当特征值较大时,说明该点周围存在角点。
Harris角点检测方法具有较好的旋转不变性和光照不变性,因此在
图像配准和目标跟踪中得到广泛应用。
2. Shi-Tomasi角点检测方法:
Shi-Tomasi角点检测是对Harris角点检测方法的改进,它使
用了Harris检测方法中的特征值,但是对特征值的选取进行了改进,提出了一个自适应的角点检测算法。
Shi-Tomasi方法在选择角点时
使用了一个自适应的阈值,相比于Harris方法,它能够更好地选择
稳定的角点。
3. FAST角点检测方法:
FAST(Features from Accelerated Segment Test)角点检测
方法是一种基于像素灰度值的快速检测方法。
它通过比较像素点周
围的像素值来判断是否为角点,具有较快的速度和较高的检测性能。
FAST方法通过比较像素点周围的像素值和中心像素值的大小来判断
是否为角点,从而实现了快速的角点检测。
这些角点检测方法在计算机视觉和图像处理领域有着广泛的应用,它们在目标跟踪、图像配准、三维重建等方面发挥着重要作用。
每种方法都有其独特的优势和适用场景,可以根据具体的应用需求
选择合适的角点检测方法。
harris方法Harris方法是一种计算机视觉中常用的角点检测算法,它可以用于图像特征提取和图像匹配等任务。
该方法由Chris Harris和Mike Stephens于1988年提出,被广泛应用于计算机视觉领域。
Harris方法的核心思想是通过计算图像中每个像素点的灰度值变化来判断其是否为角点。
角点是图像中灰度值变化较大的区域,而平滑区域和边缘区域的灰度值变化较小。
因此,通过检测灰度值变化较大的像素点,我们可以找到图像中的角点。
Harris方法的计算过程如下:首先,我们需要对图像进行灰度化处理,将彩色图像转换为灰度图像。
然后,对每个像素点计算其相邻像素的灰度值变化,通常使用Sobel算子或Scharr算子来计算像素点的梯度。
接着,利用梯度计算出每个像素点的角点响应函数R,该函数用于度量像素点的角点程度。
角点响应函数的计算公式如下:R = det(M) - k * (trace(M))^2其中,det(M)表示M的行列式,trace(M)表示M的迹,k是一个经验参数,用于调节角点响应函数的灵敏度。
计算完所有像素点的角点响应函数后,我们需要对其进行非极大值抑制,以保留具有最大角点响应值的像素点。
非极大值抑制的过程是,对每个像素点,比较其角点响应值与其邻域像素点的角点响应值,如果大于所有邻域像素点的角点响应值,则保留该像素点作为角点。
Harris方法的优点是简单易实现,并且对图像的尺度和旋转变化具有一定的不变性。
此外,它还可以用于图像配准、目标跟踪等应用中。
然而,Harris方法也存在一些局限性。
首先,对于存在噪声的图像,角点的检测可能会受到干扰。
其次,Harris方法对于具有纹理模式的区域也容易将其误判为角点。
此外,Harris方法在存在图像尺度变化较大的情况下,检测效果可能会受到影响。
为了克服Harris方法的局限性,后续的研究提出了许多改进的角点检测算法,如SIFT、SURF和FAST等。
这些算法在角点检测的灵敏度、速度和鲁棒性等方面都有所提升,广泛应用于计算机视觉和图像处理领域。
结合自适应阈值与Forstner的Harris角点匹配优化算法李浩;秦姣华;向旭宇;王静;马文涛【期刊名称】《电讯技术》【年(卷),期】2018(058)009【摘要】针对传统Harris角点检测效率低、非极大值引起的伪角点多等问题,提出了一种自适应阈值和归一化互相关(NCC)与随机抽样一致算法(RANSAC)相结合的Harris图像匹配算法.首先,采用自适应方式抑制非极大值的方法对角点进行预筛选;其次,采用Forstner算子对角点进行二次筛选;接着采用归一化互相关匹配算法对检测的Harris角点进行粗匹配;最后采用随机抽样一致算法对图像进行精确匹配.实验结果证明改进的方法不仅缩短了角点检测和图像匹配时间,而且能有效提高图像的匹配精度.【总页数】7页(P1079-1085)【作者】李浩;秦姣华;向旭宇;王静;马文涛【作者单位】中南林业科技大学计算机与信息工程学院,长沙410004;中南林业科技大学计算机与信息工程学院,长沙410004;中南林业科技大学计算机与信息工程学院,长沙410004;中南林业科技大学计算机与信息工程学院,长沙410004;中南林业科技大学计算机与信息工程学院,长沙410004【正文语种】中文【中图分类】TN919.81【相关文献】1.一种自适应阈值的预筛选Harris角点检测方法 [J], 沈士喆;张小龙;衡伟2.基于细菌觅食优化算法的自适应阈值边缘检测 [J], 李杰;彭月英;元昌安;王仁民;梁珺超3.基于FPGA的自适应阈值Harris角点检测硬件实现 [J], 潘聪;黄鲁4.油水界面测量过程中自适应阈值聚类优化算法 [J], 任喜伟;何立风;姚斌;宋安玲;钟岩;刘艳玲5.融合动态概率阈值和自适应变异的鲸鱼优化算法 [J], 毕孝儒;牟琦;龚尚福因版权原因,仅展示原文概要,查看原文内容请购买。
doi:10.3969/j.issn.1001-893x.2018.09.015引用格式:李浩,秦姣华,向旭宇,等.结合自适应阈值与Forstner的Harris角点匹配优化算法[J].电讯技术,2018,58(9):1079-1085.[LI HAO, QIN Jiaohua,XIANG Xuyu,et al.A Harris corner matching optimization algorithm combing adaptive threshold and Forstner[J].Telecommuni⁃cation Engineering,2018,58(9):1079-1085.]结合自适应阈值与Forstner的Harris角点匹配优化算法*李 浩,秦姣华**,向旭宇,王 静,马文涛(中南林业科技大学计算机与信息工程学院,长沙410004)摘 要:针对传统Harris角点检测效率低㊁非极大值引起的伪角点多等问题,提出了一种自适应阈值和归一化互相关(NCC)与随机抽样一致算法(RANSAC)相结合的Harris图像匹配算法㊂首先,采用自适应方式抑制非极大值的方法对角点进行预筛选;其次,采用Forstner算子对角点进行二次筛选;接着采用归一化互相关匹配算法对检测的Harris角点进行粗匹配;最后采用随机抽样一致算法对图像进行精确匹配㊂实验结果证明改进的方法不仅缩短了角点检测和图像匹配时间,而且能有效提高图像的匹配精度㊂关键词:图像匹配;Harris角点检测;自适应阈值;预选角点开放科学(资源服务)标识码(OSID):微信扫描二维码听独家语音介绍与作者在线交流中图分类号:TN919.81 文献标志码:A 文章编号:1001-893X(2018)09-1079-07A Harris Corner Matching Optimization AlgorithmCombing Adaptive Threshold and ForstnerLI HAO,QIN Jiaohua,XIANG Xuyu,WANG Jing,MA Wentao(College of Computer Science and Information Technology,Central South Universityof Forestry and Technology,Changsha410004,China)Abstract:Aiming at the inefficiency of traditional Harris corner detection and the problem of false corners caused by non-maximum values,a Harris image matching method combing adaptive threshold and Normal⁃ized Cross Correlation(NCC)and Random Sample Consensus(RANSAC)algorithm is proposed.Firstly,the method of non-maximum suppressing in adaptive mode is used to pre-filter the corner points.Secondly,the Forstner algorithm is used to further refine the corner points so as to improve the corner accuracy.Then,the NCC is used to coarse match the detected Harris corners.Finally,the RANSAC is used to precisely match the image.The experimental results show that the improved method not only shortens the corner detection and im⁃age matching time,but also can improve the matching accuracy of the image effectively.Key words:image matching;Harris corner detection;adaptive threshold;pre-filter corner points1 引 言图像配准就是将不同时间㊁不同传感器(成像设备)或不同条件下(天候㊁照度㊁摄像位置和角度等)获取的两幅或多幅图像进行匹配㊁叠加的过程,㊃9701㊃第58卷第9期2018年9月电讯技术Telecommunication Engineering Vol.58,No.9 September,2018* **收稿日期:2017-12-16;修回日期:2018-03-16 Received date:2017-12-16;Revised date:2018-03-16基金项目:国家自然科学基金资助项目(61772561);湖南省重点研发计划资助项目(2018NK2012);中南林业科技大学研究生科技创新基金资助项目(20183027)通信作者:qinjiaohua@ Corresponding author:qinjiaohua@它已经被广泛地应用于遥感数据分析㊁计算机视觉㊁图像处理等领域[1]㊂图像配准可以分为两类:基于块匹配的方法和基于特征匹配的方法㊂文献[2]提出基于块匹配的匹配方法,利用整幅图像信息[3],获得了较高的匹配精度,但基于块匹配存在计算量较大㊁耗时等问题㊂文献[4-5]提出基于局部特征的配准方法,与文献[6]提出基于全局特征的配准方法相比,具有匹配时间短㊁对图像灰度的变化具有鲁棒性等优点㊂常用的图像特征提取算法有很多,其中Harris[7]特征提取方法由于其计算简单㊁易于实现和抗干扰力强等特点得到了广泛的应用㊂目前,有很多学者对Harris特征点的匹配方法进行了大量研究㊂文献[8]提出了基于透视不变二值特征描述子的图像匹配算法,采用Harris角点响应值去除非极大值点和边缘响应点㊂文献[9]建立了一个基于立体图像匹配的模型,并结合Harris算法,实现对立体图像的匹配㊂文献[10]提出了对一般几何变换具有鲁棒性的区域复制检测方法,用特征向量表示每个Harris点周围的小圆周图像区域,使用BBF算法匹配小圆圈图像区域,选出重复区域㊂文献[11]提出了基于Harris角点检测的滤波方法,解决复杂背景下文本图像不能清晰直观地读取的问题㊂文献[12]对灰度变换下图像Harris角点特征点匹配算法性能进行了分析,提取Harris角点对SAD㊁SSD㊁NCC3种匹配算法的灰度变换下的性能进行比较㊂文献[13]建立了基于三维城市模型,通过提取虚拟图像与摄像机获取的真实图像的Harris特征点进行图像匹配㊂以上基于Harris算法的应用只是考虑该算法有较强的鲁棒性和稳定性,并没有考虑算法的适应性以及特征点的提取效率㊂文献[14]提出了基于改进Harris角点检测的手指静脉图像算法,该算法优化了梯度算子,具有很强的抗噪声能力,能够更有效地提取角点,但是该算法缺少对特征点的处理,存在较多的伪角点,不利于图像的匹配㊂文献[15]提出了基于迭代阈值的自适应Harris角点检测算法,该算法通过迭代实现自适应阈值选择,但是该算法缺少对候选点的预处理,容易产生较多伪角点,匹配精度低㊂文献[16]提出了一种新的自适应改进算法,引入自适应阈值增加算法的适应性,但是缺少对特征点的预处理,匹配角点存在太多伪角点㊂文献[17]提出了基于改进的Harris角点响应的聚焦叠加技术,改善了Harris角点响应,但是仍然存在人工选取阈值造成阈值大小难以估计的问题㊂针对以上问题,本文提出基于改进的Harris特征点的匹配算法,首先采用基于自适应阈值的方法对角点预筛选,然后采用Forsnter[18]算子确定最佳的特征点,最后结合匹配算法完成图像配准㊂2 Harris角点检测原理Harris角点检测算法是在Moravec算法基础上发展起来的,是由Harris和Stephens提出的㊂Harris 通过运用微分运算和自相关矩阵改进了Moravec角点检测算法㊂对于一幅图像I(x,y),以某像素点(x,y)为中心的小窗口在x方向上移动u㊁y方向上移动v,Harris给出的灰度强度变化如公式(1)所示: E(x,y)=∑w(x,y)[f(x+u,y+v)-f(x,y)]2㊂(1)式中:f(x,y)表示在(x,y)点的灰度值,f表示灰度函数;w(x,y)为高斯滤波器,w(x,y)=exp x2+y22δæèçöø÷2㊂(2)按照二阶泰勒级数展开灰度变化如公式(3):E(x,y)=[]u v Muéëêêùûúúv㊂(3)二维矩阵M表示如公式(4):M=w(x,y)⊗I2x I x I yI x I y I2éëêêùûúúy,(4)I x=f⊗[-1,0,1],(5)I y=f⊗[-1,0,1]㊂(6)式中:I x表示x方向的梯度,I y表示y方向的梯度,⊗表示卷积㊂M特征值的大小与特征点的性质相关㊂当两个特征值λ1㊁λ2均相对较大时,此点即为需要提取的角点㊂角点的响应函数如公式(7):CRF=det(M)-Φ×(trace(M))2㊂(7)式中:det(M)=λ1λ2;trace(M)为矩阵M的迹,即trace(M)=λ1+λ2;Φ是经验参数,本文取0.06㊂当CRF取局部极大值且CRF大于设定的阈值时就是角点㊂Harris算法虽然具有较强的鲁棒性和稳定性,但需要手动设置阈值,因此本文提出基于自适应阈值的Harris特征点选择算法,并对候选特征点进行优化㊂3 基于自适应阈值Harris特征点选择算法针对Harris算子存在的运算速度慢㊁人工选取㊃0801㊃电讯技术 2018年阈值造成阈值大小难以估计的缺点,本文提出了一种改进的Harris 角点选择算法㊂首先,采用8邻域相似像素分析法确定候选集C 1,然后计算每个候选角点的响应函数CRF,根据最大角点响应函数对候选点进行筛选,确定提取的预筛选特征点总数c 1,最后结合Frostner 算法确定最佳候选点总数c 2㊂3.1 基于自适应阈值的候选点的筛选本文采用8邻域相似像素分析法确定候选点㊂对于目标像素点(x ,y ),计算与8邻域范围内像素点灰度差的绝对值Δ,通过与设定的阈值t 相比较来确定是否相似,统计目标像素点与周围8个点的相似个数N (x ,y ),如公式(8)所示:N (x ,y )=∑i ,jχ(x +i ,y +j ),-1≤i ≤1,-1≤j ≤1,且i ≠0,j ≠0{㊂(8)式中:χ(x +i ,y +j )=1,Δ(x +i ,y +j )≤t0,{其他㊂由公式(8)知,当2≤N (x ,y )≤6时,将该点视为候选点,用C 1表示候选点集合㊂对图像提取角点时,固定阈值可能会得到好的实验结果,但是应用到其他图像时,缺乏适应性,带来阈值不确定等问题,因此本文采用自适应阈值来解决这个问题㊂自适应阈值不但可以增加算法的适应性,而且可以优化阈值固定的问题㊂首先,求取每个候选点的角点响应函数值CRF,然后找出最大的CRF 值,最后定义阈值T 为最大CRF 值的ρ倍,如公式(9)所示:T =ρ×CRF max ㊂(9)基于自适应阈值的候选点具体算法如下:输入:图像I (x ,y ),图像尺寸p ×q ,ρ,t ㊂输出:特征点集C 2={(x i ,y i )}c 1i =1,x <p ,y <q ㊂Step 1 初始化C 1←∅,C 2←∅,c 1=0Step 2 根据公式(5)㊁(6)计算I x ㊁I y Step 3 for x =1, ,p -8do Step 4 for y =1, ,q -8do Step 5 根据公式(8)计算N (x ,y )Step 6 if 2≤N (x ,y )≤6then C 1=C 1∪(x ,y )Step 7 end ifStep 8 end forStep 9 end forStep 10 for x =1, ,p -8do Step 11 for y =1, ,q -8do Step 12 if (x ,y )∈C 1Step 13 根据公式(2)㊁(4)㊁(7)计算CRF,根据公式(9)计算TStep 14 if CRF (x ,y )>T then C 2=C 2∪(x ,y ),c 1=c 1+1Step 15 end if Step 16 end ifStep 17 end for Step 18 end forStep 19 输出特征点集:C 2={(x i ,y i )}c 1i =1我们在实验中选取不同的场景的多幅图像进行实验,并调整设定的ρ值进行实验比较,发现ρ取经验值[0.005,0.015]时,基本上所有角点都可以被检验出来,而且产生的伪角点较少㊂本文取ρ为0.01㊂3.2 基于Forstner 算法的特征点筛选Forstner 算子是从影像中提取点特征的一种较为有效的算子㊂本文将Harris 算法与Forstner 结合在一起,通过将Harris 特征点作为候选点中心,进一步对角点筛选,减少伪角点㊂首先以预筛选特征集C 2任意一点(x i ,y i )为中心建立3×3窗口,对该窗口内的每个点计算协方差矩阵cov ,如公式(10):cov =∑I′2x∑I′x I′y ∑I′x I′y ∑I′2éëêêùûúúy ㊂(10)式中:I′x ㊁I′y 是Robert 梯度算子,I′x =f (x +1,y +1)-f (x ,y ),I′y =f (x +1,y )-f (x ,y +1),f 是灰度函数,f (x +1,y +1)表示该点的灰度值㊂接着计算特征点的权值ω和圆度R :ω=det(cov )trace(cov ),(11)R =4det(cov )(trace(cov ))2㊂(12)式中:det (cov )是协方差矩阵cov 的行列式,trace(cov )是协方差矩阵cov 的迹㊂然后ω㊁R 与给定阈值T ω㊁T R 比较,确定备选点特征集C 3㊂最后在一定窗口内,依据权值ω确定最佳候选点个数c 2㊂改进Harris 与Forstner 结合算法流程如下:输入:特征点集合C 2,图像I (x ,y ),图像尺寸p ×q ,T ω,T R ㊂输出:筛选后的特征点集G ={(x i ,y i )}c 2i =1㊂Step 1 初始化C 3←∅,G ←∅,c 2=0Step 2 计算I′x ㊁I′y ,结合公式(10)计算协方差矩阵covStep 3 for x =1:p -1do㊃1801㊃第58卷李浩,秦姣华,向旭宇,等:结合自适应阈值与Forstner 的Harris 角点匹配优化算法第9期Step 4 for y =1:q -1doStep 5 结合式(11)㊁(12)计算特征点的权值权值ω和圆度RStep 6 if T ω<ω&&T R <R then C 3=C 3∪(x ,y )Step 7 end if Step 8 end for Step 9 end forStep 10 for i =1:p -1do Step 11 for j =1:q -1do Step 12 for x =1:5Step 13 for y =1:5Step 14 if (x ,y )∈C 3且ω(x ,y )=max {ω(x ,y )}then G =G ∪(x ,y ),c 2=c 2+1Step 15 end ifStep 16 end for Step 17 end for Step 18 end for Step 19 end forStep 20 输特征点集:G ={(x i ,y i )}c 2i =1改进的Harris 算法通过结合Forstner 算法选取最佳特征点,不仅减少了伪角点,而且有利于图像配准㊂4 基于NCC 与RANSAC 的图像配准算法由于NCC 算法存在匹配结果不够准确的问题,因此本文结合NCC 与RANSAC 算法对特征点匹配,提高匹配准确性,完成图像配准㊂4.1 基于NCC 算法的特征点粗匹配NCC 算法有较高的适应性,且不受灰度值线性变换的影响,本文先用NCC 算法对特征点进行粗匹配㊂首先,本文采用改进Harris 与Forstner 结合算法提取两幅待匹配图像I 1和I 2的特征点集G 与G′,以图像I 1特征集合G 任意一点(x i ,y i )为基础点,选取相关窗口W 1,对待匹配图像I 2中的角点进行互相关计算,如公式(13),直到I 1中所有角点在图像I 2中都有对应的匹配点㊂ncc =∑i[f 1(x i ,y i )-e 1][f 2(x i ,y i )-e 2]∑i[f 1(x i ,y i )-e 2]2∑i[f 2(x i ,y i )-e 1]2㊂(13)式中:W 1㊁W 2为相同大小窗口,I 1㊁I 2为两幅图像,f 1(x i ,y i )㊁f 2(x i ,y i )是G 任意一点(x i ,y i )㊁G′任意一点(x i ,y i )的灰度值,e 1㊁e 2是两幅图像窗口内像素灰度的均值㊂接着对I 2采用同样操作,即在I 2中取G '任意一点(x i ,y i )为基础点,选取相关窗口大小W 2,对图像I 1寻找匹配点,最后通过将自相关值与默认阈值比较,确定最终匹配点特征点总数α,匹配点坐标集F ㊂默认阈值本文取0.9㊂由于NCC 算法是基于特征点邻域像素的灰度值的相似特性来对图像进行匹配处理,通过对图像灰度值进行逻辑运算,并以此反映两幅待匹配图像的相似程度㊂经过NCC 算法得到的特征点对有可能产生误匹配点对,匹配结果不够准确,因此本文采用RANSAC 算法对特征点进一步提纯,提高匹配率㊂4.2 基于RANSAC 算法的特征点精确匹配RANSAC 算法是一种鲁棒的变换估计算法,本文结合RANSAC 算法对特征点精确匹配,从而得到稳健的估计矩阵H ㊂待配准的两幅图像之间的关系可以用公式(14)表示:x 2y 2éëêêêêùûúúúú1=h 0h 1h 2h 3h 4h 5h 6h 7éëêêêêùûúúúú1x 1y 1éëêêêêùûúúúú1,(14)H =h 0h 1h 2h 3h 4h 5h 6h 7éëêêêêùûúúúú1㊂(15)式中:(x 2,y 2)㊁(x 1,y 1)分别为参考图像和待变换图像对应特征点的齐次坐标,(h 0,h 1, ,h 7)为投影变换参数㊂公式(15)中有8个参数至少需要4对特征点对建立方程组解求变换矩阵H ㊂RANSAC 算法基本步骤:首先随机从数据集F 中抽出4个样本数据(此4个样本之间不能共线),求出矩阵H ,构建模型θ,接着根据矩阵H 计算剩下α-4特征点的对应坐标㊂其次计算数据集中所有数据与模型θ的投影误差记为集合error ,如公式(16):error = (x -x′)2+(y -y′)2㊂(16)式中:(x ,y )是模型θ的点,(x′,y′)是(x ,y )经过矩阵H 计算的点㊂若误差小于设定阈值t′,加入内点集F final ,并在内点区域重新计算矩阵H ,然后判断当前内点集β元素个数是否大于最优内点集个数β_best,如果是,则更新β_best =β,同时更新迭代次数z ,最后判断迭代次数z 是否大于最大迭代次数Z ,是则退出;否则迭代次数加1,并重复上述步骤,根据最后内点集F final 计算最终的变换矩阵H ㊂㊃2801㊃ 电讯技术 2018年4.3 基于NCC与RANSAC的图像配准算法基于NCC与RANSAC的图像配准算法描述如下:首先采用NCC算法匹配,得到特征点集F,然后以F作为RANSAC算法匹配的数据集进行图像匹配㊂通过结合RANSAC算法,有效去除误匹配点,提高了匹配效率㊂具体算法流程如下:输入:特征集G㊁G′,c2㊁c′2是两幅带匹配图像最佳特征点数,阈值t′,Z㊂输出:匹配特征点集合F final㊂Step1 初始化z=1,H=0,F1←∅,F2←∅,F final←∅,β=0,β_best=0Step2 for x=1, ,c2doStep3 for y=1, ,c′2doStep4 根据公式(13)计算自相关值,记为[ncc x]Step5 end forStep6 if nccx>0.9 then F1=F1∪(x,y) Step7 end ifStep8 end forStep9 以I2中的点为基础点重复Step2~8,匹配点集合F2Step10 F=F1∩F2,α=F㊂Step11 while z<Z doStep12 for i=1:αdoStep13 根据公式(16)计算erroriStep14 if(xi,y i)∈F&&error i<t′then F final=F final∪(x i,y i)根据公式(14)㊁(15)计算矩阵H,β=β+1Step15 end ifStep16 end forStep17 ifβ>β_best thenβ_best=β重新计算矩阵HStep18 end ifStep19 z++Step20 end whileStep21 特征点数β,计算最终的矩阵H Step22 输出匹配特征点集合F final㊂5 实验结果与分析实验所使用设备为Dell的14R-5421笔记本电脑,操作系统Windows10系统,CPU为Intel(R) Core(TM)i5-3337U@1.80GHz,8GB内存,Matlab R2014a㊂本次实验的图像的来源是Vision Research Lab用于图像配准的图像库㊂图1中(a)㊁(b)㊁(c)㊁(d)为实景的左视角和右视角图㊂图1 测试图片Fig.1Test picture本文首先提取Harris角点,然后进行图像配准㊂分别采用本文算法㊁Harris算法[2]㊁Cui算法[9]对图1中的两组图片进行特征点检测,3种方法的时间统计和特征点分布见表1和图2㊂从表1和图2(b)㊁(c)㊁(d)中可以看出本文提出的算法与另外两种算法相比,虽然特征点少了,但是特征点分布均匀节省了后续匹配时间的消耗㊂本文算法的特征点提取时间与Harris算法㊁Cui算法相比更具有优势,从两组图片检测时间显示本文算法与Harris算法至少减少了50%,与Cui算法相比较也有所提高㊂表1 3种算法的特征点检测时间Tab.1Feature point detection time of three algorithms算法特征点数Fig.1(a)Fig.1(b)Fig.1(c)Fig.1(d)检测时间/sFig.1(a)Fig.1(b)Fig.1(c)Fig.1(d) Harris算法1719108169112286.545.993.574.70 Cui算法3358224442511514.203.252.583.10本文算法1475936243793 3.302.83 1.60 2.60图2 特征点分布Fig.2Distribution of feature points表2是用本文算法㊁Harris算法㊁Cui算法对图1进行NCC匹配和RANSAC匹配的结果,可以看出,㊃3801㊃第58卷李浩,秦姣华,向旭宇,等:结合自适应阈值与Forstner的Harris角点匹配优化算法第9期虽然Harris 算法和Cui 算法在粗匹配的结果明显比本文算法多,但从RANSAC 提纯后的结果分析,这个两个算法存在太多错误的匹配对,而本文算法提取的特征点更精确㊂从以上分析可以得出,本文算法不但在匹配时间比Harris 算法㊁Cui 算法缩短很多,而且匹配精度与另外两个算法相比也得到了有效提高㊂图3是本文算法对其中一组图像的匹配结果㊂表2 3种算法的匹配正确率和时间Tab.2The matching accuracy and time of three algorithms 算法图像特征点NCC匹配NCC-RANSAC 匹配匹配正确率/%总时间/s本文算法Fig.1(a)1475Fig.1(b)93631521467.906.49Harris 算法Fig.1(a)1719Fig.1(b)108153822141.112.91Cui 算法Fig.1(a)3358Fig.1(b)2244118444537.587.89本文算法Fig.1(c)243Fig.1(d)7931398964.024.41Harris 算法Fig.1(c)691Fig.1(d)122827910738.358.48Cui 算法Fig.1(c)425Fig.1(d)11511435538.466.17图3 图像匹配结果及配准结果Fig.3Result of feature matching and registration6摇结束语本文介绍和分析了Harris 角点检测的原理以及存在的缺点,提出了一种基于自适应阈值Harris 特征点选择的算法㊂首先从自适应阈值和特征点预筛选两方面优化Harris 算法,接着为了进一步减少伪角点,为图像匹配做准备,并用Forstner 算子确定最佳特征点;最后考虑到NCC 匹配算法的缺点,结合NCC 与RANSAC 完成图像配准㊂实验结果表明,本文提出的优化算法在完成图像配准的同时,不但缩短了配准时间,而且对匹配率也有显著提高㊂本文将NCC 与RANSAC 算法结合,虽然对匹配效率有显著提高,但是仍然存在错误匹配点对,下一步将在匹配算法上加以优化改进㊂参考文献:[1] XIA X,DANG G,YAO Y,et al.Image registration modeland algorithm for multi-focus images[J].Pattern Recog⁃nition Letters,2017,86(1):26-30.[2] LI J,LI X L,YANG B,et al.Segmentation-based imagecopy-move forgery detection scheme[J].IEEE Transac⁃tions on Information Forensics and Security,2015,10(3):507-518.[3] PAN Z Q,ZHANG Y,KWONG S.Efficient motion anddisparity estimation optimization for low complexity multi⁃view video coding[J].IEEE Transactions on Broadcast⁃ing,2015,61(2):166-167.[4] ZHOU Z L,WANG Y L,WU Q M J,et al.Effective andefficient global context verification for image copy detec⁃tion[J].IEEE Transactions on Information Forensics and Security,2017,12(1):48-63.[5] ZHOU Z L,WU Q M J,HUANG F,et al.Fast and accu⁃rate near -duplicate image elimination for visual sensor networks[J].International Journal of Distributed Sensor Networks,2017,13(2):1329-1550.[6] ZHOU Z L,YANG C N,CHEN B J,et al.Effective andefficient image copy detection with resistance to arbitrary rotation[J].IEICE Transactions on Information and Sys⁃tems,2016,E99-D(6):1531-1540.[7] HARRIS C,STEPHENS M J.A combined corner and edge detector[C]//Proceedings of the 4th Alvey Vision Con⁃ference.Alvey,UK:IEEE,1988:147-151.[8] 耿利川,苏松志,李绍滋.基于透视不变二值特征描述子的图像匹配算法[J].通信学报,2015,36(4):105-114.GENG Lichuan,SU Songzhi,LI Shaozi.Perspective invari⁃ant binary feature descriptor based image matching algo⁃rithm[J].Journal on Communications,2015,36(4):105-114.(in Chinese)[9] CHANGAN K S,CHILVERI P G.Stereo image featurematching using Harris corner detection algorithm [C]//Proceedings of 2016International Conference on Automat⁃ic Control and Dynamic Optimization Techniques.Pune,India:IEEE,2016:691-694.[10] CHEN L,LU W,NI J,et al.Region duplication detectionbased on Harris corner points and step sector statistics [J].Journal of Visual Communication &Image Repre⁃sentation,2013,24(3):244-254.[11] ZENG F,ZHANG G,JIANG J.Text image with complex㊃4801㊃ 电讯技术 2018年background filtering method based on Harris corner-point detection[J].Journal of Software,2013,8(8):1825-1834.[12] 卢达龙,翁秀玲,吴炜,等.灰度变换下图像Harris角点特征点匹配算法性能分析[J].软件,2016,37(11):19-22.LU Dalong,WENG Xiuling,WU Wei,et al.Performanceevaluation of image feature point matching based on Har⁃ris corner[J].Computer Engineering&Software,2016,37(11):19-22.(in Chinese)[13] DAWOOD M,CAPPELLE C,NAJJAR M E E,et al.Har⁃ris,SIFT and SURF features comparison for vehicle lo⁃calization based on virtual3D model and camera[C]//Proceedings of2013International Conference on ImageProcessing Theory,TOOLS and Applications.Istanbul,Turkey:IEEE,2013:307-312.[14] CUI J,XIE J,LIU T,et al.Corners detection on fingervein images using the improved Harris algorithm[J].In⁃ternational Journal for Light and Electron Optics,2014,125(17):4668-4671.[15] WANG Z,LI R,SHAO Z,et al.Adaptive Harris cornerdetection algorithm based on iterative threshold[J/OL].Modern Physics Letters B,2017,31(15):1750181.[2017-10-25].https:///10.1142/S0217984917501810.[16] SUN L,WANG S,XING J,et al.Self-adaption Harris cor⁃ner detection algorithm based on image contrast area[C]//Proceedings of201527th Chinese Control and De⁃cision Conference.Qingdao:IEEE,2015:2287-2290.[17] SIGDEL M S,SIGDEL M,DINC S,et al.FocusALL:fo⁃cal stacking of microscopic images using modified Harriscorner response measure[J].IEEE/ACM Transactionson Computational Biology&Bioinformatics,2016,13(2):326-340.[18] FÖRSTNER W,GÜLCH E.A fast operator for detectionand precise location of distinct points,corners and circu⁃lar features[C]//Proceedings of1987ISPRS Intercom⁃mission Workshop.Interlaken,Switzerland:ISPRS,1987:281-305.作者简介:李 浩(1992 ),男,河南商丘人,硕士研究生,主要研究方向为图像处理㊁模式识别;秦姣华(1973 ),女,湖南沅江人,博士,教授㊁硕士生导师,主要研究方向为网络信息安全㊁图像处理㊁模式识别; Email:qinjiaohua@向旭宇(1972 ),男,湖南南县人,博士,教授,主要研究方向为模式识别㊁人工智能;王 静(1992 ),女,山西阳泉人,硕士研究生,主要研究方向为图像处理㊁模式识别;马文涛(1994 ),男,安徽临泉人,硕士研究生,主要研究方向为图像处理㊁模式识别㊂㊃5801㊃第58卷李浩,秦姣华,向旭宇,等:结合自适应阈值与Forstner的Harris角点匹配优化算法第9期。
harris方法Harris方法是一种经典的计算机视觉算法,被广泛应用于图像特征提取和图像匹配问题中。
它由Harris和Stephens于1988年提出,主要用于检测图像中的角点。
本文将从原理、特点和应用三个方面介绍Harris方法。
一、原理Harris方法的核心思想是通过计算图像像素的灰度值变化来判断是否存在角点。
角点是图像中灰度值变化显著的点,通常对应着物体的边缘或角落。
Harris方法通过计算图像中每个像素点的Harris响应函数来确定角点的位置。
Harris响应函数的计算公式为:R = det(M) - k(trace(M))^2其中,M是一个2x2的矩阵,表示每个像素点附近的灰度值变化情况。
det(M)表示矩阵M的行列式,trace(M)表示M的迹,k是一个常数。
二、特点Harris方法具有以下特点:1. 不受图像旋转和尺度变化的影响,对于图像的平移和旋转具有很好的鲁棒性;2. 对于噪声和光照变化具有一定的抗干扰能力;3. 可以检测出图像中的角点,并将其与其他特征点进行区分。
三、应用Harris方法在计算机视觉领域具有广泛的应用,主要包括以下几个方面:1. 特征点提取:Harris方法可以用于提取图像中的角点作为特征点,用于图像配准、目标跟踪等任务。
2. 特征匹配:通过计算两幅图像中的特征点之间的距离和相似度,可以实现图像的匹配和对齐。
3. 三维重建:通过对多幅图像进行特征点提取和匹配,可以实现三维场景的重建和建模。
4. 目标检测:通过检测图像中的角点,可以实现目标的检测和识别。
总结:Harris方法是一种经典而有效的图像特征提取算法,具有鲁棒性和抗干扰能力,广泛应用于计算机视觉领域。
它通过计算图像像素的灰度值变化来检测角点,可以用于特征点提取、特征匹配、三维重建和目标检测等任务。
在实际应用中,我们可以根据具体需求选择合适的参数和方法,以提高算法的性能和效果。
以上就是关于Harris方法的介绍,希望对读者对该方法有所了解,并能在实际应用中加以运用。
Harris⾓点检测原理详解关于⾓点的应⽤在图像处理上⽐较⼴泛,如图像匹配(FPM特征点匹配)、相机标定等。
⽹上也有很多博客对Harris⾓点检测原理进⾏描述,但基本上只是描述了算法流程,⽽其中相关细节并未作出解释,这⾥我想对有些地⽅做出补充说明,正所谓知其然知其所以然,如有不对,还望指正。
关于⾓点的应⽤在图像处理上⽐较⼴泛,如图像匹配(FPM特征点匹配)、相机标定等。
⽹上也有很多博客对Harris⾓点检测原理进⾏描述,但基本上只是描述了算法流程,⽽其中相关细节并未作出解释,这⾥我想对有些地⽅做出补充说明,正所谓知其然知其所以然,如有不对,还望指正。
1. 何为⾓点?下⾯有两幅不同视⾓的图像,通过找出对应的⾓点进⾏匹配。
再看下图所⽰,放⼤图像的两处⾓点区域:我们可以直观的概括下⾓点所具有的特征:>轮廓之间的交点;>对于同⼀场景,即使视⾓发⽣变化,通常具备稳定性质的特征;>该点附近区域的像素点⽆论在梯度⽅向上还是其梯度幅值上有着较⼤变化;2. ⾓点检测算法基本思想是什么?算法基本思想是使⽤⼀个固定窗⼝在图像上进⾏任意⽅向上的滑动,⽐较滑动前与滑动后两种情况,窗⼝中的像素灰度变化程度,如果存在任意⽅向上的滑动,都有着较⼤灰度变化,那么我们可以认为该窗⼝中存在⾓点。
3.如何⽤数学⽅法去刻画⾓点特征?当窗⼝发⽣[u,v]移动时,那么滑动前与滑动后对应的窗⼝中的像素点灰度变化描述如下:公式解释:>[u,v]是窗⼝的偏移量>(x,y)是窗⼝内所对应的像素坐标位置,窗⼝有多⼤,就有多少个位置>w(x,y)是窗⼝函数,最简单情形就是窗⼝内的所有像素所对应的w权重系数均为1。
但有时候,我们会将w(x,y)函数设定为以窗⼝中⼼为原点的⼆元正态分布。
如果窗⼝中⼼点是⾓点时,移动前与移动后,该点的灰度变化应该最为剧烈,所以该点权重系数可以设定⼤些,表⽰窗⼝移动时,该点在灰度变化贡献较⼤;⽽离窗⼝中⼼(⾓点)较远的点,这些点的灰度变化⼏近平缓,这些点的权重系数,可以设定⼩点,以⽰该点对灰度变化贡献较⼩,那么我们⾃然想到使⽤⼆元⾼斯函数来表⽰窗⼝函数,这⾥仅是个⼈理解,⼤家可以参考下。
医学图像处理中的图像配准方法使用技巧分析在医学图像处理中,图像配准是一项非常重要的技术。
图像配准可以将不同时间、不同模态或不同患者的图像进行对齐,以便进行比较、分析和提取有用的信息。
本文将分析医学图像处理中常用的图像配准方法,并提供一些使用技巧。
1. 直接法配准技术直接法配准技术是一种基于图像亮度信息的方法。
常见的直接法配准技术包括归一化互相关(Normalized Cross-Correlation, NCC)和互信息(Mutual Information, MI)。
NCC是一种简单直接的相似性度量方法,它通过计算两幅图像之间的互相关系数来判断它们的相似度。
具体来说,NCC通过将两幅图像分别减去它们的均值并除以它们的标准差,然后计算两幅图像的互相关系数来评估它们的相似度。
NCC方法简单快速,适用于配准任务中的大多数情况。
MI则是一种基于图像统计学的方法,它通过计算两幅图像在像素值分布上的相似度来判断它们的相似度。
MI方法不仅考虑了图像亮度信息,还考虑了图像的空间关系。
MI方法适用于医学图像中的多模态图像配准,具有较好的适应性和准确性。
在使用直接法配准技术时,需要注意以下几个技巧:- 预处理:在进行图像配准之前,应进行必要的预处理操作,例如去除噪声、平滑图像等。
- 参数选择:直接法配准技术通常需要设置一些参数,如窗口大小、平滑系数等。
合理选择参数可以提高配准的准确性和鲁棒性。
- 评估准则:在进行图像配准时,应选择合适的评估准则来评估配准结果的质量。
常用的评估准则包括均方误差(Mean Squared Error, MSE)、结构相似性指数(Structural Similarity Index, SSIM)等。
2. 特征法配准技术特征法配准技术是一种基于图像特征的方法。
常见的特征法配准技术有角点检测、边缘检测和特征点匹配。
角点检测是通过寻找图像中的角点来进行配准。
角点是图像中一些明显的、稳定的、与图像几何变换不敏感的特征点。
harris角点检测的原理
Harris角点检测是一种计算机视觉算法,用于寻找图像中的角
点(即具有明显的边缘变化的局部区域)。
其原理如下:
1. 图像灰度化:将彩色图像转换为灰度图像,以便后续处理。
2. 梯度计算:根据图像灰度值计算每个像素的梯度,通常使用Sobel算子进行图像梯度计算。
3. 计算自相关矩阵:对于每个像素,计算其周围窗口内梯度的自相关矩阵。
自相关矩阵是一个2x2的矩阵,包含了图像的二阶梯度信息。
4. 计算Harris响应函数:根据自相关矩阵计算Harris响应函数,该函数用于评估每个像素周围区域是否为角点。
Harris响应函
数定义为:
R = det(M) - k(trace(M))^2
其中,M是自相关矩阵,det(M)和trace(M)分别表示矩阵的行
列式和迹,k是一个经验参数,用于调整角点检测的灵敏度。
5. 非最大抑制:对于Harris响应函数计算得到的角点,使用非最大抑制算法排除冗余的角点。
非最大抑制通常根据角点的Harris响应值大小和邻域内角点的距离来决定是否保留一个角点。
6. 阈值处理:根据Harris响应函数的阈值,将不满足要求的角点剔除。
通常会通过设定一个合适的阈值,以过滤掉噪声和不
显著的角点。
通过以上步骤,Harris角点检测算法可以在图像中准确地检测到具有明显边缘变化的角点,并过滤掉不相关的点和噪声。
控制点检测方法一、引言控制点检测是计算机视觉领域中的一项重要任务,其目的是在图像或视频中准确定位和识别出特定的控制点。
控制点通常是一些具有明确特征的点,可以用于图像配准、三维重建、姿态估计等应用中。
本文将介绍几种常用的控制点检测方法,并对其原理和应用进行详细阐述。
二、特征点检测特征点检测是控制点检测的基础,它通过寻找图像中具有独特性质的像素点,用于表示图像的特定区域。
常见的特征点包括角点、边缘点、斑点等。
特征点检测的目标是找出具有鲁棒性和区分度的特征点,以便后续的匹配和跟踪。
1. Harris角点检测Harris角点检测是一种常用的特征点检测方法,它通过计算图像中每个像素点的角点响应函数,来判断该点是否为角点。
角点响应函数基于像素点的局部灰度变化和邻域窗口的自相关矩阵,通过计算特征值来判断角点的存在与否。
Harris角点检测方法具有简单、快速和鲁棒性好的特点,广泛应用于图像配准、目标跟踪等领域。
2. SIFT特征点检测尺度不变特征变换(SIFT)是一种基于局部图像特征的检测方法,它通过在不同尺度空间中寻找极值点,并提取出具有独特性质的SIFT描述子。
SIFT特征点检测方法具有旋转不变性和尺度不变性的优点,适用于大尺度和小尺度的图像配准和匹配任务。
三、控制点匹配控制点匹配是将两幅或多幅图像中的特征点进行对应的过程,目的是找到它们之间的几何关系。
控制点匹配可以通过特征描述子的相似性度量来实现,常用的方法包括最近邻匹配、RANSAC算法等。
1. 最近邻匹配最近邻匹配是一种简单直观的匹配方法,它将一个特征点与另一幅图像中最相似的特征点进行匹配。
匹配的相似性度量通常使用欧氏距离或汉明距离。
最近邻匹配方法简单易实现,但对于存在噪声和遮挡的情况,容易产生错误的匹配。
2. RANSAC算法RANSAC(Random Sample Consensus)算法是一种鲁棒的参数估计方法,常用于控制点匹配中的模型拟合。
它通过随机选择一组数据样本,计算模型参数,并统计符合模型的样本数目。
harris角点检测算法题目Harris角点检测算法是一种用于检测图像中角点的算法。
角点是图像中具有明显方向变化的地方,通常对应于场景中的边缘或拐点。
Harris角点检测算法具有较好的抗噪声性能和稳健性,因此在计算机视觉和图像处理领域得到了广泛应用。
题目:Harris角点检测算法的实现与应用一、问题描述Harris角点检测算法是一种广泛应用于图像处理和计算机视觉领域的角点检测算法。
该算法通过分析图像局部区域的灰度变化来确定角点位置,具有较好的稳定性和准确性。
本题目要求实现Harris角点检测算法,并探讨其在图像处理和计算机视觉领域的应用。
二、实现步骤1. 导入必要的库和模块,包括NumPy、OpenCV等。
2. 读取待处理的图像,并将其转换为灰度图像。
3. 定义Harris角点检测函数,包括计算图像中每个像素点的Harris响应值和确定角点位置等步骤。
4. 对灰度图像中的每个像素点应用Harris角点检测函数,得到每个像素点的Harris响应值。
5. 根据Harris响应值的大小,确定角点位置,并将其标记在图像上。
6. 可选:对检测到的角点进行可视化展示,以便更好地理解角点位置和分布情况。
三、应用示例1. 特征匹配:利用Harris角点检测算法检测两幅图像中的相似区域,通过特征匹配实现图像拼接、目标跟踪等功能。
2. 运动估计:利用Harris角点检测算法提取视频序列中的关键帧,通过对关键帧中角点的运动轨迹分析,估计视频中物体的运动轨迹和方向。
3. 3D重建:结合Harris角点检测算法和立体视觉技术,从多视角图像中提取角点信息,通过立体匹配和三维重建技术,重建出场景的三维结构。
4. 目标识别:利用Harris角点检测算法提取图像中的角点特征,结合分类器对目标进行识别和分类,如人脸识别、手势识别等。
5. 增强现实:通过Harris角点检测算法确定图像中的特征点位置,将虚拟物体与实际场景中的特征点进行配准,实现增强现实的效果。
HarrisCorner(Harris⾓检测)在做图像匹配时,常需要对两幅图像中的特征点进⾏匹配。
为了保证匹配的准确性,所选择的特征必须有其独特性,⾓点可以作为⼀种不错的特征。
那么为什么⾓点有其独特性呢?⾓点往往是两条边缘的交点,它是两条边缘⽅向变换的⼀种表⽰,因此其两个⽅向的梯度变换通常都⽐较⼤并且容易检测到。
这⾥我们理解⼀下Harris Corner ⼀种⾓点检测的算法⾓点检测基本原理:⼈们通常通过在⼀个⼩的窗⼝区域内观察点的灰度值⼤⼩来识别⾓点,如果往任何⽅向移动窗⼝都会引起⽐较⼤的灰度变换那么往往这就是我们要找的⾓点。
如下图右下⾯我们看⼀下Harris的数学公式,对于[x,y]平移[u,v]个单位后强度的变换有下式,I(x+u,y+v)是平移后的强度,I(x,y)是原图像像素。
对于括号⾥⾯的值,如果是强度恒定的区域,那么它就接近于零,反之如果强度变化剧烈那么其值将⾮常⼤,所以我们期望E(u,v)很⼤。
其中w是窗函数,它可以是加权函数,也可以是⾼斯函数利⽤⼆维泰勒展开式我们有所以其中⼀阶可以近似为于是我们可以给出Harris Corner的如下推导,其中Ix,Iy是x,y⽅向的Gradient模,乘以位移得到位移后的量对于⼩的位移,我们可以⽤双线性插值⽅法近似:其中M为2*2矩阵如下在本质上我们可以把⼆次项看成⼀个椭圆函数,我们对M进⾏特征值分析有λ1,λ2根据λ1,λ2的值我们可以把其分为三类:1.λ1,λ2都很⼩且近似,E在所以⽅向接近于常数;2.λ1>>λ2,或者λ2>>λ1, E将在某⼀⽅向上很⼤;3.λ1,λ2都很⼤且近似,E将在所以⽅向上很⼤;如图所⽰:最后我们通过计算⾓点响应值R来判断其属于哪个区间其中k⼀般为常数取在0.04-0.06间。
算法步骤:1.计算图像x,y⽅向的梯度I x,I y2.计算每个像素点的梯度平⽅3.计算梯度在每个像素点的和4.定义在每个像素点的矩阵H,也就是前⾯的M5.计算每个像素的⾓点响应6.设置阈值找出可能点并进⾏⾮极⼤值抑制代码:close allclear allI = imread('empire.jpg');I = rgb2gray(I);I = imresize(I,[500,300]);imshow(I);sigma = 1;halfwid = sigma * 3;[xx, yy] = meshgrid(-halfwid:halfwid, -halfwid:halfwid);Gxy = exp(-(xx .^ 2 + yy .^ 2) / (2 * sigma ^ 2));Gx = xx .* exp(-(xx .^ 2 + yy .^ 2) / (2 * sigma ^ 2));Gy = yy .* exp(-(xx .^ 2 + yy .^ 2) / (2 * sigma ^ 2));%%apply sobel in herizontal direction and vertical direction compute the %%gradient%fx = [-1 0 1;-1 0 1;-1 0 1];%fy = [1 1 1;0 0 0;-1 -1 -1];Ix = conv2(I,Gx,'same');Iy = conv2(I,Gy,'same');%%compute Ix2, Iy2,IxyIx2 = Ix.*Ix;Iy2 = Iy.*Iy;Ixy = Ix.*Iy;%%apply gaussian filterh = fspecial('gaussian',[6,6],1);Ix2 = conv2(Ix2,h,'same');Iy2 = conv2(Iy2,h,'same');Ixy = conv2(Ixy,h,'same');height = size(I,1);width = size(I,2);result = zeros(height,width);R = zeros(height,width);Rmax = 0;%% compute M matrix and corner responsefor i = 1:heightfor j =1:widthM = [Ix2(i,j) Ixy(i,j);Ixy(i,j) Iy(i,j)];R(i,j) = det(M) - 0.04*(trace(M)^2);if R(i,j)> RmaxRmax = R(i,j);endendend%% compare whith thresholdcount = 0;for i = 2:height-1for j = 2:width-1if R(i,j) > 0.01*Rmaxresult(i,j) = 1;count = count +1;endendend%non-maxima suppressionresult = imdilate(result, [1 1 1; 1 0 1; 1 1 1]); [posc,posr] = find(result == 1);imshow(I);hold on;plot(posr,posc,'r.');本⽂原创,转载请注明出处。
课程实验报告2017 - 2018学年第一学期课程名称:计算机视觉及应用实验名称:harris角点检测班级:学生姓名: 学号:实验日期: 2017.12.6 地点:指导教师:成绩评定: 批改日期:实验步骤及方法1.Harris角点检测算法的理论推导:首先建立一个数学模型:当窗口发生移动时,滑动前与滑动后的窗口中的像素点灰度变化用以下方式描述:其中,分别表示平移前后灰度值的变化。
在上式中添加权重,则描述其变化函数为:对进行一阶泰勒展开:因为对变化贡献不大,故忽略此项不计,则上式可写为:将上式平方项展开并写成矩阵形式,即:对于变化函数,其本质为自相关函数,对其进行变换为:令A=,B=,C=,则上式可写为:M是一个实对称阵,则其必定可以相似对角化且存在:,存在一个变换矩阵P,使得,。
求出其特征值及特征向量分别为:和正交,进一步化简:()()=其中,由此看出表征一个椭圆,而矩阵表示对旋转。
画出的等高线L,即:现在我们可以通过和去衡量变化量。
此时有三种情况:①假设不考虑的前提下,只需变化很小的量便可以使得,同理,不考虑的前提下,只需变化很小的量便可以使得,此时便可以说明在某一个方向上的变化很大,也就是说此时检测到的是图像的边缘。
②假设,都很很小,那么,需很大的变化量才可以使得,此时便可以说明在任意方向上的变化不明显,也就是说此时检测到的是图像平坦区域(灰度值变化不大的区域)。
③假设,都很大,那么,只需很小的变化量就可以使得,此时便可以说明在任意方向上的变化剧烈,也就是说此时检测到的是图像角点。
为了衡量这三种变化,找出其特征值与其的对应关系,建立数学表达式:①当R<0,检测到的为图像边缘;②当|R|非常小的时候,检测到的为图像中的平坦区域;③当R>0,检测到的为图像角点。
2.使用qt+opencv编写Harris角点检测程序,具体代码见实验数据;3.使用编写的代码检测一张示例图片的角点。
实验数据OPENCV程序代码:#include <opencv2/opencv.hpp>#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hppusing namespace cv;using namespace std;Mat g_srcImage, g_srcImage1,g_grayImage;实验数据分析及处理示例图片角点检测情况:图一图二图一为示例图像,是最大阈值为160的时候harris的角点检测,其中红色小点即为检测到的角点,图二中是最大阈值为130的时候harris的角点检测,其中红色小点即为检测到的角点实验结果分析通过用示例图片对opencv编写的程序进行测试,发现用Harris角点检测算法可以较为准确的检测出图片中的角点,但图片中也有很多角点未能被识别出来。
Harris的应用场景Harris是一种常用的角点检测算法,被广泛应用于计算机图像处理和计算机视觉领域。
以下是Harris算法在不同领域的应用场景:1. 特征提取与匹配Harris算法可以用于提取图像中的角点特征,这些角点通常包含了图像中的重要信息,比如物体边缘、拐角等。
通过在图像中检测并描述这些角点,可以实现图像分类、目标跟踪、拼接和识别等任务。
此外,在计算机视觉中,角点匹配也是非常重要的一环,Harris算法能够帮助实现特征点的匹配,用于目标定位、图像配准和三维重建等领域。
2. 相机标定与姿态估计Harris算法在相机标定和姿态估计中也有重要应用。
通过检测图像中的角点,可以帮助确定摄像机的内外参数,从而实现相机的准确标定。
此外,角点特征还可以用于估计物体或场景的姿态,比如计算物体的旋转、平移等变换信息,用于增强现实、三维重建和机器人导航等领域。
3. 图像拼接与全景生成利用Harris算法检测图像中的角点特征,可以实现图像拼接和全景生成。
首先,在每幅图像中提取角点特征,然后通过匹配这些特征点,确定它们之间的对应关系,最后利用相机的变换关系将多幅图像拼接成一个全景图像。
这一技术在虚拟现实、摄影合成和地图制作等方面有广泛应用。
4. 运动跟踪与目标检测Harris算法可以用于运动跟踪和目标检测。
通过检测图像中的角点特征,可以跟踪目标物体在连续帧图像中的运动轨迹,实现视频中的物体跟踪。
此外,Harris 算法还可用于目标检测,通过提取角点特征并与模板进行匹配,可以实现目标的检测定位,应用于视频监控、自动驾驶和人机交互等领域。
5. 图像压缩与编码Harris算法在图像压缩和编码中也有所应用。
角点特征是图像中的重要信息,通过提取和编码这些角点,可以实现对图像的高效压缩和传输,减小存储空间和带宽的需求,在无损和有损压缩中都有广泛应用。
以上只是Harris算法的一些典型应用场景,随着计算机视觉和图像处理技术的不断发展,Harris算法将进一步拓展其应用范围,并在更多领域展现出强大的潜力。
SMT-PAAG下的Harris角点检测与匹配算法车芳;韩俊刚;郭志全【期刊名称】《电子技术应用》【年(卷),期】2017(43)4【摘要】结合多核处理器SMT PAAG的平台特性,实现基于数据并行和任务并行的Harris角点检测与匹配算法.在SMT-PAAG仿真器上对其算法进行验证,根据加速比和效率两个性能指标对实验结果进行分析,结果表明SMT-PAGG上Harris角点检测与匹配算法的并行化实现效果显著.%SMT-PAAG is a multi-core processors.Based on SMT_PAAG platforms,using data parallel and task parallelism,the Harris comer detection and matching algorithm are implemented.The algorithms are verified on the SMT-PAAG emulator.Detailed analyses of speed up ratio and performance are performed.The experimental results show that the Harris comer detection and matching algorithm on SMT-PAGG parallel implementation are effective.【总页数】4页(P138-140,144)【作者】车芳;韩俊刚;郭志全【作者单位】西安邮电大学计算机学院,陕西西安710121;西安邮电大学计算机学院,陕西西安710121;西安邮电大学计算机学院,陕西西安710121【正文语种】中文【中图分类】TP391.4【相关文献】1.基于改进Harris角点检测算法的遥感影像匹配研究 [J], 郐洪杰2.基于Sobel边缘检测的圆周Harris角点检测算法 [J], 董立红;彭业勋;符立梅3.基于Harris角点检测与聚类算法的空间自旋目标干涉三维成像 [J], 梁婷;罗迎;樊昌周;张群;田泰方4.基于Harris-CPDA的角点检测算法 [J], 胡晓彤;朱博文;程晨5.基于SIFT算法与Harris角点检测的PCB板Mark点匹配研究 [J], 李大双;徐雷;王鑫;张莉萍因版权原因,仅展示原文概要,查看原文内容请购买。
harris角点检测与ncc匹配
file1:--------------------------------------------------------------------------------------
function [y1,y2,r,c]=harris(X) % 角点的检测,利用harris 算法 % 输出的是一幅图像 % [result,cnt,r,c]=harris(X)
% clc,clear all; % filename='qiao1.bmp'; % X= imread('filename.bmp'); % 读取图像 % Info=imfinfo(filename); %这个要习惯用 % % f=rgb2gray(X); f=X; %
ori_im=double(f)/255; %unit8转化为64为双精度double64 fx = [-2 -1 0 1 2]; % x方向梯度算子(用于Harris角点提取算法) Ix = filter2(fx,ori_im); % x方向滤波 善于使用filter % fy = [5 8 5;0 0 0;-5 -8 -5]; % 高斯函数一阶微分,y方向(用于改进的Harris角点提取算法) fy = [-2;-1;0;1;2]; % y方向梯度算子(用于Harris角点提取算法) Iy = filter2(fy,ori_im); % y方向滤波 Ix2 = Ix.^2; Iy2 = Iy.^2; Ixy = Ix.*Iy; clear Ix; clear Iy; %消除变量哈
h= fspecial('gaussian',[10 10 ],2); % 产生7*7的高斯窗函数,sigma=2
Ix2 = filter2(h,Ix2); Iy2 = filter2(h,Iy2); Ixy = filter2(h,Ixy); %分别进行高斯滤波
height = size(ori_im,1); width = size(ori_im,2); result = zeros(height,width); % 纪录角点位置,角点处值为1 ,背景都是黑色的哈
R = zeros(height,width);
Rmax = 0; % 图像中最大的R值 以便设置门限 for i = 1:height for j = 1:width M = [Ix2(i,j) Ixy(i,j);Ixy(i,j) Iy2(i,j)]; %2*2的矩阵 R(i,j) = det(M)-0.06*(trace(M))^2; % 计算R ,求得RMAX,看来是整体求得的,角点响应函数 if R(i,j) > Rmax Rmax = R(i,j); end; end; end;
cnt = 0; %记录点数的 for i = 2:height-1 for j = 2:width-1 % 进行非极大抑制,窗口3*3 if R(i,j) > 0.01*Rmax && R(i,j) > R(i-1,j-1) && R(i,j) > R(i-1,j) && R(i,j) > R(i-1,j+1) && R(i,j) > R(i,j-1) && R(i,j) > R(i,j+1) && R(i,j) > R(i+1,j-1) && R(i,j) > R(i+1,j) && R(i,j) > R(i+1,j+1) result(i,j) = 1; cnt = cnt+1; end; end; end; % % i=1; % for j=1:height % for k=1:width % if result(j,k)==1; % corners1(i,1)=j; % corners1(i,2)=k; % i=i+1; % end; % end; % end;
[posr, posc] = find(result == 1); % 角点个数 % imshow(ori_im) %和 X的效果是一样的 % hold on; % plot(posr,posc,'r.'); y1=result; y2=cnt; r=posr;c=posc; return; file2--------------------------------------------------------------------------------------------------------------------------------
function res=match(a1,cnt1,r1,c1,a2,cnt2,r2,c2) % res=match(a1,a2) % 将从a1寻找a2中的最佳匹配点,得到从a2中抽取的res,也就是单向搜索 % [result1,cnt1,r11,c11]=harris(a1); % [result2,cnt2,r22,c22]=harris(a2);%%%%%%%%%%%%%%%%%%%%%%%%%%%%可以保证想匹配哪些点就匹配哪些 % figure; % imshow(result1);title('result1角点位置'); % figure;title('result2角点位置'); % imshow(result2);
win=[1/9 1/9 1/9;1/9 1/9 1/9;1/9 1/9 1/9]; u1=filter2(win,a1); u2=filter2(win,a2); %求均值
%基于点特征的图像配准算法研究 山大
a1=double(a1); a2=double(a2); A=filter2(win,(a1-u1).^2);%求方差 B=filter2(win,(a2-u2).^2); [m1,n1]=size(a1); [m2,n2]=size(a2); res1=zeros(m1,n1); res2=zeros(m2,n2); %寻找的匹配的点
for s=1:cnt1 max=0; p=0;q=0;i=r1(s,1);j=c1(s,1); %p.q存放坐标 for v=1:cnt2 m=r2(v,1);n=c2(v,1); k1=(a1(i-1,j-1)-u1(i,j))*(a2(m-1,n-1)-u2(m,n)); %%%%%%%%%%%用result是找不到什么信息,3*3对于如此稀疏点没有用 k2=(a1(i-1,j)-u1(i,j))*(a2(m-1,n)-u2(m,n)); k3=(a1(i-1,j+1)-u1(i,j))*(a2(m-1,n+1)-u2(m,n)); %用循环要好一些 k4=(a1(i,j-1)-u1(i,j))*(a2(m,n-1)-u2(m,n)); k5=(a1(i,j)-u1(i,j))*(a2(m,n)-u2(m,n)); k6=(a1(i,j+1)-u1(i,j))*(a2(m,n+1)-u2(m,n)); k7=(a1(i+1,j-1)-u1(i,j))*(a2(m+1,n-1)-u2(m,n)); k8=(a1(i+1,j)-u1(i,j))*(a2(m+1,n)-u2(m,n)); k9=(a1(i+1,j+1)-u1(i,j))*(a2(m+1,n+1)-u2(m,n)); num=k1+k2+k3+k4+k5+k6+k7+k8+k9;
den=sqrt(A(i,j)*B(m,n)); ncc=num/den; if ncc>max max=ncc;p=m;q=n; end
end
res2(p,q)=1;
end
%做不出来可以先搜索一个点 res=res2; return
file3------------------------------------------------------------------------------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %特征点的匹配,主要应用 harris 角点的检测,match单向匹配 函数 %适合于有白边的图像,因为,在加窗滤波的时候,没有限定范围的哈,尽量保证角点不在边上 clc,clear all; a1=imread('qiao1.bmp'); a2=imread('qiao2.bmp'); %double的作用很大的啊 subplot(1,2,1); imshow(a1);subplot(1,2,2);imshow(a2); title('原来的图像');
[result1,cnt1,r1,c1]=harris(a1);%角点检测,得到原始的焦点位置图result [result2,cnt2,r2,c2]=harris(a2); figure;subplot(1,2,1);imshow(a1);hold on;plot(c1,r1,'g.'); subplot(1,2,2);imshow(a2);hold on;plot(c2,r2,'g.'); title('图1,2的角点图');
res2=match(a1,cnt1,r1,c1,a2,cnt2,r2,c2);%从result1中开始搜索在result2中可能达到的 [r22,c22]=find(res2==1);