LineSegmentDetector
import { LineSegmentDetector } from '@banou/opencv-wasm'Use after await initOpenCV(). See the initialization and named imports guide.
Native object: release it with using or delete(). Factories can return null; check before calling methods. Inherits Algorithm.
imgproc_hist
example: samples/cpp/snippets/lsd_lines.cpp An example using the LineSegmentDetector \image html building_lsd.png "Sample output image" width=434 height=300 Line segment detector class
following the algorithm described at [Rafael12] .
Note: Implementation has been removed from OpenCV version 3.4.6 to 3.4.15 and version 4.1.0 to 4.5.3 due original code license conflict. restored again after Computation of a NFA code published under the MIT license.
Constructors and members
clone
Create another handle to the same native object. This retains the object without copying its pixels or algorithm state; dispose both handles separately.
clone(): this;The this result.
detect
Finds lines in the input image.
This is the output of the default parameters of the algorithm on the above shown image.

detect(image: Mat, lines: Mat, width: Mat, prec: Mat, nfa: Mat): void;4 available overloads
detect(image: Mat, lines: Mat): void;detect(image: Mat, lines: Mat, width: Mat): void;detect(image: Mat, lines: Mat, width: Mat, prec: Mat): void;detect(image: Mat, lines: Mat, width: Mat, prec: Mat, nfa: Mat): void;imageA grayscale (CV_8UC1) input image. If only a roi needs to be selected, use:
lsd_ptr-\>detect(image(roi), lines, ...); lines += Scalar(roi.x, roi.y, roi.x, roi.y);linesOutput destination, filled by the native operation. A vector of Vec4f elements specifying the beginning and ending point of a line. Where Vec4f is (x1, y1, x2, y2), point 1 is the start, point 2 - end. Returned lines are strictly oriented depending on the gradient.
widthOutput destination, filled by the native operation. Vector of widths of the regions, where the lines are found. E.g. Width of line.
precOutput destination, filled by the native operation. Vector of precisions with which the lines are found.
nfaOutput destination, filled by the native operation. Vector containing number of false alarms in the line region, with precision of 10%. The bigger the value, logarithmically better the detection.
- -1 corresponds to 10 mean false alarms
- 0 corresponds to 1 mean false alarm
- 1 corresponds to 0.1 mean false alarms This vector will be calculated only when the objects type is #LSD_REFINE_ADV.
drawSegments
Draws the line segments on a given image.
drawSegments(image: Mat, lines: Mat): void;imageInput/output value, modified by the native operation. The image, where the lines will be drawn. Should be bigger or equal to the image, where the lines were found.
linesA vector of the lines that needed to be drawn.
compareSegments
Draws two groups of lines in blue and red, counting the non overlapping (mismatching) pixels.
compareSegments(size: Size, lines1: Mat, lines2: Mat, image: Mat): number;2 available overloads
compareSegments(size: Size, lines1: Mat, lines2: Mat): number;compareSegments(size: Size, lines1: Mat, lines2: Mat, image: Mat): number;sizeThe size of the image, where lines1 and lines2 were found.
lines1The first group of lines that needs to be drawn. It is visualized in blue color.
lines2The second group of lines. They visualized in red color.
imageInput/output value, modified by the native operation. Optional image, where the lines will be drawn. The image should be color(3-channel) in order for lines1 and lines2 to be drawn in the above mentioned colors.
The number result.
These signatures describe this package. Upstream documentation can mention optional backends that are absent from this build. Check runtime compatibility before choosing a backend or file format.