robinson_dirrobinson_dirRobinsonDirRobinsonDir (Operator)

Name

robinson_dirrobinson_dirRobinsonDirRobinsonDir — Kantendetektion (Amplitude und Richtung) mit dem Robinson-Operator.

Signatur

robinson_dir(Image : ImageEdgeAmp, ImageEdgeDir : : )

Herror robinson_dir(const Hobject Image, Hobject* ImageEdgeAmp, Hobject* ImageEdgeDir)

Herror T_robinson_dir(const Hobject Image, Hobject* ImageEdgeAmp, Hobject* ImageEdgeDir)

void RobinsonDir(const HObject& Image, HObject* ImageEdgeAmp, HObject* ImageEdgeDir)

HImage HImage::RobinsonDir(HImage* ImageEdgeDir) const

static void HOperatorSet.RobinsonDir(HObject image, out HObject imageEdgeAmp, out HObject imageEdgeDir)

HImage HImage.RobinsonDir(out HImage imageEdgeDir)

Beschreibung

robinson_dirrobinson_dirRobinsonDirRobinsonDirRobinsonDir berechnet eine Näherung der ersten Ableitung der Grauwertdaten und wird als Kantenfilter eingesetzt. Mit robinson_dirrobinson_dirRobinsonDirRobinsonDirRobinsonDir werden auf ein Eingabebild vier der ursprünglich acht 3x3-Filter von Robinson angewandt. Die anderen 4 Masken entstehen durch Multiplikation der Masken mit -1. Die Masken besitzen nur die Werte 0,1,-1,2,-2. -1 0 1 2 1 0 -2 0 2 1 0 -1 -1 0 1 0 -1 -2 0 1 2 1 2 1 -1 0 1 0 0 0 -2 -1 0 -1 -2 -1 Im Ausgabebild ist die maximale Filterantwort aller Masken eingetragen. In dem Parameter ImageEdgeDirImageEdgeDirImageEdgeDirImageEdgeDirimageEdgeDir wird die Kantenrichtungen zurückgeliefert als x / 2. Die Kantenrichtungen entsprechen der Richtung der Maske mit der maximalen Filterantwort.

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)

Eingabebild.

ImageEdgeAmpImageEdgeAmpImageEdgeAmpImageEdgeAmpimageEdgeAmp (output_object)  (multichannel-)image(-array) objectHImageHImageHobject * (byte / int2 / uint2)

Kantenamplitude.

ImageEdgeDirImageEdgeDirImageEdgeDirImageEdgeDirimageEdgeDir (output_object)  (multichannel-)image(-array) objectHImageHImageHobject * (direction)

Kantenrichtung.

Beispiel (HDevelop)

read_image(Image,'fabrik')
robinson_dir(Image,Robinson_dirA,Robinson_dirD)
threshold(Robinson_dirA,Res,128,255)

Beispiel (C)

read_image(&Image,"fabrik");
robinson_dir(Image,&Robinson_dirA,&Robinson_dirD);
threshold(Robinson_dirA,&Res,128,255);

Beispiel (HDevelop)

read_image(Image,'fabrik')
robinson_dir(Image,Robinson_dirA,Robinson_dirD)
threshold(Robinson_dirA,Res,128,255)

Beispiel (HDevelop)

read_image(Image,'fabrik')
robinson_dir(Image,Robinson_dirA,Robinson_dirD)
threshold(Robinson_dirA,Res,128,255)

Beispiel (HDevelop)

read_image(Image,'fabrik')
robinson_dir(Image,Robinson_dirA,Robinson_dirD)
threshold(Robinson_dirA,Res,128,255)

Ergebnis

robinson_dirrobinson_dirRobinsonDirRobinsonDirRobinsonDir liefert immer den Wert 2 (H_MSG_TRUE). 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, sigma_imagesigma_imageSigmaImageSigmaImageSigmaImage, median_imagemedian_imageMedianImageMedianImageMedianImage, smooth_imagesmooth_imageSmoothImageSmoothImageSmoothImage

Nachfolger

hysteresis_thresholdhysteresis_thresholdHysteresisThresholdHysteresisThresholdHysteresisThreshold, thresholdthresholdThresholdThresholdThreshold, gray_skeletongray_skeletonGraySkeletonGraySkeletonGraySkeleton, nonmax_suppression_dirnonmax_suppression_dirNonmaxSuppressionDirNonmaxSuppressionDirNonmaxSuppressionDir, close_edgesclose_edgesCloseEdgesCloseEdgesCloseEdges, close_edges_lengthclose_edges_lengthCloseEdgesLengthCloseEdgesLengthCloseEdgesLength

Alternativen

edges_imageedges_imageEdgesImageEdgesImageEdgesImage, sobel_dirsobel_dirSobelDirSobelDirSobelDir, kirsch_dirkirsch_dirKirschDirKirschDirKirschDir, prewitt_dirprewitt_dirPrewittDirPrewittDirPrewittDir, frei_dirfrei_dirFreiDirFreiDirFreiDir

Siehe auch

bandpass_imagebandpass_imageBandpassImageBandpassImageBandpassImage, laplace_of_gausslaplace_of_gaussLaplaceOfGaussLaplaceOfGaussLaplaceOfGauss

Modul

Foundation