watershed              package:EBImage              R Documentation

_W_a_t_e_r_s_h_e_d _t_r_a_n_s_f_o_r_m_a_t_i_o_n _a_n_d _w_a_t_e_r_s_h_e_d _b_a_s_e_d _o_b_j_e_c_t _d_e_t_e_c_t_i_o_n

_D_e_s_c_r_i_p_t_i_o_n:

     Watershed transformation and watershed based object detection.

_U_s_a_g_e:


         watershed(x, tolerance=1, ext=1)


_A_r_g_u_m_e_n_t_s:


     '_x' An object of 'Image-class' in the 'Grayscale' mode. 

     '_t_o_l_e_r_a_n_c_e' The minimum height of the object in the units of image
          intensity between its highest point (seed) and the point
          where it contacts another object (checked for every contact
          pixel). If the height is smaller than the tolerance, the
          object will be combined with one of its neighbors, which is
          the highest. It is assumed that the function is run on a
          distance map, therefore the default value is 1. If running
          the function on an original grayscale image with intensity
          range '[0,1]' one should modify this value, down to 0.1 or
          other which is image specific. 

     '_e_x_t' Extension of the neighborhood for the detection of
          neighboring objects. Higher value smoothes out small objects. 

_V_a_l_u_e:

     An object of 'Image-class' in the 'Grayscale' with separate
     objects indexed be positive integers starting from 1. To preview
     the results visually, use 'display( normalize(result) )' or use it
     in combination with 'paintObjects'.

_D_e_t_a_i_l_s:

     The algorithm identifies and separates objects that stand out of
     the background (zero), in other words to use the water fill, the
     source image is flipped upside down and the resulting valleys
     (values with higher intensities) are filled in first until another
     object or background is met. The deepest valleys (pixels with
     highest intensity) become indexed first.

_A_u_t_h_o_r(_s):

     Oleg Sklyar: osklyar@ebi.ac.uk

_S_e_e _A_l_s_o:

     ' Image-class, distmap, thresh, getObjects, \code{matchObjects} '

_E_x_a_m_p_l_e_s:

       if ( interactive() ) {
         ddir <- paste( system.file(package="EBImage"), "images", sep="/" )
         a <- read.image( paste(ddir, "A04w1.jpg", sep="/") )

         w <- watershed( distmap( thresh(a, 10, 10) ) )
         display( normalize(w) )

         ## Not run: often one needs to delete small objects
         ## Not run: here is the straightforward way to construct the index
         index <- lapply( getObjects(w), function(x) which( x[, "size"] < 40) )
         w <- rmObjects(w, index)
         display( normalize(w) )

       }

