robertsrobertsRobertsRobertsroberts (Operator)
Name
robertsrobertsRobertsRobertsroberts — Kantendetektion mit dem Roberts-Filter.
Signatur
Beschreibung
robertsrobertsRobertsRobertsRobertsroberts 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
ImageImageImageImageimageimage (input_object) (multichannel-)image(-array) → objectHImageHObjectHImageHobject (byte / int2 / uint2)
Eingabebilder.
ImageRobertsImageRobertsImageRobertsImageRobertsimageRobertsimage_roberts (output_object) (multichannel-)image(-array) → objectHImageHObjectHImageHobject * (byte / int2 / uint2)
Gefilterte Ausgabebilder.
FilterTypeFilterTypeFilterTypeFilterTypefilterTypefilter_type (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Filtertyp.
Defaultwert:
'gradient_sum'
"gradient_sum"
"gradient_sum"
"gradient_sum"
"gradient_sum"
"gradient_sum"
Werteliste: 'gradient_max'"gradient_max""gradient_max""gradient_max""gradient_max""gradient_max", 'gradient_sum'"gradient_sum""gradient_sum""gradient_sum""gradient_sum""gradient_sum", 'roberts_max'"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
robertsrobertsRobertsRobertsRobertsroberts 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>)set_system("no_object_result",<Result>) festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilterbinomial_filter,
gauss_filtergauss_filterGaussFilterGaussFilterGaussFiltergauss_filter
Nachfolger
thresholdthresholdThresholdThresholdThresholdthreshold,
skeletonskeletonSkeletonSkeletonSkeletonskeleton
Alternativen
edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image,
sobel_ampsobel_ampSobelAmpSobelAmpSobelAmpsobel_amp,
frei_ampfrei_ampFreiAmpFreiAmpFreiAmpfrei_amp,
kirsch_ampkirsch_ampKirschAmpKirschAmpKirschAmpkirsch_amp,
prewitt_ampprewitt_ampPrewittAmpPrewittAmpPrewittAmpprewitt_amp
Siehe auch
laplacelaplaceLaplaceLaplaceLaplacelaplace,
highpass_imagehighpass_imageHighpassImageHighpassImageHighpassImagehighpass_image,
bandpass_imagebandpass_imageBandpassImageBandpassImageBandpassImagebandpass_image
Modul
Foundation