<< VarianceFilter IPD - Image Processing Design WriteImage >>

IPD - Image Processing Design >> IPD - Image Processing Design > Watershed

Watershed

segments image by watershed transform

Calling Sequence

SegmentedImage = Watershed(Image, Marker);

Parameters

Image

2D matrix of type uint8

Marker

2D matrix of type boolean, blobs consisting of %t pixels are seeds of watershed transform

SegmentedImage

2D matrix of type int32, has the same dimensions as image

Description

This function applies a watershed transform to an image.

Examples

global IPD_PATH;

RGB = ReadImage(IPD_PATH + 'demos\teaset.png');

Image = RGB2Gray(RGB);

global EDGE_SOBEL;

Gradient = EdgeFilter(Image, EDGE_SOBEL);

EdgeImage = ~SegmentByThreshold(Gradient, 60);

DistanceImage = DistanceTransform(EdgeImage);

ThresholdImage = SegmentByThreshold(DistanceImage, 8);
          
MarkerImage = SearchBlobs(ThresholdImage);

SegmentedImage = Watershed(Gradient, MarkerImage);

figure();

ColorMapLength = length(unique(SegmentedImage));

ShowImage(SegmentedImage, ...
          'Result of Watershed Transform', ...
          jetcolormap(ColorMapLength));

See Also

<< VarianceFilter IPD - Image Processing Design WriteImage >>