[][src]Trait opencv::imgproc::LineSegmentDetector

pub trait LineSegmentDetector: AlgorithmTrait {
    fn as_raw_LineSegmentDetector(&self) -> *mut c_void;

    fn detect(
        &mut self,
        _image: &dyn ToInputArray,
        _lines: &mut dyn ToOutputArray,
        width: &mut dyn ToOutputArray,
        prec: &mut dyn ToOutputArray,
        nfa: &mut dyn ToOutputArray
    ) -> Result<()> { ... }
fn draw_segments(
        &mut self,
        _image: &mut dyn ToInputOutputArray,
        lines: &dyn ToInputArray
    ) -> Result<()> { ... }
fn compare_segments(
        &mut self,
        size: Size,
        lines1: &dyn ToInputArray,
        lines2: &dyn ToInputArray,
        _image: &mut dyn ToInputOutputArray
    ) -> Result<i32> { ... } }

Line segment detector class

following the algorithm described at Rafael12 .

Note: Implementation has been removed due original code license conflict

Required methods

Loading content...

Provided methods

fn detect(
    &mut self,
    _image: &dyn ToInputArray,
    _lines: &mut dyn ToOutputArray,
    width: &mut dyn ToOutputArray,
    prec: &mut dyn ToOutputArray,
    nfa: &mut dyn ToOutputArray
) -> Result<()>

Finds lines in the input image.

This is the output of the default parameters of the algorithm on the above shown image.

image

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.

C++ default parameters

  • width: noArray()
  • prec: noArray()
  • nfa: noArray()

fn draw_segments(
    &mut self,
    _image: &mut dyn ToInputOutputArray,
    lines: &dyn ToInputArray
) -> Result<()>

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.

fn compare_segments(
    &mut self,
    size: Size,
    lines1: &dyn ToInputArray,
    lines2: &dyn ToInputArray,
    _image: &mut dyn ToInputOutputArray
) -> Result<i32>

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.

C++ default parameters

  • _image: noArray()
Loading content...

Implementors

Loading content...