Oversplitting by watershed

Frank pennekampster at googlemail.com
Mon Nov 12 07:43:21 EST 2012

Dear group,

I have some issues with the watershed algorithm implemented in scikits 
image. I use a global threshold to segment cells from background, but some 
cells touch and I want them to be split. Watershed seems the appropriate 
way to deal with my problem, however my particles are split in too many 
pieces. Is there a way to adjust the sensitivity of the watershed method? 

Many thanks for any suggestion!

The code that I use looks like below. An example image that I want to 
process can be downloaded here: https://dl.dropbox.com/u/10373933/test.jpg

# packages needed to perform image processing and analysis
import numpy as np
import scipy as scp
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import scipy.ndimage as nd
import skimage
from skimage import io
from skimage.morphology import watershed, is_local_maximum
from skimage.segmentation import find_boundaries, visualize_boundaries
from skimage.color import gray2rgb

#read files jpeg file
image = mpimg.imread('c:\\test.jpg')
image_thresh = image > 140
labels = nd.label(image_thresh)[0]
distance = nd.distance_transform_edt(image_thresh)
local_maxi = is_local_maximum(distance, labels=labels, 
footprint=np.ones((9, 9)))
markers = nd.label(local_maxi)[0]
labelled_image = watershed(-distance, markers, mask=image_thresh)

#find outline of objects for plotting
boundaries = find_boundaries(labelled_image)
img_rgb = gray2rgb(image)
overlay = np.flipud(visualize_boundaries(img_rgb,boundaries))

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scikit-image/attachments/20121112/49346ca3/attachment.html>

More information about the scikit-image mailing list