Skip to content

LineSegmentDetector

Image processingclassOpenCV 5.0.0
import { LineSegmentDetector } from '@banou/opencv-wasm'

Use after await initOpenCV(). See the initialization and named imports guide.

ARGUMENTSConstructor or factory
CLASSLineSegmentDetector
RETURN TYPEOwned native handle
Call structure. A void return can still write to destination arguments. The parameter descriptions define inputs, outputs and ownership.

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;
Returns

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.

![image](pics/building_lsd.png)
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;
image

A 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);

lines

Output 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.

width

Output destination, filled by the native operation. Vector of widths of the regions, where the lines are found. E.g. Width of line.

prec

Output destination, filled by the native operation. Vector of precisions with which the lines are found.

nfa

Output 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;
image

Input/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.

lines

A 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;
size

The size of the image, where lines1 and lines2 were found.

lines1

The first group of lines that needs to be drawn. It is visualized in blue color.

lines2

The second group of lines. They visualized in red color.

image

Input/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.

Returns

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.