基于harris算法的黑白棋盘格角点检测
Harris角点检测算法
Harris⾓点检测算法⼀,⾓点 ⾓点还没有明确的数学定义。
⼀般的⾓点检测都是对有具体定义的、或者是能够具体检测出来的兴趣点的检测。
这意味着兴趣点可以是⾓点,也可以是在某些属性上强度最⼤或者最⼩的孤⽴点、线段的终点,或者是曲线上局部曲率最⼤的点。
在实践中,通常⼤部分称为⾓点检测的⽅法检测的都是兴趣点,⽽不是独有的⾓点。
因此,如果只要检测⾓点的话,需要对检测出来的兴趣点进⾏局部检测,以确定出哪些是真正的⾓点。
⽬前的⾓点检测算法可归纳为3类:基于灰度图像的⾓点检测、基于⼆值图像的⾓点检测、基于轮廓曲线的⾓点检测。
⾓点是图像很重要的特征,对图像图形的理解和分析有很重要的作⽤。
对灰度图像、⼆值图像、边缘轮廓曲线的⾓点检测算法进⾏综述,分析了相关的算法,并对各种检测算法给出了评价。
⼆,Harris算法 Harris⾓点提取算法:Harris ⾓点提取算法是Chris Harris 和Mike Stephens 在H.Moravec 算法的基础上发展出的通过⾃相关矩阵的⾓点提取算法,⼜称Plessey算法。
Harris⾓点提取算法这种算⼦受信号处理中⾃相关⾯数的启发,给出与⾃相关函数相联系的矩阵M。
M 阵的特征值是⾃相关函数的⼀阶曲率,如果两个曲率值都⾼,那么就认为该点是⾓点特征。
算法流程1.利⽤⽔平,竖直差分算⼦对图像的每个像素进⾏滤波以求得Ix,Iy,进⽽求得M中的四个元素的值。
代码中如果窗⼝数组array为-1,0,1,-1,0,1,-1,0,1}则是求解X⽅向的,如果为{-1,-1,-1,0,0,0,1,1,1}为Y⽅向的,则Ix和Iy求解结束,求解IX2相对⽐较简单,像素相乘即可。
2.对M的四个元素进⾏⾼斯平滑滤波,为的是消除⼀些不必要的孤⽴点和凸起,得到新的矩阵M。
3.3.接下来利⽤M计算对应每个像素的⾓点响应函数R,即:4、局部极⼤值抑制,同时选取其极⼤值5.在矩阵R中,同时满⾜R(i,j)⼤于⼀定阈值threshold和R(i,j)是某领域内的局部极⼤值,则被认为是⾓点三,代码1from pylab import *2from PIL import Image3from PCV.localdescriptors import harris4"""5 Example of detecting Harris corner points (Figure 2-1in the book).6"""7 # 读⼊图像8 im = array(Image.open(r'b3.jpg').convert('L'))9 # 检测harris⾓点10 harrisim = pute_harris_response(im)11 # Harris响应函数12 harrisim1 = 255 - harrisim13 figure()14 gray()15 #画出Harris响应图16 subplot(141)17 imshow(harrisim1)18 print (harrisim1.shape)19 axis('off')20 axis('equal')21 threshold = [0.01, 0.05, 0.1]22for i, thres in enumerate(threshold):23 filtered_coords = harris.get_harris_points(harrisim, 6, thres)24 subplot(1, 4, i+2)25 imshow(im)26 print (im.shape)27 plot([p[1] for p in filtered_coords], [p[0] for p in filtered_coords], '*')28 axis('off')29 show()四,运⾏结果 4.1纹理平坦的图 4.1.1正⾯ 4.1.2侧⾯ 4.1.3旋转 4.1.4相对较远处 4.1.5较亮情况 4.2垂直或⽔平边缘多 4.2.1正⾯ 4.2.2侧⾯ 4.2.3旋转 4.2.4相对较远处 4.3纹理⾓点丰富 4.3.1正⾯ 4.3.2侧⾯ 4.3.3旋转 4.3.4相对较远处五,结论以及实验中遇到的问题 5.1实验结果分析1. Harris⾓点具有旋转不变性。
计算视觉——Harris角点检测
计算视觉——Harris⾓点检测⽬录⼀、Harris ⾓点检测1.1 Harris ⾓点检测原理1.2⾓点检测算法⼆、基于Harris⾓点检测对不同类型图像做出的对⽐实验2.1 平坦图像的Harris⾓点检测实验结果2.2 边缘丰富图像的Harris⾓点检测实验结果2.3⾓点丰富图像的Harris⾓点检测实验结果三、结论与总结⼀.、Harris ⾓点检测1.1 Harris ⾓点检测原理Harris⾓点检测算法是最简单的⾓点检测⽅法之⼀。
它的基本思想是使⽤⼀个固定窗⼝在图像上进⾏任意⽅向上的滑动,⽐较滑动前与滑动后两种情况,窗⼝中的像素灰度变化程度,如果存在任意⽅向上的滑动,都有着较⼤灰度变化,那么我们可以认为该窗⼝中存在⾓点。
⽤数学⽅法来刻画⾓点特征:公式解释:>[u,v]是窗⼝的偏移量>(x,y)是窗⼝内所对应的像素坐标位置,窗⼝有多⼤,就有多少个位置>w(x,y)是窗⼝函数,最简单情形就是窗⼝内的所有像素所对应的w权重系数均为1。
但有时候,我们会将w(x,y)函数设定为以窗⼝中⼼为原点的⼆元正态分布。
如果窗⼝中⼼点是⾓点时,移动前与移动后,该点的灰度变化应该最为剧烈,所以该点权重系数可以设定⼤些,表⽰窗⼝移动时,该点在灰度变化贡献较⼤;⽽离窗⼝中⼼(⾓点)较远的点,这些点的灰度变化⼏近平缓,这些点的权重系数,可以设定⼩点,以⽰该点对灰度变化贡献较⼩,那么我们⾃然想到使⽤⼆元⾼斯函数来表⽰窗⼝函数,这⾥仅是个⼈理解,⼤家可以参考下。
所以通常窗⼝函数有如下两种形式:根据上述表达式,当窗⼝处在平坦区域上滑动,可以想象的到,灰度不会发⽣变化,那么E(u,v) = 0;如果窗⼝处在⽐纹理⽐较丰富的区域上滑动,那么灰度变化会很⼤。
算法最终思想就是计算灰度发⽣较⼤变化时所对应的位置,当然这个较⼤是指针任意⽅向上的滑动,并⾮单指某个⽅向。
1.2⾓点检测算法⾓点检测算法可归纳为3类:基于灰度图像的⾓点检测、基于⼆值图像的⾓点检测、基于轮廓曲线的⾓点检测。
基于改进Harris算法的角点检测
测 主要 应用 的两种 方法 。
f n to ft e Ha rs c r e e e t n s o l e o t ie . S c n l , t e t - s s a e d f e h c p f n n ma i u c in o h r i o n r d t ci h u d b b a n d o e o d y h wo ma k r e i d t e s o e o o - x ma n
总第 2 9 5 期 21 年第 5 01 期
计算机与数字工程
C mp tr& Diia En ie r g o ue gt l gn ei n
Vo. 9 No 5 13 .
12 4
基 于 改进 Hars 法 的 角 点 检 测 ri 算
房 超 王小鹏 牛云鹏 王 超
( 州交 通 大学 电 子与 信 息 工 程 学 院 兰 兰 州 7 0 7 ) 30 0
摘
要
提 出 了一 种 改 进 的 Har 角 点 检 测 方 法 。该 方 法 在 Har 角 点 检 测 求 得 角 点 响应 函 数 后 , 用 双 掩 膜 来 定 ri s ri s 利
义进行非极大值抑制的局部范围 , 结合 K均值 聚类方法进行非极大值抑制 , 若像素点 的角点响应 函数值 满足预设角点 判定 条件 , 则将该像素点定义为 角点 。实验结果表 明, 该方 法无需进行 阈值选择 , 高了角点检测精度 。 提
自适应的Harris棋盘格角点检测算法
表 3 高斯窗口参数
角点数目 148 205 137 184 134 149 134 158 134 137
误角点率 0.8310 0.8780 0.8175 0.8641 0.8134 0.8322 0.8134 0.8417 0.8134 0.8175
2009,30 (20) 4743
Байду номын сангаас
的宽度:5~15,步长为 1;④高斯函数的方差:0.2~3.0,步长为 0.2。
高斯方差和高斯模板大小。
高 斯 方 差 和 高 斯 模 板 大 小 不 易 确 定 。 窗 口 太 小 ,在 真 实
收稿日期:2008-10-22;修订日期:2008-12-14。 作者简介:侯建辉 (1983-),女,山西交城人,硕士研究生,研究方向为计算机图形与图像; 林意 (1963-),男,副教授,硕士生导师,研究 方向为计算机图像处理与辅助设计。E-mail:hou_mary@
目 前 ,常 见 的 角 点 检 测 方 法 主 要 有 两 类 。 第 一 类 主 要 依 赖 于 图 像 的 分 割 和 边 缘 提 取 ,计 算 量 较 大 且 算 法 性 能 依 赖 于 边 缘 检 测 的 效 果 ,因 此 使 用 范 围 较 小 。 第 二 类 是 基 于 图 像 灰 度的方法,主要通过计算图像中点的曲率及梯度来检测角点, 常见的有 Harris 算子、Susan(smallest univalue segment assimilating nucleus)算 子 等 。文 献 [1] 中 对 几 种 角 点 检 测 算 法 进 行 了 比 较 和 评价,认为 Harris 的定位性能和鲁棒性较好。Harris 算子计算 简 单 ,算 法 稳 定 ,是 目 前 使 用 最 广 泛 的 角 点 提 取 算 法 之 一 。
基于OpenCV的Harris角点检测
随着计算机技术的不断发展 , 计算机视觉已成为计算机领域中的热门研究课题之一. 利用相机采集图像 再结合图像处理和机器视觉等基础知识进行几何体相关参数视觉测量的技术 , 已经在现实生活中得到广泛
方 向发生 小小 的偏 移都 能 引起灰 度 的较 大变 化 , 么就认 为该 点是 角点 . 那
哈里斯检测算法受信号处理中 自 相关函数的启发认为 , 对于一 幅图片 , 角点与 自 相关 函数的曲率特性
相关 , 自相关 函数 表述 了局部 图像 灰度 的变 化程 度 , 并把 灰度 变化 度量 定义 为 :
的应用. 在进行视觉测量工作之前 , 首先要对摄像头进行标定 , 因为相机标定精度在很大程度上决定了视觉
测量的精度. 标定就是要计算出摄像头 的标定 内外参数以及 畸变参数 , 』其结果可以找出世界坐标 和图像 坐标之间的变换关系 , 所以寻找标定点的图像坐标是相机标定的重要环节. 由于角点包含了被识别物重要的 几何参数信息, 而在相机标定中需要利用到黑白棋盘格图片 , 以利用角点检测获取检测黑 白棋盘格图像中 所 的角点 , 从而可以获取特征点的像素坐标 . , 为相机参数标定提供 了已知条件. 在计算机视觉领域 中, 角点检测技术可以大致分为两大类 : 一类是基于图像边缘信息如基于边界链码和
小波变换模的角点检测算法 ; 另一类是基于图像灰度信息如 H rs 哈里斯 ) ai r( 算法 的角点检测技术. 第一
类算法在角点检测时较多依赖于边缘线 , 假设 由于某种原 因边缘线发生 中断, 则会对角点的检测及提取结果
基于harris算法的角点检测
基于Harris算法的角点检测一.角点检测综述在图像中,角点是一个重要的局部特征,它决定了图像中关键区域的形状,体现了图像中重要的特征信息,所以在目标识别,图像匹配,图像重构方面角点具有十分重要的意义。
图像中角点的数量远比总像素数小,如果通过角点就能完成一些功能的话,将极大地提高处理效率。
对于角点的定义一般分为以下三种:图像边界曲线上具有极大曲率值的点;图像中梯度值和梯度变化率都很高的点;图像边界方向变化不连续的点。
定义不同,角点的提取方法也不尽相同:一类是基于图像边缘特征的角点检测,然后再进行角点提取,例如Kitchen算法;另一种是基于灰度信息的角点检测及提取,例如Harris算法。
二.Harris角点检测算法1.Harris角点检测算法是在Moravec算法的基础上发展起来的。
Moravec算法是在研究图像中一个局部窗口在不同方向上进行少量的偏移后,考察窗口内图像亮度值的平均变化。
需要考虑下面三种情况;(1)如果窗口内区域图像的亮度值恒定,那么所有不同方向的偏移几乎不发生变化;(2)如果窗口跨越一条边,那么沿着这条边的偏移量几乎不发生变化,但是与边垂直的偏移量会发生很大的变化;(3)如果窗口包含一个孤立的点或者角点,那么所有不同方向的偏移量会发生很大的变化。
如图:平坦区域边缘角点任意方向移动,沿边缘方向移动沿任意方向移动无灰度变化无灰度变化灰度明显变化2.下面介绍Moravec算法以及Harris算法在其基础上做出的一些改进。
(1)计算像素点的自相关值的时候Moravec只考虑了像素点的8个方向。
Harris通过区域变化扩展,将一些灰度强度变化比较小的体现出来:将图像窗口平移[u,v]产生灰度变化E(u,v):高斯窗口(Harris算法使用平移的圆形窗口对图像进行预处理来降噪,这里是用的是高斯窗口):(x,y)移动(u,v)后的灰度值:(x,y)处的灰度值因为::分别表示图像在x,y方向的曲率:误差值所以:又:于是对于局部微小的位移量[u,v],可以得到近似的表达式:其中M是2*2矩阵,可以由图像的导数求得:当灰度变化比较小时,可以精确的写为,式中M为:=为了避免求M的特征值,使用Tr(M)和Det(M):Tr(M)=A+B,Det(M)=AB-(2)定义响应函数为:上式中角点响应函数R在角点区域为正值,在边界的区域为负值,在不变化的区域是很小的值。
harris角点检测的原理
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角点检测算法可以在图像中准确地检测到具有明显边缘变化的角点,并过滤掉不相关的点和噪声。
完整版Harris角点检测算法编程步骤及示例演示
Harris 角点检测算法编程步骤及示例演示也不说那么多废话了,要介绍啥背景意义之类的,角点检测,顾名思义,就是检测角点,最简单的就是两条线的交点了,还有比如下国际象棋的棋盘格子的交点之类的,反正就是检测这些点。
简单将Harris 角点检测算法的思想说下,就是拿一个小窗在图像中移动,通过考察这个小窗口内图像灰度的平均变换值来确定角点。
1)如果窗口内区域图像的灰度值恒定,那么所有不同方向的偏移几乎不发生变化;2)如果窗口跨越一条边,那么沿着这条边的偏移几乎不发生变化,但是与边垂直的偏移会发生很大的变化;3)如果窗口包含一个孤立的点或者角点,那么所有不同方向的偏移会发生很大的变化。
面给出具体数学推导:设图像窗口平移量为( u,v) ,产生的灰度变化为E(u,v),有E(u,v)二sum[w(x,y)[l(x+u,y+v)-l(x,y)F2棋中w(x,y)为窗口函数, l(x+u,y+v为平移后的灰度值,l(x,y)为平移前的灰度值。
有泰勒公式展开可得:l(x+u,y+v)=l(x,y)+lx*u+ly*v+0(uA2,v八2);lx,ly分别为偏微分,在图像中为图像的方向导数因此E(u,v)=sum[w(x,y) [lx*u+ly*v+O(u八2,v八2)]八2],可以近似得到E(u,v)=sum[w(x,y) [lx*u+ly*v]^2],即E(u,v)二[u,v][lx八2,lx*ly;lx*ly,ly八2][u,v]T令M=[lx八2,lx*ly;lx*ly,ly八2],因此最后对角点的检测成了对矩阵M的特征值的分析了,令M 其特征值为x1,x2;当x1>>x2或者x2>>x1,则检测到的是边缘部分;当x1,x2都很小,图像窗口在所有移动的方向上移动灰度级都无明显变化.当X1,X2都很大时且相当,检测到的是角点。
编程时用x1,x2不方便,因此定义角点响应函数;R二det(M)-k(trace(M))八2;其中det(M)为矩阵M的行列式,trace(M)为矩阵M的迹。
棋盘角点检测算法
棋盘角点检测算法1. 简介棋盘角点检测算法是计算机视觉领域中的一个重要任务,它主要用于在图像或视频中自动识别出棋盘格的角点。
这个任务在许多应用中都有广泛的应用,例如相机标定、三维重建、机器人导航等。
在本文中,我们将介绍棋盘角点检测算法的原理、常用方法和一些优化技术。
我们将从基础开始逐步展开,带你深入了解这一算法。
2. 原理棋盘角点检测算法的原理基于图像中棋盘格的特殊结构。
棋盘格由一系列平行线和垂直线交叉形成,而这些交叉点就是我们所说的角点。
为了检测出这些角点,我们需要寻找图像中亮度变化明显的区域。
通常情况下,黑白相间且边缘清晰的区域更容易被检测到。
3. 常用方法3.1 Harris 角点检测算法Harris 角点检测算法是最经典也是最常用的方法之一。
它通过计算图像中每个像素的角点响应函数来判断其是否为角点。
算法的基本思想是,对于图像中的某个像素,我们通过计算它在 x 和 y 方向上的梯度,然后根据这些梯度计算一个协方差矩阵。
最后,通过对协方差矩阵进行特征值分解,我们可以得到一个角点响应函数。
3.2 Shi-Tomasi 角点检测算法Shi-Tomasi 角点检测算法是对 Harris 角点检测算法的改进。
它在计算角点响应函数时使用了更加鲁棒和准确的评价指标。
具体来说,Shi-Tomasi 算法使用了最小特征值作为角点响应函数。
这样做可以使得算法对噪声更加鲁棒,并且能够检测到更准确的角点。
3.3 FAST 角点检测算法FAST(Features from Accelerated Segment Test)角点检测算法是一种高效的角点检测方法。
它通过快速地比较像素周围相邻像素的灰度值来判断当前像素是否为角点。
FAST 算法首先选择一个中心像素,然后选取周围一圈像素作为候选集。
接下来,算法会根据一定的阈值和连续像素数量来判断中心像素是否为角点。
FAST 算法的优势在于其计算速度非常快,适用于实时应用和大规模图像处理。
Harris角点检测原理及实现
Harris⾓点检测原理及实现为便于理解,先简要介绍⾓点的概念和⾓点检测背景1 背景⾓点检测⼤致可分为三类:基于灰度图的⾓点检测、基于⼆值化图像的⾓点检测和基于轮廓曲线的⾓点检测。
Harris属于基于灰度图的⾓点检测。
2 Harris特征原理2.1 概述Harris⾓点检测根据窗⼝向多个⽅向,通过判断窗⼝内像素值有⽆明显变化判断有⽆⾓点。
如下图: 第⼀幅图像中,窗⼝内像素值⽆明显变化,⽆⾓点。
第⼆幅图像中,窗⼝⽔平移动时有明显变化,⽆⾓点。
第三幅图中,窗⼝多个⽅向移动时有明显变化,有⾓点。
Harris⾓点检测可分为三步:梯度计算、响应值计算、⾓点提取。
下⾯按步骤介绍。
2.2梯度计算: 对图像中的任意⼀像素点I(x,y),进⾏⾃相关平移w(x+Δx、y+Δy)得到⾃相关函数: c(x,y,Δx,Δy) = ∑w h(x,y)(I(x,y)-I(x+Δx,y+Δy))2 其中 ∑w表⽰窗⼝内的点,h(x,y)表⽰加权函数,加权函数可根据⾃⼰需要进⾏修改(通过修改源代码)。
由泰勒可得: I(x+Δx,y+Δy) = I(x,y)+ΔxI x(x,y)+ΔyI y(x,y)+p ≈I(x,y)+ΔxI x(x,y)+ΔyI y(x,y)代⼊⾃相关函数可得(加权函数暂时忽略): c(x,y,Δx,Δy) = ∑w(I(x,y)-I(x+Δx,y+Δy))2 ≈ ∑w((ΔxI x(x,y))2+2ΔxΔyI x(x,y)I y(x,y)+(ΔyI y(x,y))2) 将上公式⽤图表⽰如下: 其中,u和v分别表⽰Δx和Δy,w(x,y)表⽰加权函数。
Harris算法是通过判断像素值是否在多个⽅向上有明显变化可转换为为是否在x和y⽅向上像素值均有明显变化,再转换为Ix或Iy的变化,再转换为M矩阵的特征值λ1,λ2的变化,如下图:2.3响应值计算:上⾯计算不易于通过编程实现,Harris通过定义⾓点响应函数R的⽅式,⽤于表⽰⼀个⾓点的Harris响应值:trace表⽰为矩阵的迹,det为矩阵的⾏列式(矩阵的迹:主对⾓线上的值相加即所有特征值的和),k为经验常数,⼀般取0.04~0.06。
harris角点检测算法步骤
harris角点检测算法步骤Harris角点检测算法步骤:一、引言Harris角点检测算法是计算机视觉中常用的角点检测算法之一。
它通过分析图像的局部灰度变化来寻找图像中的角点,被广泛应用于图像处理、物体识别、图像匹配等领域。
本文将介绍Harris角点检测算法的步骤及其原理。
二、灰度处理Harris角点检测算法首先需要将彩色图像转换为灰度图像,这是因为角点检测主要关注图像的灰度变化而非颜色信息。
通过将彩色图像的每个像素的RGB值加权平均,可以得到相应的灰度值。
三、计算梯度接下来,对灰度图像进行梯度计算。
梯度表示图像中的灰度变化,是图像中像素灰度值变化最快的方向。
通过对图像使用Sobel算子或其他梯度计算算法,可以计算出每个像素的梯度幅值和方向。
四、计算结构张量在Harris角点检测算法中,结构张量是一个重要的概念。
对于每个像素点,结构张量是一个2x2的矩阵,它描述了该像素点周围区域的灰度变化情况。
结构张量的计算公式包括对梯度幅值的平方、梯度幅值的乘积以及梯度方向的加权。
五、计算角点响应函数角点响应函数是Harris角点检测算法的核心。
它通过对结构张量进行特征值分解,得到每个像素点的角点响应值。
角点响应值的计算公式是通过特征值的乘积减去特征值的和,再乘以一个经验系数。
如果特征值的乘积较大,说明该像素点是角点。
六、非极大值抑制由于角点响应函数在角点处达到最大值,但在边缘和平坦区域也可能有较大值,为了提取出准确的角点,需要进行非极大值抑制。
在非极大值抑制过程中,对于每个像素点,比较其角点响应值与周围像素点的角点响应值,如果大于周围像素点的角点响应值,则保留,否则抑制。
七、阈值处理为了进一步提取出准确的角点,可以根据角点响应值设置一个阈值。
只有角点响应值大于阈值的像素点才被认为是角点。
阈值的选择是一个关键问题,需要根据具体应用场景和图像特点进行调整。
八、角点标记最后一步是将检测到的角点在原始图像上进行标记。
harris角点检测算法原理
harris角点检测算法原理Harris角点检测算法原理引言:角点检测是计算机视觉中一项重要的任务,它可以帮助计算机识别和跟踪图像中的角点特征。
Harris角点检测算法是一种经典的角点检测方法,它通过计算图像中像素点的角点响应函数来确定角点的位置。
一、角点的定义和特点角点是图像中突然变化的区域,其特点是在多个方向上都具有较大的灰度变化。
由于角点在图像中具有明显的特征,因此检测角点可以帮助计算机识别和跟踪物体。
二、角点响应函数Harris角点检测算法通过计算每个像素点的角点响应函数来确定是否为角点。
角点响应函数的计算公式如下:R = det(M) - k * trace^2(M)其中,M是一个2×2的矩阵,表示像素点附近的灰度变化情况。
det(M)表示矩阵M的行列式,trace(M)表示矩阵M的迹,k是一个常数。
三、角点响应函数的计算步骤1. 图像梯度计算:首先,对图像进行梯度计算,得到每个像素点的梯度幅值和梯度方向。
2. 构建自相关矩阵:对于每个像素点,根据其周围像素点的梯度幅值和梯度方向,构建一个2×2的自相关矩阵M。
3. 计算角点响应函数:根据自相关矩阵M的行列式和迹,计算角点响应函数R。
4. 阈值化和非极大值抑制:对于每个像素点,根据角点响应函数的值,进行阈值化操作,并对超过阈值的像素点进行非极大值抑制。
四、Harris角点检测算法的优缺点1. 优点:(1)计算简单:Harris角点检测算法的计算量相对较小,适合在实时应用中使用。
(2)稳定性好:Harris角点检测算法对图像的旋转、缩放和亮度变化具有较好的稳定性。
(3)可靠性高:Harris角点检测算法在各种场景下都能够较为准确地检测到角点。
2. 缺点:(1)对噪声敏感:Harris角点检测算法对噪声比较敏感,噪声会影响角点的检测结果。
(2)对尺度变化不敏感:Harris角点检测算法对于图像的尺度变化比较不敏感,可能会漏检或误检角点。
基于改进的Harris算法检测角点
Ab s t r a c t : Th e t r a d i t i o n a l Ha r r i s c o me r d e t e c t i o n lg a o it r h m n o t o n l y h a s a g o o d wo r k, b u t a l s o h a s a h i g h e r r e p e t i t i o n r a t e . Ho we v e r , t h e wh ol e c o me r d e t e c t i o n p r o c e s s d e p e n d s a l mo s t e n t i r e l y o n t h e c o me r e x ra t c t i on t h r e s ho l d d u r i n g n o n —ma x i ma s u p p r e s s i o n, a n d i t s h a r d t o a c h i e v e t h e r o t a i t o n l a i n v a r i a n c e i f t h e p a r a me t e r s d O n o t c h a n g e . I t p r e s e n t s n a i mp r o v e d Ha r r i s lg a o r i t h m. t h r o u g h t h e s e c o n d a r y ma x i ma s u p p r e s s i o n t o a v o i d s e t t i n g t h e t re h s h o l d v lu a e; a t t h e s a me t i me, r e d u c e t h e c o me r e x t r a c t i o n d i f f e r e n c e s a r o u n d i ma g e r o at t i o n wh e n t h e r ei s n o ta ny c h a n g et ot h ep a r a me t e r s . Th e e x p e r i me n t s h o wst ha tt hi s a l g o i r hm i t s s i mp l ea nd e a s yt o o er p a t e, he t c o me rp oi n t s e x ra t c ‘
harris角点检测算法 题目
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角点检测算法确定图像中的特征点位置,将虚拟物体与实际场景中的特征点进行配准,实现增强现实的效果。
基于改进的Harris算法检测角点
基于改进的Harris算法检测角点周龙萍【摘要】传统的Harris角点检测算法检测效果比较理想,也有较高的重复率,然而其角点提取的效果几乎完全依赖于非极大值抑制过程中阈值的设定,当参数不改变时,并不具有旋转不变性。
文中提出了一种改进的Harris算法,通过二次非极大值抑制,有效地避免设置阈值这一难点;同时,在不改变任何参数的情况下,明显地减小了图像旋转前后角点提取的差异。
通过对比实验表明,本算法简单易操作,提取角点非常有效,相较于传统的Harris算法具有更好的角点检测性能。
%The traditional Harris corner detection algorithm not only has a good work,but also has a higher repetition rate. However,the whole corner detection process depends almost entirely on the corner extraction threshold during non-maxima suppression,and it's hard to achieve the rotational invariance if the parameters do not change. It presents an improved Harris algorithm,through the secondary maxima suppression to avoid setting the threshold value;at the same time,reduce the corner extraction differences around image rotation when there is not any change to the parameters. The experiment shows that this algorithm is simple and easy tooperate,the corner points extrac-ted are very effective,compared with the traditional Harris algorithm has better corner detection performance.【期刊名称】《计算机技术与发展》【年(卷),期】2013(000)002【总页数】4页(P11-14)【关键词】Harris算子;角点;非极大值抑制;旋转不变;阈值【作者】周龙萍【作者单位】四川大学计算机学院,四川成都 610064【正文语种】中文【中图分类】TP310 引言在图像处理研究领域中,往往要从两幅或更多的相关图像中提取有用的信息。
python实现Harris角点检测算法
python实现Harris⾓点检测算法算法流程:1. 将图像转换为灰度图像2. 利⽤Sobel滤波器求出海森矩阵 (Hessian matrix) :3. 将⾼斯滤波器分别作⽤于Ix²、Iy²、IxIy4. 计算每个像素的 R= det(H) - k(trace(H))²。
det(H)表⽰矩阵H的⾏列式,trace表⽰矩阵H的迹。
通常k的取值范围为[0.04,0.16]。
5. 满⾜ R>=max(R) * th 的像素点即为⾓点。
th常取0.1。
Harris算法实现:import cv2 as cvimport numpy as npimport matplotlib.pyplot as plt# Harris corner detectiondef Harris_corner(img):## Grayscaledef BGR2GRAY(img):gray = 0.2126 * img[..., 2] + 0.7152 * img[..., 1] + 0.0722 * img[..., 0]gray = gray.astype(np.uint8)return gray## Sobeldef Sobel_filtering(gray):# get shapeH, W = gray.shape# sobel kernelsobely = np.array(((1, 2, 1),(0, 0, 0),(-1, -2, -1)), dtype=np.float32)sobelx = np.array(((1, 0, -1),(2, 0, -2),(1, 0, -1)), dtype=np.float32)# paddingtmp = np.pad(gray, (1, 1), 'edge')# prepareIx = np.zeros_like(gray, dtype=np.float32)Iy = np.zeros_like(gray, dtype=np.float32)# get differentialfor y in range(H):for x in range(W):Ix[y, x] = np.mean(tmp[y : y + 3, x : x + 3] * sobelx)Iy[y, x] = np.mean(tmp[y : y + 3, x : x + 3] * sobely)Ix2 = Ix ** 2Iy2 = Iy ** 2Ixy = Ix * Iyreturn Ix2, Iy2, Ixy# gaussian filteringdef gaussian_filtering(I, K_size=3, sigma=3):# get shapeH, W = I.shape## gaussianI_t = np.pad(I, (K_size // 2, K_size // 2), 'edge')# gaussian kernelK = np.zeros((K_size, K_size), dtype=np.float)for x in range(K_size):for y in range(K_size):_x = x - K_size // 2_y = y - K_size // 2K[y, x] = np.exp( -(_x ** 2 + _y ** 2) / (2 * (sigma ** 2))) K /= (sigma * np.sqrt(2 * np.pi))K /= K.sum()# filteringfor y in range(H):for x in range(W):I[y,x] = np.sum(I_t[y : y + K_size, x : x + K_size] * K) return I# corner detectdef corner_detect(gray, Ix2, Iy2, Ixy, k=0.04, th=0.1):# prepare output imageout = np.array((gray, gray, gray))out = np.transpose(out, (1,2,0))# get RR = (Ix2 * Iy2 - Ixy ** 2) - k * ((Ix2 + Iy2) ** 2)# detect cornerout[R >= np.max(R) * th] = [255, 0, 0]out = out.astype(np.uint8)return out# 1. grayscalegray = BGR2GRAY(img)# 2. get difference imageIx2, Iy2, Ixy = Sobel_filtering(gray)# 3. gaussian filteringIx2 = gaussian_filtering(Ix2, K_size=3, sigma=3)Iy2 = gaussian_filtering(Iy2, K_size=3, sigma=3)Ixy = gaussian_filtering(Ixy, K_size=3, sigma=3)# 4. corner detectout = corner_detect(gray, Ix2, Iy2, Ixy)return out# Read imageimg = cv.imread("../qiqiao.jpg").astype(np.float32)# Harris corner detectionout = Harris_corner(img)cv.imwrite("out.jpg", out)cv.imshow("result", out)cv.waitKey(0)cv.destroyAllWindows()实验结果:原图:Harris⾓点检测算法检测结果:点个赞再⾛呗!。
基于harris算法的黑白棋盘格角点检测
基于harris算法的黑白棋盘格角点检测
靳盼盼;李芙蓉
【期刊名称】《软件》
【年(卷),期】2013(034)004
【摘要】由于在进行摄像机标定时要用到棋盘格上角点的坐标,所以在摄像机标定之前必须要得到角点的坐标.本实验就是基于harris角点检测算法来检测黑白棋盘格上的角点,应用ginput函数得到检测出来的角点的坐标,并且简单叙述了harris 角点检测算法的基本原理和该算法基本的执行流程.实验结果表明,该算法简单可行,可以达到摄像机标定的目的.
【总页数】3页(P54-56)
【作者】靳盼盼;李芙蓉
【作者单位】长安大学信息工程学院,西安710061;长安大学信息工程学院,西安710061
【正文语种】中文
【中图分类】TP391.41
【相关文献】
1.自适应的Harris棋盘格角点检测算法 [J], 侯建辉;林意
2.基于Harris算法的黑白棋盘格角点检测 [J], 张裕;方康玲;刘永祥
3.黑白棋盘格角点检测算法 [J], 刘阳;王福利;常玉清;吕哲
4.基于Harris的棋盘格角点检测改进算法 [J], 王晓辉;程健庆;韩瑜
5.基于Hessian矩阵的黑白棋盘格角点检测 [J], 吴海滨;周英蔚;周雨润;陈新兵;刘祥;高朋
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【 Ab s t r a c t ]D u e t o c a me r a c a l i b r a t i o n u s e d c h e c k e r b o a r d o n a n g u l a r p o i n t c o o r d i n a t e s , S O a n g u l a r p o i n t c o o r d i n a t e s m u s t b e g o t
c h e c k e r b o a r d , a p p l y g i n p u t f u n c t i o n g e t d e t e c t e d An g l e o f p o i n t c o o r d i n a t e s . An d he t Ha r r i s c o me r d e t e c i t o n a l g o i r t h m re a d e s c r i b e d b ie r f l y
he t e x pe im e r n t .
【 Ke y wo r d s ]c a me r a c a l i b r a t i o n ; c h e s s b o a r d p a R e m t e mp l a t e ; H a r r i s c o me r d e t e c t i o n
本文著录格 式 :【 1 】 靳盼盼 , 李芙蓉 . 基于 h a r r i s 算法的黑 白棋盘格角点检 测 Ⅱ ] . 软件 , 2 0 1 3 , 3 4 ( 4 ) :5 4 — 5 6 Ba s e d o n Ha r r i s c o r ne r d e t e c t i o n a l go r i t hm
b e f o r e t h e c a me r a c a l i b r a t i o n . T h i s e x p e r i me n t i s b a s e d o n Ha r r i s c o me r d e t e c i t o n a l g o it r h m t o d e t e c t t h e An g l e p o i n t o n t h e b l a c k a n d wh i t e
J I N Pa n— pa n, LI Fu— r o ng
( S c h o o l o f i n f o r m a t i o n E n g i n e e r i n g , C h a n g " a n U n i v e r s i t y , x i ’ a n , 7 1 0 0 6 1 , C h i n a )
he t b a s i c p r i n c i p l e a n d b a s i c i mp l e me n t a t i o n p r o c e s s , he t a l g o r i t h m a n d he t a l g o r i t h m o f he t i n l f u e n c e o f v a r i o u s p ra a me t e r s o n he t r e s u l t o f
0绪论
随 着 科 学技 术 的发 展 和社 会 的 进 步 ,应 用摄 像 机 采 集 图像 ,
并 结合 着立 体视 觉 技 术 、三 维立 体 测 距 、三 维重 建 和 图像 处 理 等
和基于模板梯度组合 3 类 方 法 ,其 中基 于 模 板 的 方 法 主 要 考 虑 像 素 领 域 点 的 灰度 变化 , 即 图像 亮 度 的 变 化 ,将 与 邻 点 亮 度 对 比 足 够 大 的 点 定 义 为 角 点 。 常见 的基 于 模 板 的 角 点 检 测 算 法 有 K i t c h e n - R o s e n f e l d角 点 检 测 算 法 ,Ha r r i s 角 点 检 测算 棋 盘格 上的角点,应用 g i n p u t 函数得 到检测 出来 的角 点的坐标,并且简单 叙述 了h a r i r s 角点检测
算法的基本原理和该算法基本 的执行流程。实验结果表 明,该算法简单可行 ,可 以达到摄像机标定 的 目的。 关键词 :摄像机标定 ; 棋盘格模板 ; Ha r r i s 角点检 测 中图分类号 :T P 3 9 1 . 4 1 文献标 识码 :A DOI :1 0 . 3 9 6 9 / j . i s s n . 1 0 0 3 — 6 9 7 0 . 2 0 1 3 . 0 4 . 0 1 7
软件 2 0 1 3年第 3 4卷 第 4期
S O F T WA R E
国际 I T传媒品牌
基于 h a r r i s 算法的黑 白棋盘格角点检测
靳盼盼,李芙蓉
( 长 安大 学信息 工程 学院 ,西 安 7 1 0 0 6 1 )
摘
要 :由于在进行摄像机标定 时要用到棋盘格上角点的坐标 ,所 以在摄像机标定之前必须要得到角点的坐标。本 实验就是基
技 术 ,已 在 现 实 生 活 和 工 作 当 中 得 到 了广 泛 的 应 用 。 而 角 点 检 测 对 摄 像 机 标 定 工 作 非 常 重 要 ,角 点 检 测 是 摄 像 机 标 定 的 前 提 和 基 础 。所 谓 角 点 ,就 是 图 像 中 灰 度 变 换 较 大 的 点 。 角 点 对 于