@Namespace(value="cv") @Properties(inherit=opencv_imgproc.class) public class LineSegmentDetector extends Algorithm
following the algorithm described at \cite 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](https://github.com/rafael-grompone-von-gioi/binomial_nfa) code published under the MIT license.
Pointer.CustomDeallocator, Pointer.Deallocator, Pointer.NativeDeallocator, Pointer.ReferenceCounter
Constructor and Description |
---|
LineSegmentDetector(Algorithm pointer)
Downcast constructor.
|
LineSegmentDetector(Pointer p)
Pointer cast constructor.
|
Modifier and Type | Method and Description |
---|---|
Algorithm |
asAlgorithm() |
static Algorithm |
asAlgorithm(LineSegmentDetector pointer) |
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, getPointer, position, read, save, save, write, write, write
address, asBuffer, asByteBuffer, availablePhysicalBytes, calloc, capacity, capacity, close, deallocate, deallocate, deallocateReferences, deallocator, deallocator, equals, fill, formatBytes, free, getDirectBufferAddress, getPointer, getPointer, getPointer, hashCode, interruptDeallocatorThread, isNull, isNull, limit, limit, malloc, maxBytes, maxPhysicalBytes, memchr, memcmp, memcpy, memmove, memset, offsetAddress, offsetof, offsetof, parseBytes, physicalBytes, physicalBytesInaccurate, position, put, realloc, referenceCount, releaseReference, retainReference, setNull, sizeof, sizeof, toString, totalBytes, totalCount, totalPhysicalBytes, withDeallocator, zero
public LineSegmentDetector(Pointer p)
Pointer(Pointer)
.public LineSegmentDetector(Algorithm pointer)
public Algorithm asAlgorithm()
asAlgorithm
in class Algorithm
@Namespace @Name(value="static_cast<cv::Algorithm*>") public static Algorithm asAlgorithm(LineSegmentDetector 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 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.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 © 2024. All rights reserved.