http://www.emgu.com
Implements one of the variants of watershed, non-parametric marker-based segmentation algorithm, described in [Meyer92] Before passing the image to the function, user has to outline roughly the desired regions in the image markers with positive (>0) indices, i.e. every region is represented as one or more connected components with the pixel values 1, 2, 3 etc. Those components will be "seeds" of the future image regions. All the other pixels in markers, which relation to the outlined regions is not known and should be defined by the algorithm, should be set to 0's. On the output of the function, each pixel in markers is set to one of values of the "seed" components, or to -1 at boundaries between the regions.

Namespace: Emgu.CV
Assembly: Emgu.CV (in Emgu.CV.dll) Version: 2.4.2.1777 (2.4.2.1777)

Syntax

C#
public static void cvWatershed(
	IntPtr image,
	IntPtr markers
)
Visual Basic
Public Shared Sub cvWatershed ( _
	image As IntPtr, _
	markers As IntPtr _
)
Visual C++
public:
static void cvWatershed(
	IntPtr image, 
	IntPtr markers
)

Parameters

image
Type: System..::..IntPtr
The input 8-bit 3-channel image
markers
Type: System..::..IntPtr
The input/output Int32 depth single-channel image (map) of markers.

Remarks

Note, that it is not necessary that every two neighbor connected components are separated by a watershed boundary (-1's pixels), for example, in case when such tangent components exist in the initial marker image.

See Also