[][src]Function opencv::ximgproc::create_superpixel_seeds

pub fn create_superpixel_seeds(
    image_width: i32,
    image_height: i32,
    image_channels: i32,
    num_superpixels: i32,
    num_levels: i32,
    prior: i32,
    histogram_bins: i32,
    double_step: bool
) -> Result<Ptr<dyn SuperpixelSEEDS>>

Initializes a SuperpixelSEEDS object.

Parameters

  • image_width: Image width.
  • image_height: Image height.
  • image_channels: Number of channels of the image.
  • num_superpixels: Desired 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_levels: Number of block levels. The more levels, the more accurate is the segmentation, but needs more memory and CPU time.
  • prior: enable 3x3 shape smoothing term if >0. A larger value leads to smoother shapes. prior must be in the range [0, 5].
  • histogram_bins: Number of histogram bins.
  • double_step: If 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.

image

C++ default parameters

  • prior: 2
  • histogram_bins: 5
  • double_step: false