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快速直线检测相关推荐

  1. LSD快速直线检测的原理概要及OpenCV代码实现(CV类LineSegmentDetector)

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 LSD快速直线检测算法是由Rafael Grom ...

  2. LSD:一种直线检测算法

    申明:本文为转载,原文地址为:http://blog.csdn.net/carson2005/article/details/9326847点击打开链接 LSD是一种直线检测分割算法,它能在线性的时间 ...

  3. LSD:一种直线检测算法简介

    申明:本文是笔者在阅读了相应的英文文献后,翻译整理所得,原文为:Rafael Grompone von Gioi, LSD: a Line Segment Detector LSD是一种直线检测分割算 ...

  4. java+对图像进行直线检测_Java调用OpenCV进行Hough变换直线检测

    private BitmapHoughTransFormLine(Bitmap bmp) { Mat rgbMat = new Mat();  //存储原图像的矩阵 Mat grayMat = new ...

  5. 3.1.1 车道线检测

    更多内容,请关注: github:Autopilot-Updating-Notes gitee: Autopilot-Updating-Notes 车道线检测是一种环境感知应用,其目的是通过车载相机或 ...

  6. 用于自动驾驶的实时车道线检测和智能告警

    点击上方"小白学视觉",选择加"星标"或"置顶"重磅干货,第一时间送达 本文转自:计算机视觉life 导读 车道线检测 + 距离告警 + 转 ...

  7. 实时车道线检测和智能告警 | 车距 + 弯道 + 车道线

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:Priya Dwivedi 编译:ronghuaiyang  (AI公园) 导读 车道线检测 + ...

  8. Lanenet 车道线检测网络模型学习(论文解读+官方模型)

    本文讲解的是用于车道线检测的一个网络结构叫lanenet, 转载请备注,多谢哈|! 2018.2发表出来的,文章下载地址:https://arxiv.org/abs/1802.05591 github ...

  9. 【自动驾驶】杜明芳:基于多尺度IPM图的车道线检测实现

    摘要:针对无人车自然道路图像检测时遇到的实时性和精度相互制约矛盾,借鉴自校正自适应控制系统理论的思想,提出一种自校正闭环道路视觉检测器架构,并提出一种新型检测器实现算法--基于多尺度IPM图((Inv ...

最新文章

  1. python学习day24 继承 派生
  2. python isdigit()
  3. python2.7调用mysql存储过程并且返回结果
  4. Ubuntu 16.04安装SQLite Browser操作SQLite数据库
  5. 手把手教你做数据产品经理
  6. 如何用python爬取公众号文章搜狗微信搜索_python抓取搜狗微信公众号文章
  7. php 添加失败是什么原因,安装zblog提示“创建c_option.php失败”的原因和解决办法...
  8. Google浏览器 — 取出图片颜色值
  9. TEncCu::xCheckRDCostMerge2Nx2N
  10. 黄永成-thinkphp讲解-个人博客讲解25集
  11. 随机效应估算与固定效应估算_混合OLS模型、固定效应模型、随机效应模型的区别是什么...
  12. 《社会智能与综合集成系统》—第1章1.6节 智慧涌现
  13. windows10关闭java自动更新
  14. 新办的卡为什么显示无服务器,为什么插入卡后显示无服务,有时有有时又没有?...
  15. {  周赛  }又被虐爆了
  16. Adobe 系列软件中英文版本的切换
  17. Electron主进程和渲染进程之间通信
  18. 为什么懂得很多道理,却依然过不好这一生
  19. 数字油画 matlab,数字油画制作中的k均值聚算法
  20. css宋体代码_css字体样式

热门文章

  1. 史上最清晰的红黑树讲解(上)
  2. 用声音在一起,听荔枝CTO丁宁聊UGC声音互动平台的技术世界
  3. Kaggle 入门级题目titanic数据分析(EDA)尝试
  4. 764、最大加号标志
  5. 初级日语|日语格助词有几个?“格”是什么意思?
  6. 三星Note3使用技巧之S搜索功能如何使用
  7. 谈谈对金山手机毒霸事件的看法
  8. web框架技术_struts2的拦截器
  9. 通过axios实现vuecli与服务器端的数据交互
  10. KBL406-ASEMI电脑适配器等高品质产品桥堆