LSD - Line Segment Detector
===========================
Version 1.5 - December 3, 2010
by Rafael Grompone von Gioi <grompone@gmail.com>
Introduction
------------
LSD is an implementation of the Line Segment Detector on digital
images described in the paper:
"LSD: A Fast Line Segment Detector with a False Detection Control"
by Rafael Grompone von Gioi, Jeremie Jakubowicz, Jean-Michel Morel,
and Gregory Randall, IEEE Transactions on Pattern Analysis and
Machine Intelligence, vol. 32, no. 4, pp. 722-732, April, 2010.
and in more details in the CMLA Technical Report:
"LSD: A Line Segment Detector, Technical Report",
by Rafael Grompone von Gioi, Jeremie Jakubowicz, Jean-Michel Morel,
Gregory Randall, CMLA, ENS Cachan, 2010.
The version implemented here includes some further improvements
described on the LSD page at www.ipol.im. That same page includes more
information, including this code and an online demo version:
http://www.ipol.im/pub/algo/gjmr_line_segment_detector
Files
-----
README.txt - This file.
COPYING - GNU AFFERO GENERAL PUBLIC LICENSE Version 3.
Makefile - Compilation instructions for 'make'.
lsd.c - LSD module ANSI C code.
lsd.h - LSD module ANSI C header.
lsd_cmd.c - LSD command line interface, ANSI C code.
lsd_call_example.c - Minimal example of calling LSD from a C language program.
chairs.pgm - Test image in PGM format.
chairs.lsd.txt - Expected result for 'chairs.pgm' image as an ASCII file.
chairs.lsd.eps - Expected result for 'chairs.pgm' image as an EPS file.
doc - Html code documentation.
doxygen.config - doxygen configuration file for documentation generation.
Compiling
---------
LSD is an ANSI C Language program and can be used as a module
to be called from a C language program or as an independent
command.
In the distribution is included a Makefile file with instructions
to build the command lines program 'lsd', as well as minimal
example program on how to call LSD from C code.
To build both programs, a C compiler (called with 'cc') must be
installed on your system, as well as the program 'make'.
LSD only uses the standard C library so it should compile
in any ANSI C Language environment. In particular, it should
compile in an Unix like system.
The compiling instruction is just
make
from the directory where the source codes and the Makefile are located.
To verify a correct compilation you can apply LSD to the test
image 'chairs.pgm' and compare the result to the provided ones.
An explicit example of how to compile a program using LSD as a module
is provided. The compilation line for 'lsd_call_example.c' is just
cc -lm -o lsd_call_example lsd_call_example.c lsd.c
Running LSD Command
-------------------
The simplest LSD command execution is just
lsd
or
./lsd
if the command is not in the path. That should print LSD version
and the command line interface, including the available options.
The only input image format handled by LSD is PGM, in its two
versions, ASCII and Binary. A useful execution would be:
lsd chairs.pgm chairs.result.txt
That should give the result as an ASCII file 'chairs.result.txt'
with the coordinates each line segment detected as a line in
the file like the following:
159.232890 134.369601 160.325338 105.613616 2.735466
which means that a line segment starting at point (159.232890,134.369601)
and ending at point (160.325338 105.613616) and of width 2.735466
was detected. The unit is the pixel and the origin of coordinates
is the center of pixel (0,0).
For easier visualization of the result, the LSD command can also
give the output in EPS or SVG file formats. For example,
lsd -P chairs.result.eps chairs.pgm chairs.result.txt
will, in addition to the ASCII output file, produce the EPS file
'chairs.result.eps'.
To see the full options, execute LSD command without parameters,
as in './lsd'.
Optional arguments should always appear before the needed arguments
input and output. For example, the following line is wrong:
lsd chairs.pgm -s 0.5 chairs.result.txt -> WRONG!!
and should be
lsd -s 0.5 chairs.pgm chairs.result.txt
If the name of an input file is just - (one dash), then that
file will be read from the standard input. Analogously, if the
name of an output file is just - (one dash), then that file
will be written to the standard output. For example,
lsd - -
will work as a filter, taking the input from standard input and
giving the output to standard output.
Code Documentation
------------------
There is a HTML documentation of the code on the directory 'doc'. The
entry point is the file 'doc/index.html' that should be opened with a
web browser. The documentation was automatically generated from the
source code files using the Doxygen documentation system, see
http://www.stack.nl/~dimitri/doxygen/.
Copyright and License
---------------------
Copyright 2007-2010 rafael grompone von gioi (grompone@gmail.com)
LSD is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
LSD is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Thanks
------
I would be grateful to receive any comment, especially about errors,
bugs, or strange results.
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
SLAM-基于线特征的RGBD-SLAM算法实现-支持与点特征融合-优质项目实战.zip (503个子文件)
libsiftgpu.a 786KB
liblevmar.a 397KB
libANN.a 102KB
libEDLines.a 86KB
libEDLines-32bit.a 71KB
evaluation-box.bat 109B
demo2.bat 48B
demo1.bat 44B
demo3.bat 44B
bin 23KB
lsd.c 71KB
lsd.c 71KB
lmbc_core.c 41KB
lsd_cmd.c 36KB
lsd_cmd.c 36KB
Axb_core.c 36KB
lmdemo.c 31KB
lm_core.c 31KB
misc_core.c 24KB
lmlec_core.c 24KB
levmar.c 23KB
lmbleic_core.c 20KB
lmblec_core.c 17KB
expfit.c 4KB
lmblec.c 3KB
lmbleic.c 3KB
lmbc.c 3KB
lm.c 2KB
lmlec.c 2KB
Axb.c 2KB
misc.c 2KB
lsd_call_example.c 768B
lsd_call_example.c 768B
FindG2O.cmake 3KB
log_eval.conf 450B
log.conf 415B
doxygen.config 43KB
COPYING 34KB
COPYING 26KB
ProgramCG.cpp 93KB
utils.cpp 92KB
node.cpp 86KB
ProgramGLSL.cpp 84KB
five_point.cpp 78KB
lsd.cpp 71KB
PyramidGL.cpp 69KB
ProgramCL.cpp 63KB
graph_manager.cpp 63KB
ann_test.cpp 61KB
openni_listener.cpp 53KB
misc.cpp 52KB
glviewer.cpp 51KB
qt_gui.cpp 50KB
graph_mgr_io.cpp 47KB
aorb.cpp 42KB
SiftGPU.cpp 38KB
motion.cpp 37KB
GLTexImage.cpp 35KB
PyramidCU.cpp 30KB
PyramidCL.cpp 30KB
parameter_server.cpp 29KB
ServerSiftGPU.cpp 24KB
essential_mat.cpp 24KB
rand.cpp 22KB
.cpp 22KB
ann2fig.cpp 21KB
SiftMatch.cpp 21KB
lineslam.cpp 21KB
transformation_estimation.cpp 19KB
kd_split.cpp 16KB
kd_dump.cpp 16KB
GlobalUtil.cpp 16KB
bd_tree.cpp 16KB
kd_tree.cpp 15KB
kd_util.cpp 15KB
gicp.cpp 13KB
SimpleSIFT.cpp 12KB
feature_adjuster.cpp 12KB
landmark.cpp 11KB
bfgs_funcs.cpp 11KB
main.cpp 11KB
SiftPyramid.cpp 11KB
edge_se3_lineendpts.cpp 10KB
ColorOctomapServer.cpp 10KB
transform.cpp 9KB
features.cpp 9KB
optimize.cpp 9KB
kd_pr_search.cpp 9KB
main.cpp 9KB
kd_search.cpp 8KB
sift_gpu_wrapper.cpp 8KB
loop_closing.cpp 8KB
MultiThreadSIFT.cpp 8KB
ShaderMan.cpp 7KB
kd_fix_rad_search.cpp 7KB
main (copy).cpp 7KB
GLTestWnd.cpp 7KB
bagloader.cpp 7KB
CLTexImage.cpp 7KB
ann_sample.cpp 7KB
共 503 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
极智视界
- 粉丝: 2w+
- 资源: 1330
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功