VLFeat - Documentation > vl_demo_slic

# VLFeat.org

Documentation> vl_demo_slic

# Source code for ``vl_demo_slic.m

This file is located in the ``toolbox/demo folder in VLFeat package.

    % VL_DEMO_SLICT  Demo: SLIC superpixels

    prefix = fullfile(vl_root,'figures','demo') ;
    randn('state',0) ;
    rand('state',0) ;
    figure(1) ; clf ;

    % --------------------------------------------------------------------
    %                                                        Load a figure
    % --------------------------------------------------------------------

    im = imread(fullfile(vl_root,'data','roofs1.jpg')) ;
    im = im2single(im) ;
    im = im(1:128,end-128+1:end,:) ;

    figure(1) ; clf ;
    image(im) ;
    axis equal off tight ;
    vl_demo_print('slic_image') ;

    % --------------------------------------------------------------------
    %                                    Create various SLIC segmentations
    % --------------------------------------------------------------------

    regionSizes = [10 30] ;
    regularizers = [0.01 0.1 1] ;

    figure(2) ; clf ;
    for i = 1:numel(regionSizes)
      for j = 1:numel(regularizers)
        regionSize = regionSizes(i) ;
        regularizer = regularizers(j) ;
        segments = vl_slic(im, regionSize, regularizer, 'verbose') ;

        % overaly segmentation
        [sx,sy]=vl_grad(double(segments), 'type', 'forward') ;
        s = find(sx | sy) ;
        imp = im ;
        imp([s s+numel(im(:,:,1)) s+2*numel(im(:,:,1))]) = 0 ;

        vl_tightsubplot(numel(regionSizes),numel(regularizers), (i-1)*numel(regularizers) + j) ;
        imagesc(imp) ; axis image off ; hold on ;
        text(5,5,sprintf('regionSize:%.2g\nregularizer:%.2g', regionSize, regularizer), ...
             'Background', 'white','VerticalAlignment','top')
      end
    end

    vl_demo_print('slic_segmentation') ;