## Class LineSegmentDetector

• public class LineSegmentDetector
extends Algorithm
Line segment detector class following the algorithm described at CITE: 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](https://github.com/rafael-grompone-von-gioi/binomial_nfa) code published under the MIT license.

• ### Fields inherited from class org.opencv.core.Algorithm

nativeObj
• ### Constructor Summary

Constructors
Modifier Constructor Description
protected  LineSegmentDetector​(long addr)
• ### Method Summary

All Methods
Modifier and Type Method Description
static LineSegmentDetector __fromPtr__​(long addr)
int compareSegments​(Size size, Mat lines1, Mat lines2)
Draws two groups of lines in blue and red, counting the non overlapping (mismatching) pixels.
int compareSegments​(Size size, Mat lines1, Mat lines2, Mat image)
Draws two groups of lines in blue and red, counting the non overlapping (mismatching) pixels.
void detect​(Mat image, Mat lines)
Finds lines in the input image.
void detect​(Mat image, Mat lines, Mat width)
Finds lines in the input image.
void detect​(Mat image, Mat lines, Mat width, Mat prec)
Finds lines in the input image.
void detect​(Mat image, Mat lines, Mat width, Mat prec, Mat nfa)
Finds lines in the input image.
void drawSegments​(Mat image, Mat lines)
Draws the line segments on a given image.
protected void finalize()
• ### Methods inherited from class org.opencv.core.Algorithm

clear, empty, getDefaultName, getNativeObjAddr, save
• ### Methods inherited from class java.lang.Object

clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
• ### Constructor Detail

• #### LineSegmentDetector

protected LineSegmentDetector​(long addr)
• ### Method Detail

• #### __fromPtr__

public static LineSegmentDetector __fromPtr__​(long addr)
• #### detect

public void detect​(Mat image,
Mat lines,
Mat width,
Mat prec,
Mat nfa)
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)
Parameters:
image - A grayscale (CV_8UC1) input image. If only a roi needs to be selected, use: lsd_ptr-&gt;detect(image(roi), lines, ...); lines += Scalar(roi.x, roi.y, roi.x, roi.y);
lines - 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 - Vector of widths of the regions, where the lines are found. E.g. Width of line.
prec - Vector of precisions with which the lines are found.
nfa - 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.
• #### detect

public void detect​(Mat image,
Mat lines,
Mat width,
Mat prec)
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)
Parameters:
image - A grayscale (CV_8UC1) input image. If only a roi needs to be selected, use: lsd_ptr-&gt;detect(image(roi), lines, ...); lines += Scalar(roi.x, roi.y, roi.x, roi.y);
lines - 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 - Vector of widths of the regions, where the lines are found. E.g. Width of line.
prec - Vector of precisions with which the lines are found. 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.
• #### detect

public void detect​(Mat image,
Mat lines,
Mat width)
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)
Parameters:
image - A grayscale (CV_8UC1) input image. If only a roi needs to be selected, use: lsd_ptr-&gt;detect(image(roi), lines, ...); lines += Scalar(roi.x, roi.y, roi.x, roi.y);
lines - 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 - Vector of widths of the regions, where the lines are found. E.g. Width of line. 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.
• #### detect

public void detect​(Mat image,
Mat lines)
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)
Parameters:
image - A grayscale (CV_8UC1) input image. If only a roi needs to be selected, use: lsd_ptr-&gt;detect(image(roi), lines, ...); lines += Scalar(roi.x, roi.y, roi.x, roi.y);
lines - 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. 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

public void drawSegments​(Mat image,
Mat lines)
Draws the line segments on a given image.
Parameters:
image - 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

public int compareSegments​(Size size,
Mat lines1,
Mat lines2,
Mat image)
Draws two groups of lines in blue and red, counting the non overlapping (mismatching) pixels.
Parameters:
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 - 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:
automatically generated
• #### compareSegments

public int compareSegments​(Size size,
Mat lines1,
Mat lines2)
Draws two groups of lines in blue and red, counting the non overlapping (mismatching) pixels.
Parameters:
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. in order for lines1 and lines2 to be drawn in the above mentioned colors.
Returns:
automatically generated
• #### finalize

protected void finalize()
throws java.lang.Throwable
Overrides:
finalize in class Algorithm
Throws:
java.lang.Throwable