ReadFramework
lsd::LSDDetector Class Reference

#include <LSDDetector.h>

Inheritance diagram for lsd::LSDDetector:
Collaboration diagram for lsd::LSDDetector:

Public Member Functions

 LSDDetector ()
 
void detect (const cv::Mat &image, CV_OUT std::vector< KeyLine > &keypoints, int scale, int numOctaves, const cv::Mat &mask=cv::Mat())
 Detect lines inside an image. More...
 
void detect (const std::vector< cv::Mat > &images, std::vector< std::vector< KeyLine > > &keylines, int scale, int numOctaves, const std::vector< cv::Mat > &masks=std::vector< cv::Mat >()) const
 

Static Public Member Functions

static cv::Ptr< LSDDetectorcreateLSDDetector ()
 Creates ad LSDDetector object, using smart pointers. More...
 

Detailed Description

Lines extraction methodology

The lines extraction methodology described in the following is mainly based on [EDL] . The extraction starts with a Gaussian pyramid generated from an original image, downsampled N-1 times, blurred N times, to obtain N layers (one for each octave), with layer 0 corresponding to input image. Then, from each layer (octave) in the pyramid, lines are extracted using LSD algorithm.

Differently from EDLine lines extractor used in original article, LSD furnishes information only about lines extremes; thus, additional information regarding slope and equation of line are computed via analytic methods. The number of pixels is obtained using LineIterator. Extracted lines are returned in the form of KeyLine objects, but since extraction is based on a method different from the one used in BinaryDescriptor class, data associated to a line's extremes in original image and in octave it was extracted from, coincide. KeyLine's field class_id is used as an index to indicate the order of extraction of a line inside a single octave.


The documentation for this class was generated from the following files: