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