KlassenKlassenKlassenKlassen | | | | Operatoren

robinson_dirrobinson_dirRobinsonDirrobinson_dirRobinsonDirRobinsonDir (Operator)

Name

robinson_dirrobinson_dirRobinsonDirrobinson_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)

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

HImage HImage::RobinsonDir(HImage* ImageEdgeDir) const

HImageArray HImageArray::RobinsonDir(HImageArray* ImageEdgeDir) const

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

HImage HImage::RobinsonDir(HImage* ImageEdgeDir) const

void HOperatorSetX.RobinsonDir(
[in] IHUntypedObjectX* Image, [out] IHUntypedObjectX*ImageEdgeAmp, [out] IHUntypedObjectX*ImageEdgeDir)

IHImageX* HImageX.RobinsonDir([out] IHImageX*ImageEdgeDir)

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

HImage HImage.RobinsonDir(out HImage imageEdgeDir)

Beschreibung

robinson_dirrobinson_dirRobinsonDirrobinson_dirRobinsonDirRobinsonDir berechnet eine Näherung der ersten Ableitung der Grauwertdaten und wird als Kantenfilter eingesetzt. Mit robinson_dirrobinson_dirRobinsonDirrobinson_dirRobinsonDirRobinsonDir 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 ImageEdgeDirImageEdgeDirImageEdgeDirImageEdgeDirImageEdgeDirimageEdgeDir wird die Kantenrichtungen zurückgeliefert als x / 2. Die Kantenrichtungen entsprechen der Richtung der Maske mit der maximalen Filterantwort.

Parallelisierung

Parameter

ImageImageImageImageImageimage (input_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject (byte / int2 / uint2)

Eingabebild.

ImageEdgeAmpImageEdgeAmpImageEdgeAmpImageEdgeAmpImageEdgeAmpimageEdgeAmp (output_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject * (byte / int2 / uint2)

Kantenamplitude.

ImageEdgeDirImageEdgeDirImageEdgeDirImageEdgeDirImageEdgeDirimageEdgeDir (output_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject * (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)

Beispiel (HDevelop)

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

Ergebnis

robinson_dirrobinson_dirRobinsonDirrobinson_dirRobinsonDirRobinsonDir 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>)set_system("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_filterBinomialFilterbinomial_filterBinomialFilterBinomialFilter, gauss_filtergauss_filterGaussFiltergauss_filterGaussFilterGaussFilter, sigma_imagesigma_imageSigmaImagesigma_imageSigmaImageSigmaImage, median_imagemedian_imageMedianImagemedian_imageMedianImageMedianImage, smooth_imagesmooth_imageSmoothImagesmooth_imageSmoothImageSmoothImage

Nachfolger

hysteresis_thresholdhysteresis_thresholdHysteresisThresholdhysteresis_thresholdHysteresisThresholdHysteresisThreshold, thresholdthresholdThresholdthresholdThresholdThreshold, gray_skeletongray_skeletonGraySkeletongray_skeletonGraySkeletonGraySkeleton, nonmax_suppression_dirnonmax_suppression_dirNonmaxSuppressionDirnonmax_suppression_dirNonmaxSuppressionDirNonmaxSuppressionDir, close_edgesclose_edgesCloseEdgesclose_edgesCloseEdgesCloseEdges, close_edges_lengthclose_edges_lengthCloseEdgesLengthclose_edges_lengthCloseEdgesLengthCloseEdgesLength

Alternativen

edges_imageedges_imageEdgesImageedges_imageEdgesImageEdgesImage, sobel_dirsobel_dirSobelDirsobel_dirSobelDirSobelDir, kirsch_dirkirsch_dirKirschDirkirsch_dirKirschDirKirschDir, prewitt_dirprewitt_dirPrewittDirprewitt_dirPrewittDirPrewittDir, frei_dirfrei_dirFreiDirfrei_dirFreiDirFreiDir

Siehe auch

bandpass_imagebandpass_imageBandpassImagebandpass_imageBandpassImageBandpassImage, laplace_of_gausslaplace_of_gaussLaplaceOfGausslaplace_of_gaussLaplaceOfGaussLaplaceOfGauss

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren