码迷,mamicode.com
首页 > 其他好文 > 详细

线特征LSD and 描述子LBD(一)

时间:2017-09-12 17:38:26      阅读:1115      评论:0      收藏:0      [点我收藏+]

标签:算法   控制   des   主页   log   sim   tor   lan   enc   

最近在看有关特征提取的线特征,暑期就看了相关的论文:《基于点线综合特征的双目视觉SLAM方法_谢晓佳》,最近呢,把里面有关线特征提取LSD和描述子LBD的代码跑了一遍,记录如下:

 

[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

针对orignal代码的运行过程:

编译   make

技术分享

(提供了一个使用LSD作为模块编译程序的显式示例。

The compilation line for ‘lsd_call_example.c‘ is just:   cc -o lsd_call_example lsd_call_example.c lsd.c -lm)

LSD唯一的输入图像格式是PGM,输出有两个版本,ASCII和二进制。

./lsd chairs.pgm chairs.result.txt   //这里输入的是chairs.pgm图像

将会给出结果关于一个ASCII文件 ‘chairs.result.txt‘ 其中每行对应一个检测到的线段。每行由七个数字用空格隔开,

分别是X1Y1X2Y2,宽度,P- log_nfa

例如,行:159.232890 134.369601 160.325338 105.613616 2.735466 0.125000 17.212465

意味着一个线段的起始点(159.232890  134.369601),结束点(160.325338 105.613616)和检测到宽度2.735466,角度精度p0.125,即p * 1800.125×18022.5度的梯度角公差。这个-log_10NFA= 17.212465,所以NFA的值为10 ^- 17.2124656),大约6e-18。长度单位是像素,坐标原点是左上角的像素中心(0,0)。

为了更容易地显示结果,也可以输出EPSSVG文件格式。例如,

./lsd -P chairs.result.eps chairs.pgm chairs.result.txt

ASCII输出文件外,还将生成EPS文件‘chairs.result.eps‘

技术分享

注意:可选参数应该总是出现在所需参数的输入和输出之前。例如,下面的行是错误的:lsd chairs.pgm -s 0.5 chairs.result.txt   -> WRONG!!

          正确的是  lsd -s 0.5 chairs.pgm chairs.result.txt

技术分享

 

 [2]LBD: line binary descriptor  线二进制描述符

[1] original code:http://www.mip.informatik.uni-kiel.de/tiki-index.php?page=Lilian+Zhang

[2]Update codehttps://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).

安装的是[2]Update code,运行过程:

mkdir build
cd build
cmake ..
make

最后出现了错误,原来是我的opencv的版本问题,解决:http://www.cnblogs.com/Jessica-jie/p/7509460.html

./TestLineMatchingAlgorithm 1.png 2.png

   技术分享

技术分享

 

 

线特征LSD and 描述子LBD(一)

标签:算法   控制   des   主页   log   sim   tor   lan   enc   

原文地址:http://www.cnblogs.com/Jessica-jie/p/7510931.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!