VLFeat - Documentation > vl_demo_mser_basic

# VLFeat.org

Documentation> vl_demo_mser_basic

# Source code for ``vl_demo_mser_basic.m

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

    % VL_DEMO_MSER_BASIC  Demo: MSER: basic functionality

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

    % --------------------------------------------------------------------
    %                                                        Load a figure
    % --------------------------------------------------------------------
    I = imread(fullfile(vl_root,'data','spots.jpg')) ;

    image(I) ; colormap gray ;
    axis equal ; axis off ; axis tight ;
    vl_demo_print('mser_basic_0') ;

    % --------------------------------------------------------------------
    %                                       Convert the to required format
    % --------------------------------------------------------------------
    I = uint8(rgb2gray(I)) ;

    clf ; imagesc(I) ; colormap(gray(256)) ;
    axis equal ; axis off ; axis tight ;

    % --------------------------------------------------------------------
    %                                                             Run VL_MSER
    % --------------------------------------------------------------------
    [r,f] = vl_mser(I,'MinDiversity',0.7,'MaxVariation',0.2,'Delta',10) ;

    % compute regions mask
    M = zeros(size(I)) ;
    for x=r'
      s = vl_erfill(I,x) ;
      M(s) = M(s) + 1;
    end

    % adjust convention
    f = vl_ertr(f) ;

    figure(1) ;
    hold on ;
    h1 = vl_plotframe(f) ; set(h1,'color','y','linewidth',3) ;
    h2 = vl_plotframe(f) ; set(h2,'color','k','linewidth',1) ;
    vl_demo_print('mser_basic_frames') ;

    figure(2) ; clf ; imagesc(I) ; hold on ;
    colormap(gray(256)) ;
    if vl_isoctave()
      [c,h]=contour(M,(0:max(M(:)))+.5,'y','linewidth',3) ;
    else
      [c,h]=contour(M,(0:max(M(:)))+.5) ;
      set(h,'color','y','linewidth',3) ;
    end
    axis equal ; axis off ;
    vl_demo_print('mser_basic_contours') ;

    % --------------------------------------------------------------------
    %                                                       Run VL_MSER again
    % --------------------------------------------------------------------

    [r,f] = vl_mser(I,'MinDiversity',0.7,'MaxVariation',0.2,...
      'Delta',10,'BrightOnDark',1,'DarkOnBright',0) ;

    % adjust convention
    f = vl_ertr(f) ;

    % compute regions mask
    M = zeros(size(I)) ;
    for x=r'
      s = vl_erfill(I,x) ;
      M(s) = M(s) + 1;
    end

    figure(1) ;
    hold on ;
    h1 = vl_plotframe(f) ; set(h1,'color','g','linewidth',3) ;
    h2 = vl_plotframe(f) ; set(h2,'color','k','linewidth',1) ;
    vl_demo_print('mser_basic_frames_both') ;

    figure(2) ;
    if vl_isoctave()
      [c,h]=contour(M,(0:max(M(:)))+.5,'y','linewidth',3) ;
    else
      [c,h]=contour(M,(0:max(M(:)))+.5) ;
      set(h,'color','g','linewidth',3) ;
    end

    hold on ; axis equal ; axis off ;
    vl_demo_print('mser_basic_contours_both') ;