OpenCV for Unity  2.6.0
Enox Software / Please refer to OpenCV official document ( http://docs.opencv.org/4.9.0/index.html ) for the details of the argument of the method.
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
OpenCVForUnity.ImgprocModule.LineSegmentDetector Class Reference

Line segment detector class. More...

Inheritance diagram for OpenCVForUnity.ImgprocModule.LineSegmentDetector:
OpenCVForUnity.CoreModule.Algorithm OpenCVForUnity.DisposableOpenCVObject OpenCVForUnity.DisposableObject

Public Member Functions

void detect (Mat image, Mat lines, Mat width, Mat prec, Mat nfa)
 Finds lines in the input image. More...
 
void detect (Mat image, Mat lines, Mat width, Mat prec)
 Finds lines in the input image. More...
 
void detect (Mat image, Mat lines, Mat width)
 Finds lines in the input image. More...
 
void detect (Mat image, Mat lines)
 Finds lines in the input image. More...
 
void drawSegments (Mat image, Mat lines)
 Draws the line segments on a given image. More...
 
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. More...
 
int compareSegments (Size size, Mat lines1, Mat lines2)
 Draws two groups of lines in blue and red, counting the non overlapping (mismatching) pixels. More...
 
- Public Member Functions inherited from OpenCVForUnity.CoreModule.Algorithm
IntPtr getNativeObjAddr ()
 
virtual void clear ()
 Clears the algorithm state. More...
 
virtual bool empty ()
 Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read. More...
 
void save (string filename)
 
virtual string getDefaultName ()
 
- Public Member Functions inherited from OpenCVForUnity.DisposableObject
void Dispose ()
 
void ThrowIfDisposed ()
 

Static Public Member Functions

static new LineSegmentDetector __fromPtr__ (IntPtr addr)
 
- Static Public Member Functions inherited from OpenCVForUnity.CoreModule.Algorithm
static Algorithm __fromPtr__ (IntPtr addr)
 
- Static Public Member Functions inherited from OpenCVForUnity.DisposableObject
static IntPtr ThrowIfNullIntPtr (IntPtr ptr)
 

Protected Member Functions

override void Dispose (bool disposing)
 
- Protected Member Functions inherited from OpenCVForUnity.DisposableOpenCVObject
 DisposableOpenCVObject ()
 
 DisposableOpenCVObject (IntPtr ptr)
 
 DisposableOpenCVObject (bool isEnabledDispose)
 
 DisposableOpenCVObject (IntPtr ptr, bool isEnabledDispose)
 
- Protected Member Functions inherited from OpenCVForUnity.DisposableObject
 DisposableObject ()
 
 DisposableObject (bool isEnabledDispose)
 

Additional Inherited Members

- Properties inherited from OpenCVForUnity.DisposableObject
bool IsDisposed [get, protected set]
 
bool IsEnabledDispose [get, set]
 

Detailed Description

Line segment detector class.

following the algorithm described at [Rafael12] .

Note
Implementation has been removed from OpenCV version 3.4.6 to 3.4.15 and version 4.1.0 to 4.5.3 due original code license conflict. restored again after Computation of a NFA code published under the MIT license.

Member Function Documentation

◆ __fromPtr__()

static new LineSegmentDetector OpenCVForUnity.ImgprocModule.LineSegmentDetector.__fromPtr__ ( IntPtr  addr)
static

◆ compareSegments() [1/2]

int OpenCVForUnity.ImgprocModule.LineSegmentDetector.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
sizeThe size of the image, where lines1 and lines2 were found.
lines1The first group of lines that needs to be drawn. It is visualized in blue color.
lines2The second group of lines. They visualized in red color.
imageOptional 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.

◆ compareSegments() [2/2]

int OpenCVForUnity.ImgprocModule.LineSegmentDetector.compareSegments ( Size  size,
Mat  lines1,
Mat  lines2 
)

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

Parameters
sizeThe size of the image, where lines1 and lines2 were found.
lines1The first group of lines that needs to be drawn. It is visualized in blue color.
lines2The second group of lines. They visualized in red color.
imageOptional 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() [1/4]

void OpenCVForUnity.ImgprocModule.LineSegmentDetector.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.

building_lsd.png
image
Parameters
imageA 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);
linesA vector of Vec4f elements specifying the beginning and ending point of a line. Where Vec4f is (x1, y1, x2, y2), point 1 is the start, point 2 - end. Returned lines are strictly oriented depending on the gradient.
widthVector of widths of the regions, where the lines are found. E.g. Width of line.
precVector of precisions with which the lines are found.
nfaVector 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() [2/4]

void OpenCVForUnity.ImgprocModule.LineSegmentDetector.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.

building_lsd.png
image
Parameters
imageA 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);
linesA vector of Vec4f elements specifying the beginning and ending point of a line. Where Vec4f is (x1, y1, x2, y2), point 1 is the start, point 2 - end. Returned lines are strictly oriented depending on the gradient.
widthVector of widths of the regions, where the lines are found. E.g. Width of line.
precVector of precisions with which the lines are found.
nfaVector 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() [3/4]

void OpenCVForUnity.ImgprocModule.LineSegmentDetector.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.

building_lsd.png
image
Parameters
imageA 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);
linesA vector of Vec4f elements specifying the beginning and ending point of a line. Where Vec4f is (x1, y1, x2, y2), point 1 is the start, point 2 - end. Returned lines are strictly oriented depending on the gradient.
widthVector of widths of the regions, where the lines are found. E.g. Width of line.
precVector of precisions with which the lines are found.
nfaVector 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() [4/4]

void OpenCVForUnity.ImgprocModule.LineSegmentDetector.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.

building_lsd.png
image
Parameters
imageA 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);
linesA vector of Vec4f elements specifying the beginning and ending point of a line. Where Vec4f is (x1, y1, x2, y2), point 1 is the start, point 2 - end. Returned lines are strictly oriented depending on the gradient.
widthVector of widths of the regions, where the lines are found. E.g. Width of line.
precVector of precisions with which the lines are found.
nfaVector 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.

◆ Dispose()

override void OpenCVForUnity.ImgprocModule.LineSegmentDetector.Dispose ( bool  disposing)
protectedvirtual

◆ drawSegments()

void OpenCVForUnity.ImgprocModule.LineSegmentDetector.drawSegments ( Mat  image,
Mat  lines 
)

Draws the line segments on a given image.

Parameters
imageThe image, where the lines will be drawn. Should be bigger or equal to the image, where the lines were found.
linesA vector of the lines that needed to be drawn.

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