Name
dual_rank dual_rank DualRank dual_rank DualRank DualRank — Opening, Median und Closing mit Kreis- oder Rechteckmaske.
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 )
dual_rank dual_rank DualRank dual_rank DualRank DualRank führt eine nichtlineare Transformation der
Grauwerte aller Eingabebilder (Image Image Image Image Image image ) durch. Als
strukturierende Elemente können Kreise oder Quadrate verwendet
werden. dual_rank dual_rank DualRank dual_rank DualRank DualRank ist die Hintereinanderschaltung von
zwei Aufrufen von rank_image rank_image RankImage rank_image RankImage RankImage . Bei dem ersten Aufruf wird
der Ranggrauwert mit dem angegeben Rang (ModePercent ModePercent ModePercent ModePercent ModePercent modePercent )
berechnet. Das Ergebnis dieser Berechnung ist die Eingabe zu einem
erneuten Aufruf von rank_image rank_image RankImage rank_image RankImage RankImage , wobei diesmal der Rangwert
100-ModePercent ModePercent ModePercent ModePercent ModePercent modePercent verwendet wird.
Es kann bei der Filterung zwischen verschiedenen Randbehandlungen
(Margin Margin Margin Margin Margin margin ) gewählt werden:
Grauwert Bildpunkte außerhalb der Bildränder
werden als konstant (mit dem angegebenen
Grauwert) angenommen.
'continued' Fortsetzung der Randpunkte.
'cyclic' zyklische Fortsetzung der Bildränder.
'mirrored' Spiegelung der Bildpunkte an den Bildrändern.
Die Berechnung einer Rangfilterung erfolgt nach folgendem Schema:
Die angebene Maske wird so über das zu filterndes Bild geschoben,
dass der Schwerpunkt der Maske alle Bildpunkte einmal berührt.
Für jeden solchen Bildpunkt werden alle Nachbarpunkte, die von der
Maske überdeckt werden, bzgl. ihrer Grauwerte aufsteigend
sortiert. Jede solche sortierte Sequenz von Grauwerten enthält
somit genau so viele Grauwerte, wie die Maske Bildpunkte hat. Aus
diesen Sequenzen wird das n-größte Element (=
ModePercent ModePercent ModePercent ModePercent ModePercent modePercent , Rangwert von 0...100 in Prozent)
ausgewählt und als Ergebnisgrauwert bei dem jeweiligen Ausgabebild
eingetragen.
Hat ModePercent ModePercent ModePercent ModePercent ModePercent modePercent den Wert 0, so erhält man ein
Grauwert-Opening (gray_opening gray_opening GrayOpening gray_opening GrayOpening GrayOpening ). Setzt man
ModePercent ModePercent ModePercent ModePercent ModePercent modePercent auf 50, so erhält man den bekannten
Medianfilter (median_image median_image MedianImage median_image MedianImage MedianImage ), zweimal hintereinander
angewandt. Bei dem Wert 100 berechnet dual_rank dual_rank DualRank dual_rank DualRank DualRank das
Grauwert-Closing (gray_closing gray_closing GrayClosing gray_closing GrayClosing GrayClosing ). Mit den übrigen
Parametern kann fließend zwischen zwischen diesen Operationen
„überblendet“ werden.
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Automatisch parallelisiert auf Tupelebene.
Automatisch parallelisiert auf Kanalebene.
Automatisch parallelisiert auf Domainebene.
Form der Maske.
Defaultwert:
'circle'
"circle"
"circle"
"circle"
"circle"
"circle"
Werteliste: 'circle' "circle" "circle" "circle" "circle" "circle" , 'square' "square" "square" "square" "square" "square"
Radius der Filtermaske.
Defaultwert: 1
Wertevorschläge: 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 15, 19, 25, 31, 39, 47, 59
Typischer Wertebereich: 1
≤
Radius
Radius
Radius
Radius
Radius
radius
≤
101
Minimale Schrittweite: 1
Empfohlene Schrittweite: 2
Modus des Filters: Bei 0 erhält man ein
Grauwert-Opening, bei 50 einen Median und bei
100 ein Grauwert-Closing.
Defaultwert: 10
Wertevorschläge: 0, 2, 5, 10, 15, 20, 40, 50, 60, 80, 85, 90, 95, 98, 100
Typischer Wertebereich: 0
≤
ModePercent
ModePercent
ModePercent
ModePercent
ModePercent
modePercent
≤
100
Minimale Schrittweite: 1
Empfohlene Schrittweite: 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)
Randbehandlung.
Defaultwert:
'mirrored'
"mirrored"
"mirrored"
"mirrored"
"mirrored"
"mirrored"
Wertevorschläge: '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)
Pro Bildpunkt:
mit F =
Fläche des strukturierenden Elementes.
Sind die Parameterwerte korrekt, dann liefert dual_rank dual_rank DualRank dual_rank DualRank DualRank
den Wert 2 (H_MSG_TRUE). Das Verhalten bei leerer Eingabe (keine
Eingabebilder vorhanden) lässt sich mittels
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>) festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
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