Hough变换检测直线
2010-01-23 22:04
281 查看
Hough变换就是对于图象中某些符合参数模型的主导特征,如直线、圆、椭圆等,可以通过对其参数进行聚类的方法,抽取相应的特征。
例如,直线在极坐标系下具有如下的参数方程形式:
首先将参数空间量化为等间隔的小区域,然后针对超过给定阈值的所有边缘点,对于每个边缘点将其映射到的参数空间中的小区域
中,记数落到每个小区域的点数。最后,取具有最大频度的若干小区域的参数作为线条特征的参数,得到图象中主导性的线条特征。
中(a)左图为图像空间的直线的极坐标表示,右图为参数空间表示;(b)对直线上每个点进行都变换到参数空间进行投票。
算法流程如下:
1) 构建量化的参数空间,横轴为原点到直线的距离d,纵轴为直线的倾角
,一般取d
的量化间隔为1 个像素,
的量化间隔为1度。
2) 对输入图像首先进行边缘提取,实验中使用的是Canny 算子。
3)对边缘上的每一个点,在参数空间,对每一个
计算对应的
然后绘制出相应的
曲线,这就相当于对相应的参数空间的参数对进行投票。
4)选择票数最多的那个参数对
作为该直线的参数,这里需要确定一个阈值, 参数空间中大于该阈值的元素才被考虑为可行直线参数, 同时需要在参数空间计算 局部的极大值。总的说来,参数空间满足如下两个条件的点才能够做为直线参数输出:
i. 该点为局部极大值
ii. 该点的值大于阈值。
Hough变换检测的结果如下:
例如,直线在极坐标系下具有如下的参数方程形式:
首先将参数空间量化为等间隔的小区域,然后针对超过给定阈值的所有边缘点,对于每个边缘点将其映射到的参数空间中的小区域
中,记数落到每个小区域的点数。最后,取具有最大频度的若干小区域的参数作为线条特征的参数,得到图象中主导性的线条特征。
中(a)左图为图像空间的直线的极坐标表示,右图为参数空间表示;(b)对直线上每个点进行都变换到参数空间进行投票。
算法流程如下:
1) 构建量化的参数空间,横轴为原点到直线的距离d,纵轴为直线的倾角
,一般取d
的量化间隔为1 个像素,
的量化间隔为1度。
2) 对输入图像首先进行边缘提取,实验中使用的是Canny 算子。
3)对边缘上的每一个点,在参数空间,对每一个
计算对应的
然后绘制出相应的
曲线,这就相当于对相应的参数空间的参数对进行投票。
4)选择票数最多的那个参数对
作为该直线的参数,这里需要确定一个阈值, 参数空间中大于该阈值的元素才被考虑为可行直线参数, 同时需要在参数空间计算 局部的极大值。总的说来,参数空间满足如下两个条件的点才能够做为直线参数输出:
i. 该点为局部极大值
ii. 该点的值大于阈值。
Hough变换检测的结果如下:
相关文章推荐
- Hough变换 直线检测原理及其Matlab实现
- OpenCV学习之Hough变换检测直线
- 通过hough变换检测直线
- java hough变换(霍夫变换)检测直线
- opencv+vs2008实现canny边缘检测与hough变换检测直线并用红线在原图标出直线
- 图像中直线的检测——Hough变换原理
- OpenCV自学笔记5:Hough变换检测直线和圆
- Hough变换检测直线的Java实现
- Hough变换检测直线
- (转+改)Hough变换--直线检测
- Hough变换-直线检测
- 利用Hough变换实现直线检测的代码
- hough变换是如何检测出直线和圆的?
- Matlab实现Hough变换检测图像中的直线 分类: 图像处理 2014-06-14 22:07 641人阅读 评论(0) 收藏
- Hough变换检测直线
- hough变换是如何检测出直线和圆的
- Hough变换检测直线
- Hough变换直线检测
- OpenCv中用hough变换检测直线,有图有真相
- Hough变换检测直线和圆