regiongrowing regiongrowing Regiongrowing Regiongrowing regiongrowing (Operator)
Name
regiongrowing regiongrowing Regiongrowing Regiongrowing regiongrowing
— Segment an image using regiongrowing.
Signature
Herror regiongrowing (const Hobject Image , Hobject* Regions , const Hlong RasterHeight , const Hlong RasterWidth , double Tolerance , const Hlong MinSize )
Herror T_regiongrowing (const Hobject Image , Hobject* Regions , const Htuple RasterHeight , const Htuple RasterWidth , const Htuple Tolerance , const Htuple MinSize )
void Regiongrowing (const HObject& Image , HObject* Regions , const HTuple& RasterHeight , const HTuple& RasterWidth , const HTuple& Tolerance , const HTuple& MinSize )
HRegion HImage ::Regiongrowing (Hlong RasterHeight , Hlong RasterWidth , const HTuple& Tolerance , Hlong MinSize ) const
HRegion HImage ::Regiongrowing (Hlong RasterHeight , Hlong RasterWidth , double Tolerance , Hlong MinSize ) const
static void HOperatorSet .Regiongrowing (HObject image , out HObject regions , HTuple rasterHeight , HTuple rasterWidth , HTuple tolerance , HTuple minSize )
HRegion HImage .Regiongrowing (int rasterHeight , int rasterWidth , HTuple tolerance , int minSize )
HRegion HImage .Regiongrowing (int rasterHeight , int rasterWidth , double tolerance , int minSize )
Description
regiongrowing regiongrowing Regiongrowing Regiongrowing Regiongrowing regiongrowing
segments images into regions of the same
intensity - rastered into rectangles of size RasterHeight RasterHeight RasterHeight RasterHeight rasterHeight raster_height
RasterWidth RasterWidth RasterWidth RasterWidth rasterWidth raster_width
. 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 Tolerance Tolerance Tolerance Tolerance tolerance tolerance
the rectangles
are merged into one region.
If
and
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 RasterHeight RasterHeight RasterHeight RasterHeight rasterHeight raster_height
RasterWidth RasterWidth RasterWidth RasterWidth rasterWidth raster_width
before calling regiongrowing regiongrowing Regiongrowing Regiongrowing Regiongrowing regiongrowing
(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 RasterHeight RasterHeight RasterHeight RasterHeight rasterHeight raster_height
RasterWidth RasterWidth RasterWidth RasterWidth rasterWidth raster_width
.
Only regions containing at least MinSize MinSize MinSize MinSize minSize min_size
points are
returned.
Regiongrowing is a very fast operation, and thus suited for
time-critical applications.
Attention
RasterWidth RasterWidth RasterWidth RasterWidth rasterWidth raster_width
and RasterHeight RasterHeight RasterHeight RasterHeight rasterHeight raster_height
are automatically converted to
odd values if necessary.
Execution Information
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Automatically parallelized on tuple level.
Parameters
Image Image Image Image image image
(input_object) singlechannelimage(-array) →
object HImage HObject HImage Hobject (byte / direction / cyclic / int1 / int2 / int4 / real)
Input image.
Regions Regions Regions Regions regions regions
(output_object) region-array →
object HRegion HObject HRegion Hobject *
Segmented regions.
RasterHeight RasterHeight RasterHeight RasterHeight rasterHeight raster_height
(input_control) extent.y →
HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
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
≤
RasterHeight
RasterHeight
RasterHeight
RasterHeight
rasterHeight
raster_height
≤
99
(lin)
Minimum increment: 2
Recommended increment: 2
Restriction: RasterHeight >= 1 && odd(RasterHeight)
RasterWidth RasterWidth RasterWidth RasterWidth rasterWidth raster_width
(input_control) extent.x →
HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
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
≤
RasterWidth
RasterWidth
RasterWidth
RasterWidth
rasterWidth
raster_width
≤
99
(lin)
Minimum increment: 2
Recommended increment: 2
Restriction: RasterWidth >= 1 && odd(RasterWidth)
Tolerance Tolerance Tolerance Tolerance tolerance tolerance
(input_control) number →
HTuple Union[int, float] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
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
tolerance
≤
127.0
(lin)
Minimum increment: 0.01
Recommended increment: 1.0
Restriction: 0 <= Tolerance && Tolerance < 127
MinSize MinSize MinSize MinSize minSize min_size
(input_control) integer →
HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
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
min_size
Minimum increment: 1
Recommended increment: 5
Restriction: MinSize >= 1
Example (HDevelop)
read_image(Image,'fabrik')
mean_image(Image,Mean,RasterHeight,RasterWidth)
regiongrowing(Mean,Result,RasterHeight,RasterWidth,6.0,100)
Example (C)
read_image(&Image,"fabrik");
mean_image(Image,&Mean,RasterHeight,RasterWidth);
regiongrowing(Mean,&Result,RasterHeight,RasterWidth,6,100);
Example (HDevelop)
read_image(Image,'fabrik')
mean_image(Image,Mean,RasterHeight,RasterWidth)
regiongrowing(Mean,Result,RasterHeight,RasterWidth,6.0,100)
Example (HDevelop)
read_image(Image,'fabrik')
mean_image(Image,Mean,RasterHeight,RasterWidth)
regiongrowing(Mean,Result,RasterHeight,RasterWidth,6.0,100)
Example (HDevelop)
read_image(Image,'fabrik')
mean_image(Image,Mean,RasterHeight,RasterWidth)
regiongrowing(Mean,Result,RasterHeight,RasterWidth,6.0,100)
Complexity
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).
Result
regiongrowing regiongrowing Regiongrowing Regiongrowing Regiongrowing regiongrowing
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" "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_system set_system SetSystem SetSystem SetSystem set_system
.
If necessary, an exception is raised.
Possible Predecessors
binomial_filter binomial_filter BinomialFilter BinomialFilter BinomialFilter binomial_filter
,
mean_image mean_image MeanImage MeanImage MeanImage mean_image
,
gauss_filter gauss_filter GaussFilter GaussFilter GaussFilter gauss_filter
,
smooth_image smooth_image SmoothImage SmoothImage SmoothImage smooth_image
,
median_image median_image MedianImage MedianImage MedianImage median_image
,
anisotropic_diffusion anisotropic_diffusion AnisotropicDiffusion AnisotropicDiffusion AnisotropicDiffusion anisotropic_diffusion
Possible Successors
select_shape select_shape SelectShape SelectShape SelectShape select_shape
,
reduce_domain reduce_domain ReduceDomain ReduceDomain ReduceDomain reduce_domain
,
select_gray select_gray SelectGray SelectGray SelectGray select_gray
Alternatives
regiongrowing_n regiongrowing_n RegiongrowingN RegiongrowingN RegiongrowingN regiongrowing_n
,
regiongrowing_mean regiongrowing_mean RegiongrowingMean RegiongrowingMean RegiongrowingMean regiongrowing_mean
,
label_to_region label_to_region LabelToRegion LabelToRegion LabelToRegion label_to_region
Module
Foundation