OpenCV  3.0.0
Open Source Computer Vision
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Classes | Functions

Classes

class  cv::ximgproc::SuperpixelSEEDS
 Class implementing the SEEDS (Superpixels Extracted via Energy-Driven Sampling) superpixels algorithm described in [126] . More...
 

Functions

Ptr< SuperpixelSEEDS > cv::ximgproc::createSuperpixelSEEDS (int image_width, int image_height, int image_channels, int num_superpixels, int num_levels, int prior=2, int histogram_bins=5, bool double_step=false)
 Initializes a SuperpixelSEEDS object. More...
 

Detailed Description

Function Documentation

Ptr<SuperpixelSEEDS> cv::ximgproc::createSuperpixelSEEDS ( int  image_width,
int  image_height,
int  image_channels,
int  num_superpixels,
int  num_levels,
int  prior = 2,
int  histogram_bins = 5,
bool  double_step = false 
)

Initializes a SuperpixelSEEDS object.

Parameters
image_widthImage width.
image_heightImage height.
image_channelsNumber of channels of the image.
num_superpixelsDesired number of superpixels. Note that the actual number may be smaller due to restrictions (depending on the image size and num_levels). Use getNumberOfSuperpixels() to get the actual number.
num_levelsNumber of block levels. The more levels, the more accurate is the segmentation, but needs more memory and CPU time.
priorenable 3x3 shape smoothing term if >0. A larger value leads to smoother shapes. prior must be in the range [0, 5].
histogram_binsNumber of histogram bins.
double_stepIf true, iterate each block level twice for higher accuracy.

The function initializes a SuperpixelSEEDS object for the input image. It stores the parameters of the image: image_width, image_height and image_channels. It also sets the parameters of the SEEDS superpixel algorithm, which are: num_superpixels, num_levels, use_prior, histogram_bins and double_step.

The number of levels in num_levels defines the amount of block levels that the algorithm use in the optimization. The initialization is a grid, in which the superpixels are equally distributed through the width and the height of the image. The larger blocks correspond to the superpixel size, and the levels with smaller blocks are formed by dividing the larger blocks into 2 x 2 blocks of pixels, recursively until the smaller block level. An example of initialization of 4 block levels is illustrated in the following figure.

superpixels_blocks.png
image