@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, write
address, 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, zero
public 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](pics/building_lsd.png)
_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.