Package org.opencv.imgproc
Class LineSegmentDetector
- java.lang.Object
-
- org.opencv.core.Algorithm
-
- org.opencv.imgproc.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.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
LineSegmentDetector(long addr)
-
Method Summary
All Methods Static Methods Instance Methods Concrete 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
-
-
-
-
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->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->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->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->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
-
-