毕设要利用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