ClassesClassesClassesClasses | | | | Operators

watersheds_thresholdwatersheds_thresholdWatershedsThresholdwatersheds_thresholdWatershedsThresholdWatershedsThreshold (Operator)

Name

watersheds_thresholdwatersheds_thresholdWatershedsThresholdwatersheds_thresholdWatershedsThresholdWatershedsThreshold — Extract watershed basins from an image using a threshold.

Signature

watersheds_threshold(Image : Basins : Threshold : )

Herror watersheds_threshold(const Hobject Image, Hobject* Basins, const Hlong Threshold)

Herror T_watersheds_threshold(const Hobject Image, Hobject* Basins, const Htuple Threshold)

Herror watersheds_threshold(Hobject Image, Hobject* Basins, const HTuple& Threshold)

HRegionArray HImage::WatershedsThreshold(const HTuple& Threshold) const

void WatershedsThreshold(const HObject& Image, HObject* Basins, const HTuple& Threshold)

HRegion HImage::WatershedsThreshold(const HTuple& Threshold) const

HRegion HImage::WatershedsThreshold(Hlong Threshold) const

void HOperatorSetX.WatershedsThreshold(
[in] IHUntypedObjectX* Image, [out] IHUntypedObjectX*Basins, [in] VARIANT Threshold)

IHRegionX* HImageX.WatershedsThreshold([in] VARIANT Threshold)

static void HOperatorSet.WatershedsThreshold(HObject image, out HObject basins, HTuple threshold)

HRegion HImage.WatershedsThreshold(HTuple threshold)

HRegion HImage.WatershedsThreshold(int threshold)

Description

The operator watersheds_thresholdwatersheds_thresholdWatershedsThresholdwatersheds_thresholdWatershedsThresholdWatershedsThreshold segments regions (basins) that are separated from each other by a watershed that has a height of at least ThresholdThresholdThresholdThresholdThresholdthreshold.

In the first step, watersheds_thresholdwatersheds_thresholdWatershedsThresholdwatersheds_thresholdWatershedsThresholdWatershedsThreshold computes the watersheds without applying a threshold, resulting in the same basins that would be obtained when calling watershedswatershedsWatershedswatershedsWatershedsWatersheds (for more details please refer to the description of watershedswatershedsWatershedswatershedsWatershedsWatersheds). In the second step, the basins are successively merged if they are separated by a watershed that is smaller than ThresholdThresholdThresholdThresholdThresholdthreshold. Let B1 and B2 be the minimum gray values of two neighboring basins and W the minimum gray value of the watershed that separates the two basins. The watershed is eliminated and the two basins are merged if

max{W-B1,W-B2} < ThresholdThresholdThresholdThresholdThresholdthreshold.

The thus obtained basins are returned in BasinsBasinsBasinsBasinsBasinsbasins.

If ThresholdThresholdThresholdThresholdThresholdthreshold is set to 0, watersheds_thresholdwatersheds_thresholdWatershedsThresholdwatersheds_thresholdWatershedsThresholdWatershedsThreshold is comparable to watershedswatershedsWatershedswatershedsWatershedsWatersheds except that no watersheds but only expanded basins are returned. If ThresholdThresholdThresholdThresholdThresholdthreshold is set to the maximum gray value range of ImageImageImageImageImageimage then no two basins are separated by a watershed exceeding ThresholdThresholdThresholdThresholdThresholdthreshold, and hence, BasinsBasinsBasinsBasinsBasinsbasins will contain only one region.

Parallelization

Parameters

ImageImageImageImageImageimage (input_object)  singlechannelimage objectHImageHImageHImageHImageXHobject (byte / uint2 / real)

Image to be segmented.

BasinsBasinsBasinsBasinsBasinsbasins (output_object)  region-array objectHRegionHRegionHRegionArrayHRegionXHobject *

Segments found (dark basins).

ThresholdThresholdThresholdThresholdThresholdthreshold (input_control)  number HTupleHTupleHTupleVARIANTHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double) (Hlong / double) (Hlong / double)

Threshold for the watersheds.

Default value: 10

Suggested values: 0, 5, 10, 20, 30, 50

Restriction: Threshold >= 0

Result

watershedswatershedsWatershedswatershedsWatershedsWatersheds always returns 2 (H_MSG_TRUE). The behavior with respect to the input image and output regions can be determined by setting the values of the flags 'no_object_result'"no_object_result""no_object_result""no_object_result""no_object_result""no_object_result", 'empty_region_result'"empty_region_result""empty_region_result""empty_region_result""empty_region_result""empty_region_result", and 'store_empty_region'"store_empty_region""store_empty_region""store_empty_region""store_empty_region""store_empty_region" with set_systemset_systemSetSystemset_systemSetSystemSetSystem. If necessary, an exception is raised.

Possible Predecessors

binomial_filterbinomial_filterBinomialFilterbinomial_filterBinomialFilterBinomialFilter, gauss_imagegauss_imageGaussImagegauss_imageGaussImageGaussImage, smooth_imagesmooth_imageSmoothImagesmooth_imageSmoothImageSmoothImage, invert_imageinvert_imageInvertImageinvert_imageInvertImageInvertImage

Possible Successors

expand_regionexpand_regionExpandRegionexpand_regionExpandRegionExpandRegion, select_shapeselect_shapeSelectShapeselect_shapeSelectShapeSelectShape, reduce_domainreduce_domainReduceDomainreduce_domainReduceDomainReduceDomain, openingopeningOpeningopeningOpeningOpening

Alternatives

watershedswatershedsWatershedswatershedsWatershedsWatersheds, pouringpouringPouringpouringPouringPouring

Module

Foundation


ClassesClassesClassesClasses | | | | Operators