Table of Contents

Class LineSegmentDetector

Namespace
OpenCvSharp
Assembly
OpenCvSharp.dll

Line segment detector class

public class LineSegmentDetector : Algorithm, IDisposable, ICvPtrHolder
Inheritance
LineSegmentDetector
Implements
Inherited Members

Constructors

LineSegmentDetector(nint)

protected LineSegmentDetector(nint p)

Parameters

p nint

Methods

CompareSegments(Size, InputArray, InputArray, InputOutputArray?)

Draws two groups of lines in blue and red, counting the non overlapping (mismatching) pixels.

public virtual int CompareSegments(Size size, InputArray lines1, InputArray lines2, InputOutputArray? image = null)

Parameters

size Size

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

lines1 InputArray

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

lines2 InputArray

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

image InputOutputArray

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

int

Create(LineSegmentDetectorModes, double, double, double, double, double, double, int)

Creates a smart pointer to a LineSegmentDetector object and initializes it.

public static LineSegmentDetector Create(LineSegmentDetectorModes refine = LineSegmentDetectorModes.RefineNone, double scale = 0.8, double sigmaScale = 0.6, double quant = 2, double angTh = 22.5, double logEps = 0, double densityTh = 0.7, int nBins = 1024)

Parameters

refine LineSegmentDetectorModes

The way found lines will be refined, see cv::LineSegmentDetectorModes

scale double

The scale of the image that will be used to find the lines. Range (0..1].

sigmaScale double

Sigma for Gaussian filter. It is computed as sigma = _sigma_scale/_scale.

quant double

Bound to the quantization error on the gradient norm.

angTh double

Gradient angle tolerance in degrees.

logEps double

Detection threshold: -log10(NFA) > log_eps. Used only when advancent refinement is chosen.

densityTh double

Minimal density of aligned region points in the enclosing rectangle.

nBins int

Number of bins in pseudo-ordering of gradient modulus.

Returns

LineSegmentDetector

Detect(InputArray, OutputArray, OutputArray?, OutputArray?, OutputArray?)

Finds lines in the input image. This is the output of the default parameters of the algorithm on the above shown image.

public virtual void Detect(InputArray image, OutputArray lines, OutputArray? width = null, OutputArray? prec = null, OutputArray? nfa = null)

Parameters

image InputArray

A grayscale (CV_8UC1) input image.

lines OutputArray

A vector of Vec4i or Vec4f elements specifying the beginning and ending point of a line. Where Vec4i/Vec4f is (x1, y1, x2, y2), point 1 is the start, point 2 - end. Returned lines are strictly oriented depending on the gradient.

width OutputArray

Vector of widths of the regions, where the lines are found. E.g. Width of line.

prec OutputArray

Vector of precisions with which the lines are found.

nfa OutputArray

Vector containing number of false alarms in the line region, with precision of 10%. The bigger the value, logarithmically better the detection.

Detect(InputArray, out Vec4f[], out double[], out double[], out double[])

Finds lines in the input image. This is the output of the default parameters of the algorithm on the above shown image.

public virtual void Detect(InputArray image, out Vec4f[] lines, out double[] width, out double[] prec, out double[] nfa)

Parameters

image InputArray

A grayscale (CV_8UC1) input image.

lines Vec4f[]

A vector of Vec4i or Vec4f elements specifying the beginning and ending point of a line. Where Vec4i/Vec4f is (x1, y1, x2, y2), point 1 is the start, point 2 - end. Returned lines are strictly oriented depending on the gradient.

width double[]

Vector of widths of the regions, where the lines are found. E.g. Width of line.

prec double[]

Vector of precisions with which the lines are found.

nfa double[]

Vector containing number of false alarms in the line region, with precision of 10%. The bigger the value, logarithmically better the detection.

DisposeManaged()

Releases managed resources

protected override void DisposeManaged()

DrawSegments(InputOutputArray, InputArray)

Draws the line segments on a given image.

public virtual void DrawSegments(InputOutputArray image, InputArray lines)

Parameters

image InputOutputArray

The image, where the liens will be drawn. Should be bigger or equal to the image, where the lines were found.

lines InputArray

A vector of the lines that needed to be drawn.