rank_regionrank_regionRankRegionRankRegionrank_region (Operator)
Name
rank_regionrank_regionRankRegionRankRegionrank_region — Rank operator for regions.
Signature
Description
rank_regionrank_regionRankRegionRankRegionRankRegionrank_region calculates the binary rank operator. A filter
mask of size HeightHeightHeightHeightheightheight x WidthWidthWidthWidthwidthwidth) is used. In the
process, for each point in the region the number of points of
RegionRegionRegionRegionregionregion lying within the filter mask are counted. If this
number is greater or equal to NumberNumberNumberNumbernumbernumber, the current point
is added to the output region. If
is chosen, the median operator is obtained.
Attention
For HeightHeightHeightHeightheightheight and WidthWidthWidthWidthwidthwidth only odd values > 3 are
valid. If invalid parameters are chosen they are converted
automatically (without raising an exception) to the next larger odd
values.
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
RegionRegionRegionRegionregionregion (input_object) region(-array) → objectHRegionHObjectHRegionHobject
Region(s) to be transformed.
RegionCountRegionCountRegionCountRegionCountregionCountregion_count (output_object) region(-array) → objectHRegionHObjectHRegionHobject *
Resulting region(s).
WidthWidthWidthWidthwidthwidth (input_control) extent.x → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Width of the filter mask.
Default:
15
Suggested values:
3, 5, 7, 9, 11, 13, 15, 17, 19, 21
Value range:
3
≤
Width
Width
Width
Width
width
width
≤
511 (lin)
Minimum increment:
2
Recommended increment:
2
Restriction:
Width >= 3 && odd(Width)
HeightHeightHeightHeightheightheight (input_control) extent.y → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Height of the filter mask.
Default:
15
Suggested values:
3, 5, 7, 9, 11, 13, 15, 17, 19, 21
Value range:
3
≤
Height
Height
Height
Height
height
height
≤
511 (lin)
Minimum increment:
2
Recommended increment:
2
Restriction:
Height >= 3 && odd(Height)
NumberNumberNumberNumbernumbernumber (input_control) integer → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Minimum number of points lying within the filter mask.
Default:
70
Suggested values:
5, 10, 20, 40, 60, 80, 90, 120, 150, 200
Value range:
1
≤
Number
Number
Number
Number
number
number
≤
1000 (lin)
Minimum increment:
1
Recommended increment:
10
Restriction:
Number > 0
Example (HDevelop)
read_image(Image,'monkey')
mean_image(Image,Mean,5,5)
dyn_threshold(Image,Mean,Points,25,'light')
rank_region(Points,Textur,15,15,30)
gen_circle(Mask,10,10,3)
opening(Textur,Mask,Seg)
Example (C)
read_image(&Image,"monkey");
mean_image(Image,&Mean,5,5);
dyn_threshold(Image,Mean,&Points,25,"light");
rank_region(Points,Textur,15,15,30);
gen_circle(&Mask,10,10,3);
opening(Textur,Mask,&Seg);
Example (HDevelop)
read_image(Image,'monkey')
mean_image(Image,Mean,5,5)
dyn_threshold(Image,Mean,Points,25,'light')
rank_region(Points,Textur,15,15,30)
gen_circle(Mask,10,10,3)
opening(Textur,Mask,Seg)
Example (HDevelop)
read_image(Image,'monkey')
mean_image(Image,Mean,5,5)
dyn_threshold(Image,Mean,Points,25,'light')
rank_region(Points,Textur,15,15,30)
gen_circle(Mask,10,10,3)
opening(Textur,Mask,Seg)
Example (HDevelop)
read_image(Image,'monkey')
mean_image(Image,Mean,5,5)
dyn_threshold(Image,Mean,Points,25,'light')
rank_region(Points,Textur,15,15,30)
gen_circle(Mask,10,10,3)
opening(Textur,Mask,Seg)
Complexity
Let F be the area of the input region. Then the runtime
complexity is O(F * 8).
Result
rank_regionrank_regionRankRegionRankRegionRankRegionrank_region returns 2 (
H_MSG_TRUE)
if all parameters are correct. The
behavior in case of empty input (no regions given) can be set via
set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)
and the behavior in case of an empty input region via
set_system('empty_region_result',<Result>)set_system("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)set_system("empty_region_result",<Result>).
If necessary, an exception is raised.
Possible Predecessors
thresholdthresholdThresholdThresholdThresholdthreshold,
connectionconnectionConnectionConnectionConnectionconnection,
regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowingregiongrowing,
pouringpouringPouringPouringPouringpouring,
class_ndim_normclass_ndim_normClassNdimNormClassNdimNormClassNdimNormclass_ndim_norm
Possible Successors
select_shapeselect_shapeSelectShapeSelectShapeSelectShapeselect_shape,
disp_regiondisp_regionDispRegionDispRegionDispRegiondisp_region
Alternatives
closing_rectangle1closing_rectangle1ClosingRectangle1ClosingRectangle1ClosingRectangle1closing_rectangle1,
expand_regionexpand_regionExpandRegionExpandRegionExpandRegionexpand_region
See also
rank_imagerank_imageRankImageRankImageRankImagerank_image,
mean_imagemean_imageMeanImageMeanImageMeanImagemean_image
Module
Foundation