code: public static <T extends ImageBase<T>>ImageSuperpixels<T>
  	watershed( @Nullable ConfigWatershed config , ImageType<T> imageType )
  	{
  		if( config == null )
  			config = new ConfigWatershed();
  
  		WatershedVincentSoille1991 watershed = FactorySegmentationAlg.watershed(config.connectRule);
  
  		Watershed_to_ImageSuperpixels ret = new Watershed_to_ImageSuperpixels<>(watershed, config.minimumRegionSize, config.connectRule);
  		ret.setImageType(imageType);
  		return ret;
  	}
docs: Creates an instance of {@link WatershedVincentSoille1991}.  Watershed works better when initial seeds
  are provided.  In this adaptation of watershed to {@link boofcv.abst.segmentation.ImageSuperpixels} only the more basic algorithm
  is used where each local minima is a region, which causes over segmentation.  Watershed also only can process
  gray scale U8 images.  All other image types are converted into that format.
  
  @see WatershedVincentSoille1991
  
  @param config Configuration.  If null default is used.
  @param <T> Image type
  @return new instance of {@link ImageSuperpixels}