frei_dirfrei_dirFreiDirFreiDir (Operator)

Name

frei_dirfrei_dirFreiDirFreiDir — Kantendetektion (Amplitude und Richtung) mit dem Frei-Chen-Operator.

Signatur

frei_dir(Image : ImageEdgeAmp, ImageEdgeDir : : )

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

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

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

HImage HImage::FreiDir(HImage* ImageEdgeDir) const

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

HImage HImage.FreiDir(out HImage imageEdgeDir)

Beschreibung

frei_dirfrei_dirFreiDirFreiDirFreiDir berechnet eine Näherung der erster Ableitung der Grauwertdaten und wird als Kantenfilter eingesetzt. Dem Filter liegen folgende zwei Filtermasken zugrunde: Im Ausgabebild ist die maximale Filterantwort der Maske A und B eingetragen. In dem Parameter ImageEdgeDirImageEdgeDirImageEdgeDirImageEdgeDirimageEdgeDir wird die Kantenrichtungen zurückgeliefert. Diese werden in 2 Grad Schritten kodiert, d.h. eine Kantenrichtung von x Grad (im mathematisch positiven Sinn und bezogen auf die Horizontale) wird zu x / 2 im entsprechenden Ergebnisbild. Außerdem wird auch die Richtung der Helligkeitsänderung berücksichtigt. Bezeichnet [Ex,Ey] den Bildgradienten, ergeben sich folgende Kantenrichtungen r (zurückgeliefert als r/2) zwischen 0 und 359 Grad: In Bildpunkten mit Kantenamplitude 0 wird als Kantenrichtung der Wert 255 (undefinierte Richtung) zurückgeliefert.

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')
frei_dir(Image,Frei_dirA,Frei_dirD)
threshold(Frei_dirA,Res,128,255)

Beispiel (C)

read_image(&Image,"fabrik");
frei_dir(Image,&Frei_dirA,&Frei_dirD);
threshold(Frei_dirA,&Res,128,255);

Beispiel (HDevelop)

read_image(Image,'fabrik')
frei_dir(Image,Frei_dirA,Frei_dirD)
threshold(Frei_dirA,Res,128,255)

Beispiel (HDevelop)

read_image(Image,'fabrik')
frei_dir(Image,Frei_dirA,Frei_dirD)
threshold(Frei_dirA,Res,128,255)

Beispiel (HDevelop)

read_image(Image,'fabrik')
frei_dir(Image,Frei_dirA,Frei_dirD)
threshold(Frei_dirA,Res,128,255)

Ergebnis

frei_dirfrei_dirFreiDirFreiDirFreiDir 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, robinson_dirrobinson_dirRobinsonDirRobinsonDirRobinsonDir, prewitt_dirprewitt_dirPrewittDirPrewittDirPrewittDir, kirsch_dirkirsch_dirKirschDirKirschDirKirschDir

Siehe auch

bandpass_imagebandpass_imageBandpassImageBandpassImageBandpassImage, laplace_of_gausslaplace_of_gaussLaplaceOfGaussLaplaceOfGaussLaplaceOfGauss

Modul

Foundation