OpenCV3版本之后加入了LSD直线检测功能,相比Hough直线检测,LSD能够获得更加理想的效果,具体可以参考文献的主页,包括了文献、代码和演示效果。

http://www.ipol.im/pub/art/2012/gjmr-lsd/

LSD原理简单介绍

LSD是一种局部直线检测方法,速度较快,LSD算法通过对图像局部分析,得出直线的像素点集,再通过假设参数进行验证求解,将像素点集合与误差控制集合合并,进而自适应控制误检的数量 。一般来说,要检测图像中的直线,最基本的思想是检测图像中梯度变化较大的像素点集,LSD算法也正是利用梯度信息和行列线(level-line)来进行直线检测的。详细的LSD算法原理及步骤参考以下博文:

http://blog.csdn.net/lien0906/article/details/38417191
http://blog.csdn.net/tianwaifeimao/article/details/17678669

OpenCV-LSD直线检测

具体代码如下:

#include "opencv2/imgproc.hpp"
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp"
#include <iostream>using namespace std;
using namespace cv;int main()
{bool useRefine = true;bool useCanny = true;Mat image = imread("image_0.png", IMREAD_GRAYSCALE);if( image.empty() ){cout << "Unable to load Image" << endl;return 1;}imshow("Source Image", image);if (useCanny)Canny(image, image, 50, 200, 3); Ptr<LineSegmentDetector> ls = useRefine ? createLineSegmentDetector(LSD_REFINE_STD) : createLineSegmentDetector(LSD_REFINE_NONE);vector<Vec4f> lines_std;ls->detect(image, lines_std);// Show found linesif (useCanny)image = Scalar(0, 0, 255);ls->drawSegments(image, lines_std);imshow("result", image);waitKey();return 0;
}

文献作者也提供了源码,为了方便使用,结合OpenCV实现图像的LSD直线检测,具体代码可以从如下地址下载:

http://download.csdn.net/download/dangkie/10197261

下载后将头文件以及c和cpp文件添加到项目中,设置好图像的路径,可以直接边缘运行。

直线检测结果

Opencv学习——LSD直线检测相关推荐

  1. C# OpenCV EmguCV LSD直线检测使用Demo

    点击下方卡片,关注"OpenCV与AI深度学习"公众号! 视觉/图像重磅干货,第一时间送达! LSD直线检测原理大家可以自行百度查询,这里给出EmguCV4.5.4使用Demo如下 ...

  2. LSD直线检测和霍夫线变换的学习建议

    最近笔者学习霍夫线变换和LSD直线检测算法,有一些学习建议,希望可以给予大家一些帮助.  学习霍夫变换的感想 每个人理解的霍夫变换或许略有差异,但是最主要的是笛卡尔坐标系跟极坐标系的相互转换. 霍夫变 ...

  3. lsd程序matlab,LSD直线检测(opencv+matlab)

    [实例简介] LSD直线检测算法是检测结果比霍夫变换更好的算法,本工具箱支持opencv和matlab,使用起来非常简单方便 [实例截图] [核心代码] LSD-OpenCV-MATLAB └── L ...

  4. 用Python实现LSD直线检测

    LSD (Line Segment Detector) 是一种用于检测图像中直线段的算法. 要在 Python 中实现 LSD 直线检测,首先需要安装 OpenCV 库.OpenCV 是一个开源的计算 ...

  5. OpenCV霍夫直线检测的实例(附完整代码)

    OpenCV霍夫直线检测的实例 OpenCV霍夫直线检测的实例 OpenCV霍夫直线检测的实例 #include <opencv2/imgproc.hpp> #include <op ...

  6. python 检测直线 交点_Python+OpenCV图像处理——实现直线检测

    简介: 1.霍夫变换(Hough Transform) 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法.主要用来从图像中分离出具有某种相同特征的几何形状(如,直线 ...

  7. Python+OpenCV:Hough直线检测(Hough Line Transform)

    Python+OpenCV:Hough直线检测(Hough Line Transform) 理论 A line can be represented as  or in a parametric fo ...

  8. 【图像检测】基于matlab LSD直线检测【含Matlab源码 1697期】

    一.LSD直线提取算法简介 LSD算法由Grompone等2010年在结合Burns所提算法基础上提出,该算法结合图像梯度和方向信息提取直线,主要包括3部分. 1)生成直线支持区域:通过计算每个像素点 ...

  9. matlab lsd检测,LSD直线检测,matlab工具箱

    [实例简介] LSD直线检测工具箱,可以通过配置,直接调用,详细的配置信息参见reco_toolbox目录下的read me.txt [实例截图] [核心代码] reco_toolbox ├── li ...

  10. 基于线条特征的机场检测算法——LSD直线检测算法、平行线组提取和聚类

    遥感图像的机场检测是图像处理在军事以及航空领域一个重要的应用,现有一些机场提取方法利用显著性特征获取机场区域的方法容易使得机场提取不够完整,而且会混入过多的虚警区域,原因在于图像的显著性特征并能用来表 ...

最新文章

  1. UVA1455 - Kingdom(并查集 + 线段树)
  2. 04.Java 堆内存 新生代 老年代?
  3. fun python_Python(一)
  4. ASP.NET Web Api 实现数据的分页
  5. python笔记全_Python笔记
  6. 【QT 数据库专辑】【01】搭建本地MYSQL数据库 - 工具安装
  7. python爬虫框架
  8. fiddler 查看接口响应时间
  9. macos蓝牙驱动和wifi驱动名称_win7蓝牙装不上?别急着捣鼓驱动软件啦!可能是硬件问题!...
  10. 国产规则引擎urule,产品化方案的扛把子
  11. 软件人员kpi制定模板_最常用5大绩效工具(附模板):OKR、KPI、MBO、平衡计分卡、360度...
  12. 无心剑中译伊玛·拉扎罗斯《新巨人·自由女神》
  13. 《 黑白团团队》第一次作业:团队亮相
  14. 【NLP】句法分析一
  15. 用citespace对知网文献的关键词分析结果很少如何解决?
  16. java程序调用百度Geocoding API逆地址解析通过经纬度查询位置
  17. 计算机一级考试瓜果产量,全国计算机等级考试一级B考试(最新样题).doc
  18. 外卖返利系统/美团/饿了么外卖CPS联盟返利公众号小程序核心源码
  19. 群发微信图文消息,但是正文中的图片却不显示
  20. Failed to remove network i5unxjx3ahdfrhksw0fmyqpjd: Error response from daemon: network *

热门文章

  1. win10 修改用户名
  2. python opencv合并图片
  3. Swing绝对布局之setBounds
  4. 手机浏览器下载文件名乱码解决
  5. histogram loss笔记
  6. activiti画流程图、部署、启动、审批、驳回
  7. 宝宝泡药浴和直接吃药有什么区别吗?
  8. 论文解读(IGSD)《Iterative Graph Self-Distillation》
  9. 40.用创业思维复盘:写技术博客到出书
  10. Python课堂点名器,妈妈再也不会担心我被老师点名了