Module Opencv.Line_segment_detector

type t = unit Ctypes_static.ptr
val clear : Algorithm.t -> unit

Usage: clear __self

Clears the algorithm state

val empty : Algorithm.t -> bool

Usage: empty __self

Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read

val save : Algorithm.t -> string -> unit

Usage: save __self filename

Saves the algorithm to a file. In order to make this method work, the derived class must implement Algorithm::write(FileStorage& fs).

val get_default_name : Algorithm.t -> string

Usage: get_default_name __self

Returns the algorithm string identifier. This string is used as top level xml/yml node tag when the object is saved to a file or string.

val detect : ?⁠_lines:Cvdata.t -> ?⁠width:Cvdata.t -> ?⁠prec:Cvdata.t -> ?⁠nfa:Cvdata.t -> t -> Cvdata.t -> Cvdata.t * Cvdata.t * Cvdata.t * Cvdata.t

Usage: detect ?_lines ?width ?prec ?nfa __self _image

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)

  • Parameter: _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);
  • Parameter: _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.
  • Parameter: width: Vector of widths of the regions, where the lines are found. E.g. Width of line.
  • Parameter: prec: Vector of precisions with which the lines are found.
  • Parameter: 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.
val draw_segments : t -> Cvdata.t -> Cvdata.t -> unit

Usage: draw_segments __self _image lines

Draws the line segments on a given image.

  • Parameter: _image: The image, where the lines will be drawn. Should be bigger or equal to the image, where the lines were found.
  • Parameter: lines: A vector of the lines that needed to be drawn.
val compare_segments : ?⁠_image:Cvdata.t -> t -> size2i -> Cvdata.t -> Cvdata.t -> int

Usage: compare_segments ?_image __self size lines1 lines2

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

  • Parameter: size: The size of the image, where lines1 and lines2 were found.
  • Parameter: lines1: The first group of lines that needs to be drawn. It is visualized in blue color.
  • Parameter: lines2: The second group of lines. They visualized in red color.
  • Parameter: _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.