实现用hough变换检测直线算法

实现用hough变换检测直线算法

ID:6404381

大小:656.31 KB

页数:16页

时间:2018-01-12

实现用hough变换检测直线算法_第1页
实现用hough变换检测直线算法_第2页
实现用hough变换检测直线算法_第3页
实现用hough变换检测直线算法_第4页
实现用hough变换检测直线算法_第5页
资源描述:

《实现用hough变换检测直线算法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、沈阳理工大学数字图像处理课设1.设计目的1)了解Hought变换的原理;2)实现用Hough变换检测直线的算法。2.设计要求3)找一幅或多幅(两幅以上)包含直线形状的图像,检测出图像中的多条直线;4)分析并显示各直线的角度、长度。3.设计原理Hough变换是利用图像全局特性而将边缘像素连接起来组成区域封闭边界的一种方法。在预先知道区域形状的条件下,利用Hough变换可以方便的得到边界曲线而将不连续的像素边缘点连接起来。Hough变换的主要优点是受噪声和曲线间断的影响小。利用Hough变换可以直接检测某些已知形状

2、的目标,如直线。Hough变换的基本思想是点线的对偶性。一方面,图像空间中共线的点对应在参数空间里相交的线;另一方面,在参数空间中相交于同一个点的所有直线在图像空间里都有共线的点与之对应。因此Hough变换把在图像空间中的直线检测问题转换到参数空间中对点的检测问题,通过在参数空间里进行简单的累加统计完成检测任务。如果参数空间中使用直线方程,当图像空间直线斜率为无穷大时,会使累加器尺寸和变很大,从而使计算复杂度过大。为解决这一问题,采用直线极坐标方程,变换方程如下:ρ=xcosθ+ysinθ(3-1)根据3-1公

3、式,原图像空间中的点对应新参数空间中的一条正弦曲线,即点-正弦曲线对偶。检测直线的具体过程就是让θ取遍可能的值,然后计算ρ的值,再根据θ和ρ的值对累加数组累加,从而得到共线点的个数。下面介绍θ和ρ取值范围的确定。设被检测的直线在第一象限,右上角坐标为(m,n),则第一象限16沈阳理工大学数字图像处理课设中直线的位置情况如图3.1所示。图3.1坐标位置由图3.1可见,当直线从与x轴重合处逆时针旋转时,θ的值开始由0°增大,直到180°,所以θ的取值范围为0°~180°。由直线极坐标方程可知:ρ=x2+y2sin⁡

4、(θ+Φ)(3-1)Φ=sin-1(xx2+y2)(3-2)所以当且仅当x和y都达到最大且θ+Φ=±90°时(根据<来调整θ的值)ρ=

5、ρ

6、max=m2+n2(3-3),即ρ取值范围m2-n2~m2+n2。由θ、ρ的取值范围和它们的分辨率就可以确定累加器的大小,从而检测直线。利用Hough变换检测图像中直线的一般步骤应该首先对图像进行二值化,然后进行边缘检测,接着对边缘检测的结果作Hough变换,最后得到直线检测结果。为了简便,算法主要针对图像的Hough变换,所以输入图像采用二值边缘图,具体算法步骤如下:(1

7、)读入一幅256级灰度图(虽然是256级灰度,但实际上仅有0和255两个灰度等级)。16沈阳理工大学数字图像处理课设(2)根据图像尺寸决定Hough变换累加器的大小并分配内存。(3)对图像作Hough变换,并将变换结果存入Hough变换累加器。(4)设定阈值,并根据阈值大小将Hough变换累加器中累加值小于阈值的点清零,即认为这些点并不对应图像域中的一条直线。(5)查找Hough变换累加器中累加值最大的点,记录该点并将其领域清零,继续查找并记录下一个累加值最大的点,直到累加器中所有的累加值都为零,记录的这些点即

8、对应了检测到的图像中的直线。(6)根据检测到的点在图像域中绘出直线。16沈阳理工大学数字图像处理课设4.设计内容4.1、读入图像选取有较多直线及部分曲线以作对比的图像作为实验素材,这里我们必须使用彩色图像(有些看似灰度图像的实际属性也是彩色图像),原因下面有详解。4.2、检测图像边缘如果一个像素落在图像中某一个物体的边界上,那么它的邻域将成为一个灰度级变化的带。对这种变化最有用的两个特征是灰度的变化率和方向,他们分别用梯度向量的幅度和方向来表示。边缘检测算子检查每个像素的邻域并对灰度变化率进行量化,通常也包括方

9、向的确定。有若干种算子可以使用,大多数是基于方向导数掩模求卷积的方法。如Roberts算子,Sobel算子,Prewitt算子,Log算子等。这里采用Log算子提取图像边缘,再用均值滤波去除边缘图像噪声。4.3、实现Houg变换,检测出图像中的直线Hough变换是一种利用图像的全局特征将特定形状的边缘连接起来,形成连续平滑边缘的一种方法。它通过将源图像上的点影射到用于累加的参数空间,实现对已知解析式曲线的识别。这里先对边缘图像进行二值化处理,然后再用hough变换提取直线,最后用红色标记之。因为处理过程中需使用

10、灰度图像,但最后无法给灰度图像赋颜色(会出错或效果不好),只能给彩色图像赋颜色,故最初输入时请使用彩色图像。16沈阳理工大学数字图像处理课设5.程序代码clc;clear;%%录入图像并显示f=imread('C:UsersYeSonGDocumentsMATLAB1.jpg');%读入彩色图像,注意不能使用灰度图像o=f;%保留彩色原图f=rgb2gray(f);%将彩色

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。