Name
dual_rank dual_rank DualRank dual_rank DualRank DualRank — Opening, Median and Closing with circle or rectangle mask.
Herror dual_rank (const Hobject Image , Hobject* ImageRank , const char* MaskType , const Hlong Radius , const Hlong ModePercent , const char* Margin )
Herror T_dual_rank (const Hobject Image , Hobject* ImageRank , const Htuple MaskType , const Htuple Radius , const Htuple ModePercent , const Htuple Margin )
Herror dual_rank (Hobject Image , Hobject* ImageRank , const HTuple& MaskType , const HTuple& Radius , const HTuple& ModePercent , const HTuple& Margin )
HImage HImage ::DualRank (const HTuple& MaskType , const HTuple& Radius , const HTuple& ModePercent , const HTuple& Margin ) const
HImageArray HImageArray ::DualRank (const HTuple& MaskType , const HTuple& Radius , const HTuple& ModePercent , const HTuple& Margin ) const
void DualRank (const HObject& Image , HObject* ImageRank , const HTuple& MaskType , const HTuple& Radius , const HTuple& ModePercent , const HTuple& Margin )
HImage HImage ::DualRank (const HString& MaskType , Hlong Radius , Hlong ModePercent , const HTuple& Margin ) const
HImage HImage ::DualRank (const HString& MaskType , Hlong Radius , Hlong ModePercent , const HString& Margin ) const
HImage HImage ::DualRank (const char* MaskType , Hlong Radius , Hlong ModePercent , const char* Margin ) const
static void HOperatorSet .DualRank (HObject image , out HObject imageRank , HTuple maskType , HTuple radius , HTuple modePercent , HTuple margin )
HImage HImage .DualRank (string maskType , int radius , int modePercent , HTuple margin )
HImage HImage .DualRank (string maskType , int radius , int modePercent , string margin )
The operator dual_rank dual_rank DualRank dual_rank DualRank DualRank carries out a non-linear
transformation of the gray values of all input images
(Image Image Image Image Image image ). Circles or squares can be used as structuring
elements. The operator dual_rank dual_rank DualRank dual_rank DualRank DualRank effects two
consecutive calls of rank_image rank_image RankImage rank_image RankImage RankImage . At the first call the
range gray value is calculated with the indicated range
(ModePercent ModePercent ModePercent ModePercent ModePercent modePercent ). The result of this calculation is the
input of a further call of rank_image rank_image RankImage rank_image RankImage RankImage , this time using the
range value 100-ModePercent ModePercent ModePercent ModePercent ModePercent modePercent .
When filtering different parameters for border treatment
(Margin Margin Margin Margin Margin margin ) can be chosen:
gray value Pixels outside of the image edges
are assumed to be constant (with the
indicated gray value).
'continued' Continuation of edge pixels.
'cyclic' Cyclic continuation of image edges.
'mirrored' Reflection of pixels at the image edges.
A range filtering is calculated according to the following scheme:
The indicated mask is put over the image to be filtered in such a
way that the center of the mask touches all pixels once. For each
of these pixels all neighboring pixels covered by the mask are
sorted in an ascending sequence corresponding to their gray values.
Each sorted sequence of gray values contains the same number of gray
values like the mask has image points. The n-th highest element, (=
ModePercent ModePercent ModePercent ModePercent ModePercent modePercent , rank values between 0...100 in
percent) is selected and set as result gray value in the
corresponding result image.
If ModePercent ModePercent ModePercent ModePercent ModePercent modePercent is 0, then the operator equals to the
gray value opening (gray_opening gray_opening GrayOpening gray_opening GrayOpening GrayOpening ). If
ModePercent ModePercent ModePercent ModePercent ModePercent modePercent is 50, the operator results in the median
filter, which is applied twice (median_image median_image MedianImage median_image MedianImage MedianImage ). The
ModePercent ModePercent ModePercent ModePercent ModePercent modePercent 100 in dual_rank dual_rank DualRank dual_rank DualRank DualRank means that it
calculates the gray value closing (gray_closing gray_closing GrayClosing gray_closing GrayClosing GrayClosing ).
Choosing parameter values inside this range results in a smooth
transformation of these operators.
Note that filter operators may return unexpected results if
an image with a reduced domain is used as input. Please refer to the
chapter Filters .
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Automatically parallelized on tuple level.
Automatically parallelized on channel level.
Automatically parallelized on domain level.
Shape of the mask.
Default value:
'circle'
"circle"
"circle"
"circle"
"circle"
"circle"
List of values: 'circle' "circle" "circle" "circle" "circle" "circle" , 'square' "square" "square" "square" "square" "square"
Radius of the filter mask.
Default value: 1
Suggested values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 15, 19, 25, 31, 39, 47, 59
Typical range of values: 1
≤
Radius
Radius
Radius
Radius
Radius
radius
≤
101
Minimum increment: 1
Recommended increment: 2
Filter Mode: 0 corresponds to a gray value
opening , 50 corresponds to a median and 100 to
a gray values closing.
Default value: 10
Suggested values: 0, 2, 5, 10, 15, 20, 40, 50, 60, 80, 85, 90, 95, 98, 100
Typical range of values: 0
≤
ModePercent
ModePercent
ModePercent
ModePercent
ModePercent
modePercent
≤
100
Minimum increment: 1
Recommended increment: 2
Margin Margin Margin Margin Margin margin (input_control) string → HTuple HTuple HTuple VARIANT Htuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double) (BSTR / Hlong / double) (char* / Hlong / double)
Border treatment.
Default value:
'mirrored'
"mirrored"
"mirrored"
"mirrored"
"mirrored"
"mirrored"
Suggested values: 'mirrored' "mirrored" "mirrored" "mirrored" "mirrored" "mirrored" , 'cyclic' "cyclic" "cyclic" "cyclic" "cyclic" "cyclic" , 'continued' "continued" "continued" "continued" "continued" "continued" , 0, 30, 60, 90, 120, 150, 180, 210, 240, 255
read_image(Image,'fabrik')
dual_rank(Image,ImageOpening,'circle',10,10,'mirrored')
dev_display(ImageOpening)
read_image(&Image,"fabrik");
dual_rank(Image,&ImageOpening,"circle",10,10,"mirrored");
disp_image(ImageOpening,WindowHandle);
read_image(Image,'fabrik')
dual_rank(Image,ImageOpening,'circle',10,10,'mirrored')
dev_display(ImageOpening)
read_image(Image,'fabrik')
dual_rank(Image,ImageOpening,'circle',10,10,'mirrored')
dev_display(ImageOpening)
read_image(Image,'fabrik')
dual_rank(Image,ImageOpening,'circle',10,10,'mirrored')
dev_display(ImageOpening)
read_image(Image,'fabrik')
dual_rank(Image,ImageOpening,'circle',10,10,'mirrored')
dev_display(ImageOpening)
For each pixel:
with F =
area of the structuring element.
If the parameter values are correct the operator
dual_rank dual_rank DualRank dual_rank DualRank DualRank returns the value 2 (H_MSG_TRUE). The behavior in case
of empty input (no input images available) is set via the operator
set_system('no_object_result',<Result>) set_system("no_object_result",<Result>) SetSystem("no_object_result",<Result>) set_system("no_object_result",<Result>) SetSystem("no_object_result",<Result>) SetSystem("no_object_result",<Result>) .
If necessary an exception is raised.
read_image read_image ReadImage read_image ReadImage ReadImage
threshold threshold Threshold threshold Threshold Threshold ,
dyn_threshold dyn_threshold DynThreshold dyn_threshold DynThreshold DynThreshold ,
sub_image sub_image SubImage sub_image SubImage SubImage ,
regiongrowing regiongrowing Regiongrowing regiongrowing Regiongrowing Regiongrowing
rank_image rank_image RankImage rank_image RankImage RankImage ,
gray_closing gray_closing GrayClosing gray_closing GrayClosing GrayClosing ,
gray_opening gray_opening GrayOpening gray_opening GrayOpening GrayOpening ,
median_image median_image MedianImage median_image MedianImage MedianImage
gen_circle gen_circle GenCircle gen_circle GenCircle GenCircle ,
gen_rectangle1 gen_rectangle1 GenRectangle1 gen_rectangle1 GenRectangle1 GenRectangle1 ,
gray_erosion_rect gray_erosion_rect GrayErosionRect gray_erosion_rect GrayErosionRect GrayErosionRect ,
gray_dilation_rect gray_dilation_rect GrayDilationRect gray_dilation_rect GrayDilationRect GrayDilationRect ,
sigma_image sigma_image SigmaImage sigma_image SigmaImage SigmaImage
W. Eckstein, O. Munkelt
“Extracting Objects from Digital Terrain Model”
Remote Sensing and Reconstruction for Threedimensional Objects and Scenes,
SPIE Symposium on Optical Science, Engeneering, and Instrumentation,
July 1995, San Diego
Foundation