Emgu CV Library Documentation
cvWatershed Method (image, markers)
NamespacesEmgu.CVCvInvokecvWatershed(IntPtr, IntPtr)

www.emgu.com/wiki
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.
Declaration Syntax
C#Visual BasicVisual C++
public static void cvWatershed(
	IntPtr image,
	IntPtr markers
)
Public Shared Sub cvWatershed ( _
	image As IntPtr, _
	markers As IntPtr _
)
public:
static void cvWatershed(
	IntPtr image, 
	IntPtr markers
)
Parameters
image (IntPtr)
The input 8-bit 3-channel image
markers (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.

Assembly: Emgu.CV (Module: Emgu.CV) Version: 1.5.0.0 (1.5.0.0)