使用radon变换进行直线检测

    最近做毕设,基础是利用radon变换进行直线检测。radon变换其实是对hough变换算法的优化,具体原理可自行查阅相关资料,在此不再赘述。本文要介绍的是利用matlab自带的radon变换函数进行直线检测,难点在于得到radon变换的结果后如何提取峰值并显示在原图上,下面将进行详细介绍。

    matlab中自带的radon函数使用方法如下:[R,x]=radon(F,theta);其中F为待检测的图像,需为灰度图像,theta是检测的角度范围,通常取0:179,R是radon变换的结果,是一个M*N的二维矩阵,其中M与x相等,是平行直线距离原点的距离(需结合原理理解),N是变换的角度范围,theta取0:179时,N为180。变换后可对结果进行显示。

    进行radon变换后。会得到一个二维矩阵,矩阵中峰值所在表征了原图中直线的信息,如上图所示,其中的黄点表示峰值,只要检测出峰值所在的位置,就可以得到直线的位置信息。峰值检测使用函数findpeaks(),由于该函数只能对一维向量进行检测,因此需事先对radon变换结果进行处理:

J=reshape(R,M*N,1);                    
[PKS,LOCS]=

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值