OpenCV 4.10.0
开源计算机视觉
正在加载...
正在搜索...
无匹配项
公共成员函数 | 所有成员列表
cv::ximgproc::SuperpixelSEEDS 类参考abstract

实现 SEEDS(通过能量驱动采样提取的超级像素)超级像素算法的类,该算法在 [281] 中描述。 更多...

#include <opencv2/ximgproc/seeds.hpp>

cv::ximgproc::SuperpixelSEEDS 的协作图

公共成员函数

virtual ~SuperpixelSEEDS ()
 
virtual void getLabelContourMask (OutputArray image, bool thick_line=false)=0
 返回存储在 SuperpixelSEEDS 对象中的超级像素分割掩码。
 
virtual void getLabels (OutputArray labels_out)=0
 返回图像的分割标签。
 
virtual int getNumberOfSuperpixels ()=0
 计算存储在 SuperpixelSEEDS 对象中的给定图像的超级像素分割。
 
virtual void iterate (InputArray img, int num_iterations=4)=0
 使用 SuperpixelSEEDS 对象中初始化的参数,计算给定图像的超级像素分割。
 
- 从 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
 

详细描述

实现 SEEDS(通过能量驱动采样提取的超级像素)超级像素算法的类,该算法在 [281] 中描述。

该算法使用高效的爬山算法来优化超级像素的能量函数,该能量函数基于颜色直方图和边界项(可选)。能量函数鼓励超级像素具有相同的颜色,如果边界项被激活,则超级像素具有平滑的边界并且形状相似。实际上,它从超级像素的规则网格开始,并将边界处的像素或像素块移动以细化解决方案。该算法使用单个 CPU 实时运行。

构造函数和析构函数文档

◆ ~SuperpixelSEEDS()

virtual cv::ximgproc::SuperpixelSEEDS::~SuperpixelSEEDS ( )
inlinevirtual

成员函数文档

◆ getLabelContourMask()

virtual void cv::ximgproc::SuperpixelSEEDS::getLabelContourMask ( OutputArray  image,
bool  thick_line = false 
)
纯虚函数
Python
cv.ximgproc.SuperpixelSEEDS.getLabelContourMask([, image[, thick_line]]) -> image

返回存储在 SuperpixelSEEDS 对象中的超级像素分割掩码。

参数
image返回值:CV_8UC1 图像掩码,其中 -1 表示像素是超级像素边界,否则为 0。
thick_line如果为 false,则边界仅为一个像素宽,否则边界上的所有像素都被屏蔽。

该函数返回超级像素分割的边界。

注意
  • (Python) 有关如何从网络摄像头中的图像生成超级像素的演示,请访问 opencv_source_code/samples/python2/seeds.py
    • (cpp) 有关如何从网络摄像头中的图像生成超级像素的演示,请访问 opencv_source_code/modules/ximgproc/samples/seeds.cpp。通过添加文件图像作为命令行参数,将使用静态图像而不是网络摄像头。
    • 它将显示一个窗口,其中包含来自网络摄像头的视频,以及以红色标记的超级像素边界(见下文)。使用空格键在不同的输出模式之间切换。在窗口顶部有 4 个滑块,用户可以通过它们实时更改超级像素的数量、块级别的数量、边界先验项的强度以修改形状,以及像素级别的迭代次数。这对于使用参数并根据用户方便设置参数很有用。在控制台中,指示了算法的帧速率。
image

◆ getLabels()

virtual void cv::ximgproc::SuperpixelSEEDS::getLabels ( OutputArray  labels_out)
纯虚函数
Python
cv.ximgproc.SuperpixelSEEDS.getLabels([, labels_out]) -> labels_out

返回图像的分割标签。

每个标签表示一个超级像素,每个像素都分配给一个超级像素标签。

参数
labels_out返回值:一个 CV_32UC1 整型数组,包含超级像素分割的标签。标签范围在 [0, getNumberOfSuperpixels()] 之间。

该函数返回一个图像,其中包含超级像素分割的标签。标签范围在 [0, getNumberOfSuperpixels()] 之间。

◆ getNumberOfSuperpixels()

virtual int cv::ximgproc::SuperpixelSEEDS::getNumberOfSuperpixels ( )
纯虚函数
Python
cv.ximgproc.SuperpixelSEEDS.getNumberOfSuperpixels() -> retval

计算存储在 SuperpixelSEEDS 对象中的给定图像的超级像素分割。

该函数使用 createSuperpixelSEEDS() 函数初始化的参数计算图像的超级像素分割。

◆ iterate()

virtual void cv::ximgproc::SuperpixelSEEDS::iterate ( InputArray  img,
int  num_iterations = 4 
)
纯虚函数
Python
cv.ximgproc.SuperpixelSEEDS.iterate(img[, num_iterations]) -> None

使用 SuperpixelSEEDS 对象中初始化的参数,计算给定图像的超级像素分割。

此函数可以再次被调用以处理其他图像,而无需使用 createSuperpixelSEEDS() 初始化算法。这可以节省为算法的所有结构分配内存的计算成本。

参数
img输入图像。支持的格式:CV_8U、CV_16U、CV_32F。图像大小和通道数必须与使用 createSuperpixelSEEDS() 函数初始化的图像大小和通道数匹配。它应该在 HSV 或 Lab 颜色空间中。Lab 稍微好一些,但也更慢。
num_iterations像素级别的迭代次数。更高的数字可以改善结果。

该函数使用 createSuperpixelSEEDS() 函数初始化的参数计算图像的超级像素分割。该算法从超级像素网格开始,然后通过提出位于边界上的像素块(从大到小)的更新来细化边界,最后提出像素更新。下面是一个说明性的例子。

image

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