roberts — Kantendetektion mit dem Roberts-Filter.
roberts(Image : ImageRoberts : FilterType : )
roberts 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.
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.
Image (input_object) (multichannel-)image(-array) → object (byte / int2 / uint2)
Eingabebilder.
ImageRoberts (output_object) (multichannel-)image(-array) → object (byte / int2 / uint2)
Gefilterte Ausgabebilder.
FilterType (input_control) string → (string)
Filtertyp.
Default: 'gradient_sum'
Werteliste: 'gradient_max', 'gradient_sum', 'roberts_max'
read_image(Image,'fabrik') roberts(Image,Roberts,'roberts_max') threshold(Roberts,Margin,128,255)
roberts 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>) festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
edges_image,
sobel_amp,
frei_amp,
kirsch_amp,
prewitt_amp
laplace,
highpass_image,
bandpass_image
Foundation