OpenCV: cv::LineSegmentDetector Class Reference

| OpenCV 3.4.2 Open Source Computer Vision

Public Member Functions | List of all members
cv::LineSegmentDetector Class Referenceabstract
Image processing » Feature Detection

Line segment detector class. More...

`#include "imgproc.hpp"`

Inheritance diagram for cv::LineSegmentDetector:

## Public Member Functions
virtual | ~LineSegmentDetector ()
virtual int | compareSegments (const Size &size, InputArray lines1, InputArray lines2, InputOutputArray _image=noArray())=0
| Draws two groups of lines in blue and red, counting the non overlapping (mismatching) pixels. More...
virtual void | detect (InputArray _image, OutputArray _lines, OutputArray width=noArray(), OutputArray prec=noArray(), OutputArray nfa=noArray())=0
| Finds lines in the input image. More...
virtual void | drawSegments (InputOutputArray _image, InputArray lines)=0
| Draws the line segments on a given image. More...
Public Member Functions inherited from cv::Algorithm
| Algorithm ()
virtual | ~Algorithm ()
virtual void | clear ()
| Clears the algorithm state. More...
virtual bool | empty () const
| Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read. More...
virtual String | getDefaultName () const
virtual void | read (const FileNode &fn)
| Reads algorithm parameters from a file storage. More...
virtual void | save (const String &filename) const
virtual void | write (FileStorage &fs) const
| Stores algorithm parameters in a file storage. More...
void | write (const Ptr< FileStorage > &fs, const String &name=String()) const
| simplified API for language bindings This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...

## Additional Inherited Members
Static Public Member Functions inherited from cv::Algorithm
template<typename _Tp >
static Ptr< _Tp > | load (const String &filename, const String &objname=String())
| Loads algorithm from the file. More...
template<typename _Tp >
static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String())
| Loads algorithm from a String. More...
template<typename _Tp >
static Ptr< _Tp > | read (const FileNode &fn)
| Reads algorithm from the file node. More...
Protected Member Functions inherited from cv::Algorithm
void | writeFormat (FileStorage &fs) const

## Detailed Description

Line segment detector class.

following the algorithm described at [96] .

## Constructor & Destructor Documentation

## ◆ ~LineSegmentDetector()

virtual cv::LineSegmentDetector::~LineSegmentDetector | ( |  | ) |
| inlinevirtual

## Member Function Documentation

## ◆ compareSegments()

virtual int cv::LineSegmentDetector::compareSegments | ( | const Size & | size,
|  | InputArray | lines1,
|  | InputArray | lines2,
|  | InputOutputArray | _image = `noArray()`
| ) |  |
| pure virtual

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.

## ◆ detect()

virtual void cv::LineSegmentDetector::detect | ( | InputArray | _image,
|  | OutputArray | _lines,
|  | OutputArray | width = `noArray()`,
|  | OutputArray | prec = `noArray()`,
|  | OutputArray | nfa = `noArray()`
| ) |  |
| pure virtual

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.

Examples:
  lsd_lines.cpp.

## ◆ drawSegments()

virtual void cv::LineSegmentDetector::drawSegments | ( | InputOutputArray | _image,
|  | InputArray | lines
| ) |  |
| pure virtual

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.

Examples:
  lsd_lines.cpp.

The documentation for this class was generated from the following file:

- imgproc/include/opencv2/imgproc.hpp