robertsrobertsRobertsRoberts (Operator)

Name

robertsrobertsRobertsRoberts — Kantendetektion mit dem Roberts-Filter.

Signatur

roberts(Image : ImageRoberts : FilterType : )

Herror roberts(const Hobject Image, Hobject* ImageRoberts, const char* FilterType)

Herror T_roberts(const Hobject Image, Hobject* ImageRoberts, const Htuple FilterType)

void Roberts(const HObject& Image, HObject* ImageRoberts, const HTuple& FilterType)

HImage HImage::Roberts(const HString& FilterType) const

HImage HImage::Roberts(const char* FilterType) const

HImage HImage::Roberts(const wchar_t* FilterType) const   (Nur Windows)

static void HOperatorSet.Roberts(HObject image, out HObject imageRoberts, HTuple filterType)

HImage HImage.Roberts(string filterType)

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

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