基于Matlab的Hough变换提取车道线遇到的问题,求大佬指点

本文介绍了在Matlab中利用Hough变换进行车道线检测时遇到的问题,包括背景边缘线干扰、虚线检测不足以及Canny算子导致的锯齿状边缘。作者提出了三个关键问题:如何抑制背景边缘线干扰、增强虚线检测及处理Canny算子后的锯齿状直线,并寻求专业指导。
毕设要利用Matlab设计一个直线车道线检测算法,其核心部分是利用Hough变换对Canny算子处理后的图像进行直线边缘提取,在此过程中自己网上参考了一些资料设计了一个简单的算法,但处理效果不太理想。
(1)代码部分:

function HoughTrans(oldbuf)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%函数名称:
% HoughTrans() “Hough变换”函数
%参数:
% oldbuf 原图像数组
%说明:
%读取图像数据,通过Hough变换提取图像中的直线
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
imshow(oldbuf);hold on
[H1,T1,R1] = hough(oldbuf,‘Theta’,5:0.1:70);%左方直线检测与绘制
Peaks = houghpeaks(H1,3);
lines = houghlines(oldbuf,T1,R1,Peaks);
for k = 1:length(lines) %绘制线段
xy = [lines(k).point1;lines(k).point2];
plot(xy(:,1),xy(:,2),‘LineWidth’,1,‘Color’,‘red’);
end

[H2,T2,R2] = hough(oldbuf,‘Theta’,-70:0.1:-5);%右方直线检测与绘制
Peaks1=houghpeaks(H2,3);
lines1=houghlines(oldbuf,T2,R2,Peaks1);
for k=1:length(lines1) %绘制线段
xy1=[lines1(k).point1;lines1(k).point2];
plot(xy1(:,1),xy1(:,2),‘LineWidth’,1,‘Color’,‘red’);
end

hold off
end
(2)实验处理结果:
图一
上图可以看出处理效果(如红线所示)并不理想,原因应该是背景边缘线的干扰以及车道虚线处理效果不佳(未能检测出车道虚线),同时在其他一些图像经过canny算子边缘提取后车道线会呈现锯齿状(如图中黄线圈出),此时也无法检测出这些目标车道线(在上图中黄线圈出的不是目标车道线,但也应该要检测出来)。针对以上疑惑我相应的提出三个问题,希望大神能帮我解答:
<1>背景边缘线(尤其是自然风光)对实验结果影响非常大,有没有有效的方法来抑制这一干扰;
<2>有什么方法能加强对虚直线的检测;
<3>Canny算子边缘提取后图像中的锯齿状“直线”有没有比较好的处理办法。
自己学习Matlab不久,在做Hough变换处理图像时遇到很多问题,在网上查了很多资料都没有找到比较好的解决办法,第一次在SCDN上发表文章,希望哪位大神能帮我解答疑惑,不胜感激!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值