Line Segment Detector
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
cv.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 cv.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.
References
[EDL]:
R Grompone Von Gioi, Jeremie Jakubowicz, Jean-Michel Morel, and
Gregory Randall. "LSD: A fast line segment detector with a false
detection control. IEEE Transactions on Pattern Analysis and Machine
Intelligence, 32(4):722-732, 2010.