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:

       ## S4 method for signature 'Image':
       watershed(x, tolerance=1, ext=1, ...)

_A_r_g_u_m_e_n_t_s:

       x: An object of 'Image' in the 'Grayscale' mode. 

tolerance: 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. 

     ext: Extension of the neighborhood for the detection of
          neighboring objects. Higher value smoothes out small objects. 

     ...: Reserved. 

_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.

_V_a_l_u_e:

     An object of 'Image' 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'.

_A_u_t_h_o_r(_s):

     Oleg Sklyar, osklyar@ebi.ac.uk, 2007

_S_e_e _A_l_s_o:

     ' Image, distmap, thresh, getFeatures, \code{matchObjects} '

_E_x_a_m_p_l_e_s:

       
       ## load images
       f <- paste( system.file(package="EBImage"), "images/Gene1_G.tif", sep="/" )
       ii = readImage(f)
       ## normalize images
       ii = normalize(ii, separate=TRUE)
       ## segment
       mask = thresh(ii, 25, 25, 0.02)
       ## refine segmentation with morphology filters
       mk3 = morphKern(3)
       mk5 = morphKern(5)
       mask = dilate(erode(closing(mask, mk5), mk3), mk5)
       ## index objects with 'watershed'
       io = watershed( distmap(mask), 1.5, 1)
       if (interactive()) display(io)

