Class LineSegmentDetector


  • public class LineSegmentDetector
    extends Algorithm
    Line segment detector class following the algorithm described at CITE: Rafael12 . Note: Implementation has been removed due original code license conflict
    • Constructor Detail

      • LineSegmentDetector

        protected LineSegmentDetector​(long addr)
    • Method Detail

      • 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
      • 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 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 - 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 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 - 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 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 - 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 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. 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.
      • finalize

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