在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(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
cmake -DCMAKE_BUILD_TYPE=Release .. -G"NMake Makefiles"
nmake
cmake ..
make If successful, this should create two files named lsd.xxx and lsd_image.xxx in ###3. Usage
To test LSD algorithm with OpenCV, run /**
* @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();
}
Please see pylsd for more details.
To test LSD algorithm with MATLAB, run % 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: |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论