LineSegmentDetector

Objective-C

@interface LineSegmentDetector : Algorithm

Swift

class LineSegmentDetector : Algorithm

Line segment detector class

following the algorithm described at CITE: Rafael12 .

Note

Implementation has been removed due original code license conflict

Member of Imgproc

Methods

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

    Declaration

    Objective-C

    - (int)compareSegments:(nonnull Size2i *)size
                    lines1:(nonnull Mat *)lines1
                    lines2:(nonnull Mat *)lines2
                    _image:(nonnull Mat *)_image;

    Swift

    func compareSegments(size: Size2i, lines1: Mat, lines2: Mat, _image: Mat) -> Int32

    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.

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

    Declaration

    Objective-C

    - (int)compareSegments:(nonnull Size2i *)size
                    lines1:(nonnull Mat *)lines1
                    lines2:(nonnull Mat *)lines2;

    Swift

    func compareSegments(size: Size2i, lines1: Mat, lines2: Mat) -> Int32

    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.

  • 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)
    

    Declaration

    Objective-C

    - (void)detect:(nonnull Mat *)_image
            _lines:(nonnull Mat *)_lines
             width:(nonnull Mat *)width
              prec:(nonnull Mat *)prec
               nfa:(nonnull Mat *)nfa;

    Swift

    func detect(_image: Mat, _lines: Mat, width: Mat, prec: Mat, nfa: Mat)

    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.

  • 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)
    

    Declaration

    Objective-C

    - (void)detect:(nonnull Mat *)_image
            _lines:(nonnull Mat *)_lines
             width:(nonnull Mat *)width
              prec:(nonnull Mat *)prec;

    Swift

    func detect(_image: Mat, _lines: Mat, width: Mat, prec: Mat)

    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.

  • 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)
    

    Declaration

    Objective-C

    - (void)detect:(nonnull Mat *)_image
            _lines:(nonnull Mat *)_lines
             width:(nonnull Mat *)width;

    Swift

    func detect(_image: Mat, _lines: Mat, width: Mat)

    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.

  • 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)
    

    Declaration

    Objective-C

    - (void)detect:(nonnull Mat *)_image _lines:(nonnull Mat *)_lines;

    Swift

    func detect(_image: Mat, _lines: Mat)

    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.

  • Draws the line segments on a given image.

    Declaration

    Objective-C

    - (void)drawSegments:(nonnull Mat *)_image lines:(nonnull Mat *)lines;

    Swift

    func drawSegments(_image: Mat, lines: Mat)

    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.