@Namespace(value="cv") @Properties(inherit=opencv_imgproc.class) public class LineSegmentDetector extends Algorithm
\addtogroup imgproc_feature \{
/** \brief Line segment detector class
following the algorithm described at \cite Rafael12 .
\note Implementation has been removed due original code license conflict
Pointer.CustomDeallocator, Pointer.Deallocator, Pointer.NativeDeallocator, Pointer.ReferenceCounter| Constructor and Description |
|---|
LineSegmentDetector(Pointer p)
Pointer cast constructor.
|
| Modifier and Type | Method and Description |
|---|---|
int |
compareSegments(Size size,
GpuMat lines1,
GpuMat lines2) |
int |
compareSegments(Size size,
GpuMat lines1,
GpuMat lines2,
GpuMat _image) |
int |
compareSegments(Size size,
Mat lines1,
Mat lines2) |
int |
compareSegments(Size size,
Mat lines1,
Mat lines2,
Mat _image)
\brief Draws two groups of lines in blue and red, counting the non overlapping (mismatching) pixels.
|
int |
compareSegments(Size size,
UMat lines1,
UMat lines2) |
int |
compareSegments(Size size,
UMat lines1,
UMat lines2,
UMat _image) |
void |
detect(GpuMat _image,
GpuMat _lines) |
void |
detect(GpuMat _image,
GpuMat _lines,
GpuMat width,
GpuMat prec,
GpuMat nfa) |
void |
detect(Mat _image,
Mat _lines) |
void |
detect(Mat _image,
Mat _lines,
Mat width,
Mat prec,
Mat nfa)
\brief Finds lines in the input image.
|
void |
detect(UMat _image,
UMat _lines) |
void |
detect(UMat _image,
UMat _lines,
UMat width,
UMat prec,
UMat nfa) |
void |
drawSegments(GpuMat _image,
GpuMat lines) |
void |
drawSegments(Mat _image,
Mat lines)
\brief Draws the line segments on a given image.
|
void |
drawSegments(UMat _image,
UMat lines) |
clear, empty, getDefaultName, position, read, save, save, write, write, writeaddress, asBuffer, asByteBuffer, availablePhysicalBytes, calloc, capacity, capacity, close, deallocate, deallocate, deallocateReferences, deallocator, deallocator, equals, fill, formatBytes, free, hashCode, isNull, isNull, limit, limit, malloc, maxBytes, maxPhysicalBytes, memchr, memcmp, memcpy, memmove, memset, offsetof, parseBytes, physicalBytes, position, put, realloc, referenceCount, releaseReference, retainReference, setNull, sizeof, toString, totalBytes, totalPhysicalBytes, withDeallocator, zeropublic LineSegmentDetector(Pointer p)
Pointer.Pointer(Pointer).public void detect(@ByVal Mat _image, @ByVal Mat _lines, @ByVal(nullValue="cv::OutputArray(cv::noArray())") Mat width, @ByVal(nullValue="cv::OutputArray(cv::noArray())") Mat prec, @ByVal(nullValue="cv::OutputArray(cv::noArray())") Mat nfa)
This is the output of the default parameters of the algorithm on the above shown image.

_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.public void detect(@ByVal UMat _image, @ByVal UMat _lines, @ByVal(nullValue="cv::OutputArray(cv::noArray())") UMat width, @ByVal(nullValue="cv::OutputArray(cv::noArray())") UMat prec, @ByVal(nullValue="cv::OutputArray(cv::noArray())") UMat nfa)
public void detect(@ByVal GpuMat _image, @ByVal GpuMat _lines, @ByVal(nullValue="cv::OutputArray(cv::noArray())") GpuMat width, @ByVal(nullValue="cv::OutputArray(cv::noArray())") GpuMat prec, @ByVal(nullValue="cv::OutputArray(cv::noArray())") GpuMat nfa)
public void drawSegments(@ByVal Mat _image, @ByVal Mat lines)
_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.public int compareSegments(@Const @ByRef Size size, @ByVal Mat lines1, @ByVal Mat lines2, @ByVal(nullValue="cv::InputOutputArray(cv::noArray())") Mat _image)
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.public int compareSegments(@Const @ByRef Size size, @ByVal Mat lines1, @ByVal Mat lines2)
public int compareSegments(@Const @ByRef Size size, @ByVal UMat lines1, @ByVal UMat lines2, @ByVal(nullValue="cv::InputOutputArray(cv::noArray())") UMat _image)
public int compareSegments(@Const @ByRef Size size, @ByVal UMat lines1, @ByVal UMat lines2)
public int compareSegments(@Const @ByRef Size size, @ByVal GpuMat lines1, @ByVal GpuMat lines2, @ByVal(nullValue="cv::InputOutputArray(cv::noArray())") GpuMat _image)
Copyright © 2020. All rights reserved.