robertsrobertsRobertsRobertsroberts (Operator)
Name
robertsrobertsRobertsRobertsroberts — Kantendetektion mit dem Roberts-Filter.
Signatur
Beschreibung
robertsrobertsRobertsRobertsroberts berechnet die erste Ableitung der
Grauwertdaten und wird als Kantenfilter eingesetzt. Legt man
folgende Maske zugrunde,
A B
C D
dann leiten sich die verschiedenen Filtertypen wie folgt ab:
'roberts_max' max(| A - D |,| B - C |)
'gradient_max' max(| A + B - (C + D)|,| A + C - (B + D)|)
'gradient_sum' |A + B - (C + D)| + |A + C - (B + D)|
Tritt ein Überlauf ein, so werden die Werte beschnitten. Das
Ergebnis der Berechnung wird in dem Pixel mit den Koordinaten von
"D" abgelegt.
Achtung
Beachten Sie, dass Filteroperatoren eventuell unerwartete Resultate
ausgeben, wenn ein Bild mit einer reduzierten Domäne als Input übergeben
wird. Weitere Informationen können im Kapitel Filter gefunden
werden.
Ausführungsinformationen
- 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.
Parameter
ImageImageImageimageimage (input_object) (multichannel-)image(-array) → objectHImageHObjectHObjectHobject (byte / int2 / uint2)
Eingabebilder.
ImageRobertsImageRobertsImageRobertsimageRobertsimage_roberts (output_object) (multichannel-)image(-array) → objectHImageHObjectHObjectHobject * (byte / int2 / uint2)
Gefilterte Ausgabebilder.
FilterTypeFilterTypeFilterTypefilterTypefilter_type (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Filtertyp.
Default:
'gradient_sum'
"gradient_sum"
"gradient_sum"
"gradient_sum"
"gradient_sum"
Werteliste:
'gradient_max'"gradient_max""gradient_max""gradient_max""gradient_max", 'gradient_sum'"gradient_sum""gradient_sum""gradient_sum""gradient_sum", 'roberts_max'"roberts_max""roberts_max""roberts_max""roberts_max"
Beispiel (HDevelop)
read_image(Image,'fabrik')
roberts(Image,Roberts,'roberts_max')
threshold(Roberts,Margin,128,255)
Beispiel (C)
read_image(&Image,"fabrik");
roberts(Image,&Roberts,"roberts_max");
threshold(Roberts,&Margin,128.0,255.0);
Beispiel (HDevelop)
read_image(Image,'fabrik')
roberts(Image,Roberts,'roberts_max')
threshold(Roberts,Margin,128,255)
Beispiel (HDevelop)
read_image(Image,'fabrik')
roberts(Image,Roberts,'roberts_max')
threshold(Roberts,Margin,128,255)
Ergebnis
robertsrobertsRobertsRobertsroberts liefert den Wert 2 (
H_MSG_TRUE)
, falls die Parameter
korrekt sind. 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>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>) festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
binomial_filterbinomial_filterBinomialFilterBinomialFilterbinomial_filter,
gauss_filtergauss_filterGaussFilterGaussFiltergauss_filter
Nachfolger
thresholdthresholdThresholdThresholdthreshold,
skeletonskeletonSkeletonSkeletonskeleton
Alternativen
edges_imageedges_imageEdgesImageEdgesImageedges_image,
sobel_ampsobel_ampSobelAmpSobelAmpsobel_amp,
frei_ampfrei_ampFreiAmpFreiAmpfrei_amp,
kirsch_ampkirsch_ampKirschAmpKirschAmpkirsch_amp,
prewitt_ampprewitt_ampPrewittAmpPrewittAmpprewitt_amp
Siehe auch
laplacelaplaceLaplaceLaplacelaplace,
highpass_imagehighpass_imageHighpassImageHighpassImagehighpass_image,
bandpass_imagebandpass_imageBandpassImageBandpassImagebandpass_image
Modul
Foundation