OpenCV  4.10.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
 

详细描述

线段检测器类。

遵循在 [289] 中描述的算法。

注意
由于原始代码许可证冲突,该实现已从 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可选图像,将在其中绘制线。图像应为彩色(3 通道),以便 lines1 和 lines2 以上面提到的颜色绘制。
这是此函数的调用图

◆ 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);
linesVec4f 元素的向量,指定线的起点和终点。其中 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需要绘制的线的向量。

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