robertsrobertsRobertsRoberts (Operator)
Name
robertsrobertsRobertsRoberts
— 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) →
objectHImageHImageHobject (byte / int2 / uint2)
Eingabebilder.
ImageRobertsImageRobertsImageRobertsImageRobertsimageRoberts
(output_object) (multichannel-)image(-array) →
objectHImageHImageHobject * (byte / int2 / uint2)
Gefilterte Ausgabebilder.
FilterTypeFilterTypeFilterTypeFilterTypefilterType
(input_control) string →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Filtertyp.
Defaultwert:
'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)
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>)SetSystem("no_object_result",<Result>)
festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilter
,
gauss_filtergauss_filterGaussFilterGaussFilterGaussFilter
Nachfolger
thresholdthresholdThresholdThresholdThreshold
,
skeletonskeletonSkeletonSkeletonSkeleton
Alternativen
edges_imageedges_imageEdgesImageEdgesImageEdgesImage
,
sobel_ampsobel_ampSobelAmpSobelAmpSobelAmp
,
frei_ampfrei_ampFreiAmpFreiAmpFreiAmp
,
kirsch_ampkirsch_ampKirschAmpKirschAmpKirschAmp
,
prewitt_ampprewitt_ampPrewittAmpPrewittAmpPrewittAmp
Siehe auch
laplacelaplaceLaplaceLaplaceLaplace
,
highpass_imagehighpass_imageHighpassImageHighpassImageHighpassImage
,
bandpass_imagebandpass_imageBandpassImageBandpassImageBandpassImage
Modul
Foundation