matlab使用hough变换函数进行车道检测
1.导入图片后进行预处理,包括灰度图、滤波、突出边缘、二值化。边缘检测方法有:'gaussian', 'sobel', 'prewitt', 'laplacian', 'log', 'average', 'unsharp', 'disk', 'motion'。
2.使用[H,theta,rho] = hough(f3,'RhoResolution', 0.2, 'Theta', -90:0.2:89)函数将预处理后的图片进行hough变换,得到H矩阵。
3.使用P=houghpeaks(H,5,'threshold', ceil(0.3*max(H(:))))函数取得H矩阵中5处最高值的位置,表示取得存在于原图中较长的5条直线。
4.使用lines=houghlines(f3,theta,rho,P,'FillGap',20,'MinLength',40)函数取得上述5条直线在图中的端点。
5.滤除长度与斜率不符合车道实际的线段后,划线显示检测得到的车道。
F=imread('D:\Desktop\2.png');
f=rgb2gray(F);
f1=medfilt2(f,[9,9]); %中值滤波
H=fspecial('log');
f2=imfilter(f1,H); %突出边缘
thresh=graythresh(f2);
f3=imbinarize(f2,thresh); %二值化
figure(1),imshow(f3);[H,theta,rho] = hough(f3,'RhoResolution', 0.2, 'Theta', -90:0.2:89);
figure(2),imshow(imadjust(rescale(H)),'XData',theta,'YData',rho,'InitialMagnification','fit');
title('Hough transform');
xlabel('\theta'), ylabel('\rho');
axis on, axis normal, hold on;
colormap(gca,hot);P=houghpeaks(H,5,'threshold', ceil(0.3*max(H(:))));
x = theta(P(:,2));
y = rho(P(:,1));
plot(x,y,'s','LineWidth',1.5,'Markersize',10,'color','green');lines=houghlines(f3,theta,rho,P,'FillGap',20,'MinLength',40);
line_length_thred=40;
slope_thred=0.1;
figure(3),imshow(f3);
L= length(lines);
for k=1:Lxy= [lines(k).point1; lines(k).point2];line_length=((xy(1,1)-xy(2,1))^2+(xy(1,2)-xy(2,2))^2)^0.5;
if line_length< line_length_thredcontinue;
end
slope=(xy(1,2)-xy(2,2))/(xy(1,1)-xy(2,1));
if abs(slope)< slope_thredcontinue;
end
line(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');
end
预处理后的二值化图像如下:
hough变换后找到5个H矩阵中的最大值:
可看到(rho,theta)在图内部有2个高值在(100,-50°)、(400,40°)左右。
根据matlab中hough变换后的坐标关系,可知(rho,theta)为(100,-50°)正是检测到的右边的车道线。(rho,theta)为(400,40°)正是检测到的左边的车道线。
theta在-90°与90°附近检测到3个H矩阵中的高值,表示检测到图片中横向的线条。
滤除长度与斜率不符合车道实际的线段后,划线显示检测得到的车道。
matlab使用hough变换函数进行车道检测相关推荐
- 基于matlab的Hough变换图像直线检测算法仿真
目录 1.算法仿真效果 2.MATLAB源码 3.算法概述 4.部分参考文献 1.算法仿真效果 matlab2022a仿真结果如下:
- MATLAB使用hough变换函数输出[H,theta,rho]的具体含义
Hough 变换输出参数[H,theta,rho]的具体含义 F=imread('D:\Desktop\90.png'); f=rgb2gray(F); [H,theta,rho] = hough(f ...
- 【车道线检测】基于matlab Hough变换图片车道线检测 【含Matlab源码 276期】
⛄一.Hough变换图片车道线检测简介 1 引言 随着人们生活水平的提高, 科技的不断进步, 智能驾驶技术逐渐受到了研究者们的广泛研究和关注.先进驾驶辅助系统 (Advanced Driver Ass ...
- 【车道线检测】Hough变换图片车道线检测 【含Matlab源码 276期】
⛄一.Hough变换图片车道线检测简介 1 引言 随着人们生活水平的提高, 科技的不断进步, 智能驾驶技术逐渐受到了研究者们的广泛研究和关注.先进驾驶辅助系统 (Advanced Driver Ass ...
- hough变换检测直线 matlab,Matlab实现Hough变换检测图像中的直线
Hough变换的原理: 将图像从图像空间变换至参数空间,变换公式如下: 变换以后,图像空间与参数空间存在以下关系: 图像空间中的一点在参数空间是一条曲线,而图像空间共线的各点对应于参数空间交于一点的各 ...
- 基于边缘检测与Hough变换的车道线检测
基于边缘检测与Hough变换的车道线检测 第一章:绪论 1.1 研究意义及背景 高速公路的通行里程是一个国家发展水平的重要标志之一.高速公路具有车辆通行能力大.交通事故少.经济效益高的特点,它的不断发 ...
- 车道检测、自适应巡航控制和编队matlab simulink仿真建模模型
车道检测.自适应巡航控制和编队matlab simulink仿真建模模型 ID:8630672358957146一無所有`
- matlab道路检测,基于MATLAB的车道保持辅助车道检测
模拟车道以下 您可以修改LKA的Safe Lateral Offset的值以忽略驱动程序输入,将控制器置于纯通道跟随模式.通过增加该阈值,横向偏移总是在由车道保持辅助设定的距离内.因此,车道偏离的状态 ...
- hough函数 matlab,matlab中hough函数
hough 变换提取直线(Matlab 实现) Hough 变换提取直线一.实验目标实现用 Hough 变换检测直线的算法二.实验内容 1.读入图像选取有较多直线及部分曲线以作对比的...... 基于 ...
最新文章
- 关于AndroidSDK配置时的tools目录下找不到adb.exe的错误
- KeilKill.bat删除keil编译生成的过程文件
- 个人觉得非常好的B树,B+树的总结
- 十字链表、邻接多重表
- 机器学习之-BoostedTree
- 03-Axure9默认元件库
- pythonista安卓_Android平台有哪些软件类似于iOS上的JSbox、Pythonista和Thor?
- “十四五”国家信息化规划发布,十大要点解读
- 饥荒如何修改服务器人数上限,《饥荒联机版》房间人数上限修改图文教程
- Flutter String 常用方法
- C语言排序(冒泡排序、选择排序、插入排序和快速排序)
- Spark ML 构建回归模型
- 吉他编曲--如何“扒带”(下)
- turn out用法
- 动态规划的一般解题思路-详解
- java 文件路径读取,java中依据路径读取文件
- 大数据开发常用的编程语言有哪些?
- 如何做好网络推广浅析SEO优化网站文章需要注意哪些技巧?
- Facebook前副总裁手撕老东家,叫板华尔街,怒怼风投圈……
- 参与社团活动的意义_学校开展社团活动有何意义
热门文章
- c#生成PPT总结(Microsoft.Office.Interop)
- 富士康将和台积电联手 竞购东芝半导体业务
- [论文笔记]CAB:CAching in Buckets CAB-ACME
- 测试必备的15个docker命令,你都掌握了吗
- 线索二叉树、选择树、堆
- php中的preg_replace函数,PHP正则替换preg_replace函数如何使用
- steam怎么设置邮箱令牌_steam收不到邮箱令牌验证码怎么办 这些知识你不一定知道...
- python3两个三阶矩阵相乘_两个三阶矩阵相乘的例子和方法!急!
- 已知校验矩阵(监督矩阵)或生成矩阵G怎样生成所有可能码字
- 微信公众号的封面图怎么拿到手