Name
regiongrowingregiongrowingRegiongrowingRegiongrowing — Segment an image using regiongrowing.
Herror regiongrowing(const Hobject Image, Hobject* Regions, const Hlong Row, const Hlong Column, double Tolerance, const Hlong MinSize)
Herror T_regiongrowing(const Hobject Image, Hobject* Regions, const Htuple Row, const Htuple Column, const Htuple Tolerance, const Htuple MinSize)
void Regiongrowing(const HObject& Image, HObject* Regions, const HTuple& Row, const HTuple& Column, const HTuple& Tolerance, const HTuple& MinSize)
HRegion HImage::Regiongrowing(Hlong Row, Hlong Column, const HTuple& Tolerance, Hlong MinSize) const
HRegion HImage::Regiongrowing(Hlong Row, Hlong Column, double Tolerance, Hlong MinSize) const
static void HOperatorSet.Regiongrowing(HObject image, out HObject regions, HTuple row, HTuple column, HTuple tolerance, HTuple minSize)
HRegion HImage.Regiongrowing(int row, int column, HTuple tolerance, int minSize)
HRegion HImage.Regiongrowing(int row, int column, double tolerance, int minSize)
regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowing segments images into regions of the same
intensity --- rastered into rectangles of size Row * Column.
In order to decide
whether two adjacent rectangles belong to the same region only the
gray value of their center points is used. If the gray value
difference is less then or equal to ToleranceToleranceToleranceTolerancetolerance the rectangles
are merged into one region.
If g_{1} and g_{2} are two gray values to be examined, they are
merged into the same region if:
For images of type 'cyclic', the following formulas are used:
For rectangles larger than one pixel, usually the images should be
smoothed with a lowpass filter with a size of at least Row * Column before calling
regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowing (so that the gray values at the centers
of the rectangles are “representative” for the whole rectangle).
If the image contains little noise and the rectangles are small, the
smoothing can be omitted in many cases.
The resulting regions are collections of rectangles of the chosen
size Row * Column.
Only regions containing at least MinSizeMinSizeMinSizeMinSizeminSize points are
returned.
Regiongrowing is a very fast operation, and thus suited for
time-critical applications.
ColumnColumnColumnColumncolumn and RowRowRowRowrow are automatically converted to
odd values if necessary.
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Automatically parallelized on tuple level.
Vertical distance between tested pixels (height of the
raster).
Default value: 3
Suggested values: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21
Typical range of values: 1
≤
Row
Row
Row
Row
row
≤
99 (lin)
Minimum increment: 2
Recommended increment: 2
Restriction: Row >= 1 && odd(Row)
Horizontal distance between tested pixels (height of the
raster).
Default value: 3
Suggested values: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21
Typical range of values: 1
≤
Column
Column
Column
Column
column
≤
99 (lin)
Minimum increment: 2
Recommended increment: 2
Restriction: Column >= 1 && odd(Column)
Points with a gray value difference less then or equal
to tolerance are accumulated into the same object.
Default value: 6.0
Suggested values: 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 12.0, 14.0, 18.0, 25.0
Typical range of values: 1.0
≤
Tolerance
Tolerance
Tolerance
Tolerance
tolerance
≤
127.0 (lin)
Minimum increment: 0.01
Recommended increment: 1.0
Restriction: 0 <= Tolerance && Tolerance < 127
Minimum size of the output regions.
Default value: 100
Suggested values: 1, 5, 10, 20, 50, 100, 200, 500, 1000
Typical range of values: 1
≤
MinSize
MinSize
MinSize
MinSize
minSize
Minimum increment: 1
Recommended increment: 5
Restriction: MinSize >= 1
read_image(Image,'fabrik')
mean_image(Image,Mean,Row,Column)
regiongrowing(Mean,Result,Row,Column,6.0,100)
read_image(&Image,"fabrik");
mean_image(Image,&Mean,Row,Column);
regiongrowing(Mean,&Result,Row,Column,6,100);
read_image(Image,'fabrik')
mean_image(Image,Mean,Row,Column)
regiongrowing(Mean,Result,Row,Column,6.0,100)
read_image(Image,'fabrik')
mean_image(Image,Mean,Row,Column)
regiongrowing(Mean,Result,Row,Column,6.0,100)
read_image(Image,'fabrik')
mean_image(Image,Mean,Row,Column)
regiongrowing(Mean,Result,Row,Column,6.0,100)
Let N be the number of found regions and M the number of points
in one of these regions. Then the runtime complexity is
O(N * log(M) * M).
regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowing returns 2 (H_MSG_TRUE) if all parameters are
correct. 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_systemSetSystemSetSystemSetSystem.
If necessary, an exception is raised.
binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilter,
mean_imagemean_imageMeanImageMeanImageMeanImage,
gauss_filtergauss_filterGaussFilterGaussFilterGaussFilter,
smooth_imagesmooth_imageSmoothImageSmoothImageSmoothImage,
median_imagemedian_imageMedianImageMedianImageMedianImage,
anisotropic_diffusionanisotropic_diffusionAnisotropicDiffusionAnisotropicDiffusionAnisotropicDiffusion
select_shapeselect_shapeSelectShapeSelectShapeSelectShape,
reduce_domainreduce_domainReduceDomainReduceDomainReduceDomain,
select_grayselect_graySelectGraySelectGraySelectGray
regiongrowing_nregiongrowing_nRegiongrowingNRegiongrowingNRegiongrowingN,
regiongrowing_meanregiongrowing_meanRegiongrowingMeanRegiongrowingMeanRegiongrowingMean,
label_to_regionlabel_to_regionLabelToRegionLabelToRegionLabelToRegion
Foundation