类 SuperpixelSEEDS
- java.lang.Object
-
- org.opencv.core.Algorithm
-
- org.opencv.ximgproc.SuperpixelSEEDS
-
public class SuperpixelSEEDS extends Algorithm
类实现了在 CITE: VBRV14 中描述的 SEEDS(通过能量驱动采样提取的超像素)超像素算法。该算法使用高效的爬山算法来优化超像素的能量函数,该函数基于颜色直方图和一个边界项(可选)。能量函数鼓励超像素具有相同的颜色,如果边界项被激活,则超像素具有平滑的边界并且具有相似的形状。在实践中,它从超像素的规则网格开始,并移动边界上的像素或像素块以优化解决方案。该算法使用单个 CPU 实时运行。
-
-
构造函数摘要
构造函数 修饰符 构造函数 描述 保护SuperpixelSEEDS(long addr)
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 static SuperpixelSEEDS__fromPtr__(long addr)protected voidfinalize()voidgetLabelContourMask(Mat image)返回存储在 SuperpixelSEEDS 对象中的超像素分割的掩码。voidgetLabelContourMask(Mat image, boolean thick_line)返回存储在 SuperpixelSEEDS 对象中的超像素分割的掩码。voidgetLabels(Mat labels_out)返回图像的分割标签。intgetNumberOfSuperpixels()计算存储在 SuperpixelSEEDS 对象中的给定图像上的超像素分割。voiditerate(Mat img)使用 SuperpixelSEEDS 对象中初始化的参数计算给定图像上的超像素分割。voiditerate(Mat img, int num_iterations)使用 SuperpixelSEEDS 对象中初始化的参数计算给定图像上的超像素分割。-
从类继承的方法 org.opencv.core.Algorithm
clear, empty, getDefaultName, getNativeObjAddr, save
-
-
-
-
方法详细信息
-
__fromPtr__
public static SuperpixelSEEDS __fromPtr__(long addr)
-
getNumberOfSuperpixels
public int getNumberOfSuperpixels()
计算存储在 SuperpixelSEEDS 对象中的给定图像上的超像素分割。该函数使用使用函数 createSuperpixelSEEDS() 初始化的参数计算图像的超像素分割。- 返回
- 自动生成
-
iterate
public void iterate(Mat img, int num_iterations)
使用 SuperpixelSEEDS 对象中初始化的参数计算给定图像上的超像素分割。可以再次调用此函数用于其他图像,而无需使用 createSuperpixelSEEDS() 初始化算法。这节省了为算法的所有结构分配内存的计算成本。- 参数
img- 输入图像。支持的格式:CV_8U、CV_16U、CV_32F。图像大小和通道数必须与使用函数 createSuperpixelSEEDS() 初始化的图像大小和通道数相匹配。它应该在 HSV 或 Lab 颜色空间中。Lab 更好一点,但速度也更慢。num_iterations- 像素级别迭代次数。数字越大,结果越好。该函数使用使用函数 createSuperpixelSEEDS() 初始化的参数计算图像的超像素分割。该算法从超像素网格开始,然后通过提出位于边界上的像素块从大到小的更新来细化边界,最后提出像素更新。可以在下面看到一个说明性示例。 
-
iterate
public void iterate(Mat img)
使用 SuperpixelSEEDS 对象中初始化的参数计算给定图像上的超像素分割。可以再次调用此函数用于其他图像,而无需使用 createSuperpixelSEEDS() 初始化算法。这节省了为算法的所有结构分配内存的计算成本。- 参数
img- 输入图像。支持的格式:CV_8U、CV_16U、CV_32F。图像大小和通道数必须与使用函数 createSuperpixelSEEDS() 初始化的图像大小和通道数相匹配。它应该在 HSV 或 Lab 颜色空间中。Lab 更好一点,但速度也更慢。该函数使用使用函数 createSuperpixelSEEDS() 初始化的参数计算图像的超像素分割。该算法从超像素网格开始,然后通过提出位于边界上的像素块从大到小的更新来细化边界,最后提出像素更新。可以在下面看到一个说明性示例。 
-
getLabels
public void getLabels(Mat labels_out)
返回图像的分割标签。每个标签代表一个超像素,每个像素被分配给一个超像素标签。- 参数
labels_out- 返回:一个 CV_32UC1 整数数组,包含超像素分割的标签。标签的范围是 [0, getNumberOfSuperpixels()]。该函数返回一个带有超像素分割标签的图像。标签的范围是 [0, getNumberOfSuperpixels()]。
-
getLabelContourMask
public void getLabelContourMask(Mat image, boolean thick_line)
返回存储在 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 个滑块,用户可以从中动态更改超像素的数量、块级别的数量、边界先验项的强度以修改形状以及像素级别的迭代次数。这对于使用参数并将其设置为用户方便是有用的。在控制台中指示算法的帧速率。
- (Python) 如何从网络摄像头生成图像中的超像素的演示可以在 opencv_source_code/samples/python2/seeds.py 中找到
-
getLabelContourMask
public void getLabelContourMask(Mat image)
返回存储在 SuperpixelSEEDS 对象中的超像素分割的掩码。- 参数
image- 返回:CV_8UC1 图像掩码,其中 -1 表示像素是超像素边界,否则为 0。被屏蔽。该函数返回超像素分割的边界。注意:- (Python) 如何从网络摄像头生成图像中的超像素的演示可以在 opencv_source_code/samples/python2/seeds.py 中找到
- (cpp) 如何从网络摄像头生成图像中的超像素的演示可以在 opencv_source_code/modules/ximgproc/samples/seeds.cpp 中找到。通过添加文件图像作为命令行参数,将使用静态图像代替网络摄像头。
- 它将显示一个带有来自网络摄像头的视频的窗口,其中超像素边界以红色标记(见下文)。使用空格键在不同的输出模式之间切换。在窗口顶部有 4 个滑块,用户可以从中动态更改超像素的数量、块级别的数量、边界先验项的强度以修改形状以及像素级别的迭代次数。这对于使用参数并将其设置为用户方便是有用的。在控制台中指示算法的帧速率。
- (Python) 如何从网络摄像头生成图像中的超像素的演示可以在 opencv_source_code/samples/python2/seeds.py 中找到
-
-