label_to_regionlabel_to_regionLabelToRegionLabelToRegionlabel_to_region (Operator)

Name

label_to_regionlabel_to_regionLabelToRegionLabelToRegionlabel_to_region — Extract regions with equal gray values from an image.

Signature

label_to_region(LabelImage : Regions : : )

Herror label_to_region(const Hobject LabelImage, Hobject* Regions)

Herror T_label_to_region(const Hobject LabelImage, Hobject* Regions)

void LabelToRegion(const HObject& LabelImage, HObject* Regions)

HRegion HImage::LabelToRegion() const

static void HOperatorSet.LabelToRegion(HObject labelImage, out HObject regions)

HRegion HImage.LabelToRegion()

def label_to_region(label_image: HObject) -> HObject

Description

label_to_regionlabel_to_regionLabelToRegionLabelToRegionlabel_to_region segments an image into regions of equal gray value. One output region is generated for each gray value occurring in the image. This is similar to calling thresholdthresholdThresholdThresholdthreshold multiple times, and accumulating the results with concat_objconcat_objConcatObjConcatObjconcat_obj. Another related operator is regiongrowingregiongrowingRegiongrowingRegiongrowingregiongrowing. However, label_to_regionlabel_to_regionLabelToRegionLabelToRegionlabel_to_region does not perform a connectionconnectionConnectionConnectionconnection operation on the resulting regions, i.e., they may be disconnected. A typical application of label_to_regionlabel_to_regionLabelToRegionLabelToRegionlabel_to_region is the segmentation of label images, hence its name.

The number of output regions is limited by the system parameter 'max_outp_obj_par'"max_outp_obj_par""max_outp_obj_par""max_outp_obj_par""max_outp_obj_par", which can be read via get_system(::'max_outp_obj_par':<number>)get_system("max_outp_obj_par",<number>)GetSystem("max_outp_obj_par",<number>)GetSystem("max_outp_obj_par",<number>)get_system("max_outp_obj_par",<number>).

Attention

label_to_regionlabel_to_regionLabelToRegionLabelToRegionlabel_to_region is not implemented for images of type real. The input images must not contain negative gray values.

Execution Information

Parameters

LabelImageLabelImageLabelImagelabelImagelabel_image (input_object)  singlechannelimage(-array) objectHImageHObjectHObjectHobject (byte / int2 / int4 / int8)

Label image.

RegionsRegionsRegionsregionsregions (output_object)  region-array objectHRegionHObjectHObjectHobject *

Regions having a constant gray value.

Complexity

Let x1 be the minimum x-coordinate, x2 the maximum x-coordinate, y1 be the minimum y-coordinate, and y2 the maximum y-coordinate of a particular gray value. Furthermore, let N be the number of different gray values in the image. Then the runtime complexity is O(N * (x2 - x1 + 1) * (y2 - y1 + 1))

Result

label_to_regionlabel_to_regionLabelToRegionLabelToRegionlabel_to_region returns 2 ( H_MSG_TRUE) if the gray values lie within a correct range. The behavior with respect to the input images 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", '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" with set_systemset_systemSetSystemSetSystemset_system. If necessary, an exception is raised.

Possible Predecessors

min_max_graymin_max_grayMinMaxGrayMinMaxGraymin_max_gray, sobel_ampsobel_ampSobelAmpSobelAmpsobel_amp, binomial_filterbinomial_filterBinomialFilterBinomialFilterbinomial_filter, gauss_filtergauss_filterGaussFilterGaussFiltergauss_filter, reduce_domainreduce_domainReduceDomainReduceDomainreduce_domain, diff_of_gaussdiff_of_gaussDiffOfGaussDiffOfGaussdiff_of_gauss

Possible Successors

connectionconnectionConnectionConnectionconnection, dilation1dilation1Dilation1Dilation1dilation1, erosion1erosion1Erosion1Erosion1erosion1, openingopeningOpeningOpeningopening, closingclosingClosingClosingclosing, rank_regionrank_regionRankRegionRankRegionrank_region, shape_transshape_transShapeTransShapeTransshape_trans, skeletonskeletonSkeletonSkeletonskeleton

See also

thresholdthresholdThresholdThresholdthreshold, concat_objconcat_objConcatObjConcatObjconcat_obj, regiongrowingregiongrowingRegiongrowingRegiongrowingregiongrowing, region_to_labelregion_to_labelRegionToLabelRegionToLabelregion_to_label

Module

Foundation