OpenCV 4.11.0
开源计算机视觉
加载中…
搜索中…
无匹配项
cv::LineSegmentDetector 类参考抽象

线段检测器类。 更多…

#include <opencv2/imgproc.hpp>

cv::LineSegmentDetector 的协作图

公共成员函数

virtual ~LineSegmentDetector ()
 
virtual int compareSegments (const Size &size, InputArray lines1, InputArray lines2, InputOutputArray image=noArray())=0
 绘制两组线段,蓝色和红色,计算非重叠(不匹配)像素。
 
virtual void detect (InputArray image, OutputArray lines, OutputArray width=noArray(), OutputArray prec=noArray(), OutputArray nfa=noArray())=0
 在输入图像中查找线段。
 
virtual void drawSegments (InputOutputArray image, InputArray lines)=0
 在给定的图像上绘制线段。
 
- 继承自 cv::Algorithm 的公共成员函数
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 清除算法状态。
 
virtual bool empty () const
 如果 Algorithm 为空(例如,在开始时或读取失败后),则返回 true。
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 从文件存储中读取算法参数。
 
virtual void save (const String &filename) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
virtual void write (FileStorage &fs) const
 将算法参数存储到文件存储中。
 
void write (FileStorage &fs, const String &name) const
 

其他继承成员

- 继承自 cv::Algorithm 的静态公共成员函数
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 从文件中加载算法。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 从字符串加载算法。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 从文件节点读取算法。
 
- 继承自 cv::Algorithm 的保护成员函数
void writeFormat (FileStorage &fs) const
 

详细描述

线段检测器类。

遵循[290]中描述的算法。

注意
由于原始代码许可证冲突,OpenCV 3.4.6 到 3.4.15 版本和 4.1.0 到 4.5.3 版本已删除实现。在 计算 NFA 代码以 MIT 许可证发布后,再次恢复。

构造函数和析构函数文档

◆ ~LineSegmentDetector()

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

成员函数文档

◆ compareSegments()

virtual int cv::LineSegmentDetector::compareSegments ( const Size & size,
InputArray lines1,
InputArray lines2,
InputOutputArray image = noArray() )
纯虚函数
Python
cv.LineSegmentDetector.compareSegments(size, lines1, lines2[, image]) -> retval, image

绘制两组线段,蓝色和红色,计算非重叠(不匹配)像素。

参数
size图像的大小,其中找到 lines1 和 lines2。
lines1需要绘制的第一组线段。以蓝色显示。
lines2第二组线段。以红色显示。
image可选图像,将在其中绘制线段。为了使 lines1 和 lines2 以上述颜色绘制,图像应为彩色(3 通道)。
此函数的调用图如下所示

◆ detect()

virtual void cv::LineSegmentDetector::detect ( InputArray image,
OutputArray lines,
OutputArray width = noArray(),
OutputArray prec = noArray(),
OutputArray nfa = noArray() )
纯虚函数
Python
cv.LineSegmentDetector.detect(image[, lines[, width[, prec[, nfa]]]]) -> lines, width, prec, nfa

在输入图像中查找线段。

这是算法在上面显示的图像上使用默认参数的输出。

image
参数
image一个灰度 (CV_8UC1) 输入图像。如果只需要选择一个感兴趣区域 (roi),请使用:lsd_ptr-\>detect(image(roi), lines, ...); lines += Scalar(roi.x, roi.y, roi.x, roi.y);
lines一个 Vec4f 元素向量,指定一条线的起点和终点。其中 Vec4f 为 (x1, y1, x2, y2),点 1 为起点,点 2 为终点。返回的线根据梯度严格定向。
width找到线的区域的宽度向量。例如,线的宽度。
prec找到线的精度向量。
nfa包含线区域中误报数量的向量,精度为 10%。值越大,检测结果越好(对数关系)。
  • -1 对应于 10 个平均误报
  • 0 对应于 1 个平均误报
  • 1 对应于 0.1 个平均误报。只有当对象类型为 LSD_REFINE_ADV 时,才会计算此向量。
此函数的调用图如下所示

◆ drawSegments()

virtual void cv::LineSegmentDetector::drawSegments ( InputOutputArray image,
InputArray lines )
纯虚函数
Python
cv.LineSegmentDetector.drawSegments(image, lines) -> image

在给定的图像上绘制线段。

参数
image将绘制线的图像。应大于或等于找到线的图像。
lines需要绘制的线向量。

此类的文档是从以下文件生成的