【车道线检测与寻迹】LSD、LBD快速直线检测
python应用LSD opencv
这个LSD https://github.com/primetang/pylsd是封装好的,不知道哪儿改参数,原始的LSD检测前会将图片缩小至80%,当图片很小是,之后检测的线会减少。
可以直接用opencv-python里面的createLineSegmentDetector()函数,用help查看用法,再根据需要修改参数。我这边选择检测前不缩放,那么_scale=1
LSD代码:
img = cv2.imread(imagepath, cv2.IMREAD_COLOR)gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)lsd = cv2.createLineSegmentDetector(0, _scale=1) dlines = lsd.detect(gray) for dline in dlines[0]: x0 = int(round(dline[0][0])) y0 = int(round(dline[0][1])) x1 = int(round(dline[0][2])) y1 = int(round(dline[0][3])) cv2.line(img, (x0, y0), (x1,y1), 255, 1, cv2.LINE_AA) cv2.imwrite('./lines.png', img)
也参考opencv:cv::LineSegmentDetector Class Reference
https://docs.opencv.org/trunk/db/d73/classcv_1_1LineSegmentDetector.html
链接:https://blog.csdn.net/summermaoz/article/details/103827822
回顾霍夫
博文 https://blog.csdn.net/poem_qianmo/article/details/26977557/
框图
https://blog.csdn.net/chishuideyu/article/details/78081643
代码说明:LineSegmentDetector是一个类,这个类用于实现LSD算法!代码中用到的两个成员函数如下:cv::LineSegmentDetector::detect();对输入图像进行线检测;cv::LineSegmentDetector::drawSegments() :将检测到的线绘制出来createLineSegmentDetector这个函数返回一个LineSegmentDetector类的对象的指针~它的原型如下:Ptr<LineSegmentDetector> createLineSegmentDetector(int _refine = LSD_REFINE_STD, double _scale = 0.8,double _sigma_scale = 0.6, double _quant = 2.0, double _ang_th = 22.5,double _log_eps = 0, double _density_th = 0.7, int _n_bins = 1024);可见,这个函数很像类的构造函数,它里边已经有缺省的初始化参数了。这里说明下int _refine的几个宏定义参数的含义:LSD_REFINE_NONE = 0, //!< No refinement applied
LSD_REFINE_STD = 1, //!< Standard refinement is applied. E.g. breaking arches into smaller straighter line approximations.LSD_REFINE_ADV = 2 //!< Advanced refinement. Number of false alarms is calculated, lines are refined through increase of precision, decrement in size, etc.
链接:https://blog.csdn.net/wenhao_ir/article/details/51776737
LSD
LSD快速直线检测算法是由Rafael Grompone、Jeremie Jackbowicz、Jean-Michel Morel于2010年发表在PAMI上的文献《LSD:a Line Segment Dectctor》中提出的,该算法时间复杂度较霍夫变换低。LSD算法通过对图像局部分析,得出直线的像素点集,再通过假设参数进行验证求解,将像素点集合与误差控制集合合并,进而自适应控制误检的数量 。一般来说,要检测图像中的直线,最基本的思想是检测图像中梯度变化较大的像素点集,LSD算法也正是利用梯度信息和行列线(level-line)来进行直线检测的。
关于LSD快速直线检测算法的原理,可以参考博文http://blog.csdn.net/polly_yang/article/details/10085401
关于LSD快速直线检测算法的算法实现和相关代码,可以参考下面两篇博文:
http://blog.csdn.net/tianwaifeimao/article/details/17678669
http://blog.csdn.net/lonelyrains/article/details/49493053
https://blog.csdn.net/wenhao_ir/article/details/51776737
资料
https://www.cnblogs.com/Jessica-jie/p/7510931.html
[1]LSD: a Line Segment Detector线段检测器
LSD是一种局部提取直线的算法,速度比Hough要快。 LSD是一种直线检测分割算法,它能在线性的时间内得出亚像素级精度的检测结果。该算法被设计成可以在任何数字图像上都无需参数调节。它可以自己控制误检的数量:平均而言,每张图有一个误检。
有几篇比较好的博客是针对此算法的讲解,推荐如下:
[1]http://blog.csdn.net/tianwaifeimao/article/details/17678669#comments
[2]http://blog.csdn.net/carson2005/article/details/9326847
[3]http://blog.csdn.net/polly_yang/article/details/10085401
http://blog.csdn.net/u011630458/article/details/54645107
(1)orignal代码: 作者将自己的论文(LSD: a Line Segment Detector,2012)及代码( c++)放到自己的主页上:
http://www.ipol.im/pub/art/2012/gjmr-lsd/
(2)利用OpenCV和MATLAB进行封装: http://blog.csdn.net/subtang/article/details/39552535
代码:https://github.com/primetang/LSD-OpenCV-MATLAB
[2]LBD: line binary descriptor 线二进制描述符
[1] original code:http://www.mip.informatik.uni-kiel.de/tiki-index.php?page=Lilian+Zhang
[2]Update code:https://github.com/mtamburrano/LBD_Descriptor
如果安装[1] original code,Note that: The code is based on two open source libraries:BIAS and ARPACK( Besides, the SuperLU library is required by ARPACK). Before compiling the line matching code, you must configure the BIAS and ARPACK on your computer correctly. The code is tested by using BIAS version 2.8.0 and ARPACK++( SuperLU Version 2.0 is used for ARPACK).
【车道线检测与寻迹】LSD、LBD快速直线检测相关推荐
- LSD快速直线检测的原理概要及OpenCV代码实现(CV类LineSegmentDetector)
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 LSD快速直线检测算法是由Rafael Grom ...
- LSD:一种直线检测算法
申明:本文为转载,原文地址为:http://blog.csdn.net/carson2005/article/details/9326847点击打开链接 LSD是一种直线检测分割算法,它能在线性的时间 ...
- LSD:一种直线检测算法简介
申明:本文是笔者在阅读了相应的英文文献后,翻译整理所得,原文为:Rafael Grompone von Gioi, LSD: a Line Segment Detector LSD是一种直线检测分割算 ...
- java+对图像进行直线检测_Java调用OpenCV进行Hough变换直线检测
private BitmapHoughTransFormLine(Bitmap bmp) { Mat rgbMat = new Mat(); //存储原图像的矩阵 Mat grayMat = new ...
- 3.1.1 车道线检测
更多内容,请关注: github:Autopilot-Updating-Notes gitee: Autopilot-Updating-Notes 车道线检测是一种环境感知应用,其目的是通过车载相机或 ...
- 用于自动驾驶的实时车道线检测和智能告警
点击上方"小白学视觉",选择加"星标"或"置顶"重磅干货,第一时间送达 本文转自:计算机视觉life 导读 车道线检测 + 距离告警 + 转 ...
- 实时车道线检测和智能告警 | 车距 + 弯道 + 车道线
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:Priya Dwivedi 编译:ronghuaiyang (AI公园) 导读 车道线检测 + ...
- Lanenet 车道线检测网络模型学习(论文解读+官方模型)
本文讲解的是用于车道线检测的一个网络结构叫lanenet, 转载请备注,多谢哈|! 2018.2发表出来的,文章下载地址:https://arxiv.org/abs/1802.05591 github ...
- 【自动驾驶】杜明芳:基于多尺度IPM图的车道线检测实现
摘要:针对无人车自然道路图像检测时遇到的实时性和精度相互制约矛盾,借鉴自校正自适应控制系统理论的思想,提出一种自校正闭环道路视觉检测器架构,并提出一种新型检测器实现算法--基于多尺度IPM图((Inv ...
最新文章
- python学习day24 继承 派生
- python isdigit()
- python2.7调用mysql存储过程并且返回结果
- Ubuntu 16.04安装SQLite Browser操作SQLite数据库
- 手把手教你做数据产品经理
- 如何用python爬取公众号文章搜狗微信搜索_python抓取搜狗微信公众号文章
- php 添加失败是什么原因,安装zblog提示“创建c_option.php失败”的原因和解决办法...
- Google浏览器 — 取出图片颜色值
- TEncCu::xCheckRDCostMerge2Nx2N
- 黄永成-thinkphp讲解-个人博客讲解25集
- 随机效应估算与固定效应估算_混合OLS模型、固定效应模型、随机效应模型的区别是什么...
- 《社会智能与综合集成系统》—第1章1.6节 智慧涌现
- windows10关闭java自动更新
- 新办的卡为什么显示无服务器,为什么插入卡后显示无服务,有时有有时又没有?...
- { 周赛 }又被虐爆了
- Adobe 系列软件中英文版本的切换
- Electron主进程和渲染进程之间通信
- 为什么懂得很多道理,却依然过不好这一生
- 数字油画 matlab,数字油画制作中的k均值聚算法
- css宋体代码_css字体样式