• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

primetang/LSD-OpenCV-MATLAB: Line Segment Detector for OpenCV, MATLAB, and Pytho ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

primetang/LSD-OpenCV-MATLAB

开源软件地址(OpenSource Url):

https://github.com/primetang/LSD-OpenCV-MATLAB

开源编程语言(OpenSource Language):

C++ 83.8%

开源软件介绍(OpenSource Introduction):

LSD-OpenCV-MATLAB

###Line Segment Detector for OpenCV and MATLAB

###1. Introduction LSD-OpenCV-MATLAB is toolbox of Line Segment Detector(LSD) for OpenCV and MATLAB, as part of the GSoC 2013 program. The original code and paper, developed by Rafael Grompone von Gioi, can be found at here.

###2. Compilation

LSD is written by C++. And it also can be easily used in many contexts through the MATLAB bindings provided with this toolbox.

If you want to test or contribute, CMAKE, a cross-platform, open-source build system, is usded to build some tools for the purpose. CMake can be downloaded from CMake' website.

The compilation rely on OpenCV - A cross-platform open source computer vision library.

During compilation, create a new directory named build in the main directory, then choose a appropriate compiler and switch to the build directory, finally, execute the following command according to your machine:

  • Windows
cmake -DCMAKE_BUILD_TYPE=Release .. -G"NMake Makefiles"
nmake
  • Linux
cmake ..
make

If successful, this should create two files named lsd.xxx and lsd_image.xxx in ./build/matlab/, where xxx is a suffix that depends on what machine you are on.

###3. Usage

  • C++/OpenCV

To test LSD algorithm with OpenCV, run ./build/lsd_opencv_example.exe after compilation.

/**
 * @file lsd_opencv_example.cpp
 *
 * Test the LSD algorithm with OpenCV
 */
#include <highgui.h>
#include <cv.h>
#include <lsd.h>

int main(int argc, char **argv)
{
    cv::Mat src = cv::imread("./../../images/test.jpg", CV_LOAD_IMAGE_COLOR);
    cv::Mat tmp, src_gray;
    cv::cvtColor(src, tmp, CV_RGB2GRAY);
    tmp.convertTo(src_gray, CV_64FC1);

    int cols  = src_gray.cols;
    int rows = src_gray.rows;

    image_double image = new_image_double(cols, rows);
    image->data = src_gray.ptr<double>(0);
    ntuple_list ntl = lsd(image);

    cv::Mat lsd = cv::Mat::zeros(rows, cols, CV_8UC1);
    cv::Point pt1, pt2;
    for (int j = 0; j != ntl->size ; ++j)
    {
        pt1.x = ntl->values[0 + j * ntl->dim];
        pt1.y = ntl->values[1 + j * ntl->dim];
        pt2.x = ntl->values[2 + j * ntl->dim];
        pt2.y = ntl->values[3 + j * ntl->dim];
        double width = ntl->values[4 + j * ntl->dim];
        cv::line(lsd, pt1, pt2, cv::Scalar(255), width, CV_AA);
    }
    free_ntuple_list(ntl);

    cv::namedWindow("src", CV_WINDOW_AUTOSIZE);
    cv::imshow("src", src);
    cv::namedWindow("lsd", CV_WINDOW_AUTOSIZE);
    cv::imshow("lsd", lsd);
    cv::waitKey(0);
    cv::destroyAllWindows();
}
  • Python

Please see pylsd for more details.

  • MATLAB

To test LSD algorithm with MATLAB, run ./matlab/x64(x86)/lsd_example.m and ./matlab/x64(x86)/lsd2_example.m, if your platform is x86, you should compile the corresponding xxx.mexw32 files by Cmake.

% lsd_example.m
% Test LSD algorithm with MATLAB
%% show the image.
im = imread('./images/test.jpg');
imshow(im);
%% get the start_points and end_points of each straight line use LSD.
% note: input parameter is the path of image, use '/' as file separator.
points = lsd('./images/test.jpg');
%% plot the lines.
hold on;
for i = 1:size(points, 2)
    plot(points(1:2, i), points(3:4, i), 'LineWidth', points(5, i) / 2, 'Color', [1, 0, 0]);
end
% lsd2_example.m
% Test LSD algorithm with MATLAB
%% show the image.
im = imread('./images/test.jpg');
imshow(im);
%% show the binary image after the process of LSD.
% note: input parameter is the path of image, use '/' as file separator.
figure;
imshow(lsd2('./images/test.jpg'));

####This is an example:

source

result




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
masumhabib/PlotPub: Publication quality plot in MATLAB.发布时间:2022-08-17
下一篇:
yandld/nav_matlab: 基于的matlab导航科学计算库发布时间:2022-08-17
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap