coherence_enhancing_diffcoherence_enhancing_diffCoherenceEnhancingDiffCoherenceEnhancingDiff (Operator)

Name

coherence_enhancing_diffcoherence_enhancing_diffCoherenceEnhancingDiffCoherenceEnhancingDiff — Koherenzverstärkende Diffusion eines Bildes.

Signatur

coherence_enhancing_diff(Image : ImageCED : Sigma, Rho, Theta, Iterations : )

Herror coherence_enhancing_diff(const Hobject Image, Hobject* ImageCED, double Sigma, double Rho, double Theta, const Hlong Iterations)

Herror T_coherence_enhancing_diff(const Hobject Image, Hobject* ImageCED, const Htuple Sigma, const Htuple Rho, const Htuple Theta, const Htuple Iterations)

void CoherenceEnhancingDiff(const HObject& Image, HObject* ImageCED, const HTuple& Sigma, const HTuple& Rho, const HTuple& Theta, const HTuple& Iterations)

HImage HImage::CoherenceEnhancingDiff(double Sigma, double Rho, double Theta, Hlong Iterations) const

static void HOperatorSet.CoherenceEnhancingDiff(HObject image, out HObject imageCED, HTuple sigma, HTuple rho, HTuple theta, HTuple iterations)

HImage HImage.CoherenceEnhancingDiff(double sigma, double rho, double theta, int iterations)

Beschreibung

Der Operator coherence_enhancing_diffcoherence_enhancing_diffCoherenceEnhancingDiffCoherenceEnhancingDiffCoherenceEnhancingDiff führt einen anisotropen Diffusionsvorgang auf dem Eingabebild ImageImageImageImageimage durch mit dem Ziel, die Kohärenz der in ImageImageImageImageimage enthaltenen Bildstrukturen zu erhöhen, das heißt insbesondere, unterbrochene Bildkanten diffusiv miteinander zu verbinden ohne sie dabei senkrecht zur Kantenrichtung zu verschmieren. Dazu nutzt coherence_enhancing_diffcoherence_enhancing_diffCoherenceEnhancingDiffCoherenceEnhancingDiffCoherenceEnhancingDiff eine Diskretisierung der anisotropen Diffusionsgleichung nach Weickert. Mit einer von den Grauwerten in ImageImageImageImageimage abhängigen 2x2 Koeffizientenmatrix G ist diese eine Weiterentwicklung der Krümmungsfluss- oder intrinsischen Wärmeleitungsgleichung auf der durch das Eingabebild ImageImageImageImageimage zu einem Zeitpunkt definierten Grauwertfunktion u. Der Glättungsoperator mean_curvature_flowmean_curvature_flowMeanCurvatureFlowMeanCurvatureFlowMeanCurvatureFlow verwendet die Krümmungsflussgleichung direkt. Die diskrete Diffusionsgleichung wird in IterationsIterationsIterationsIterationsiterations Zeitschritten der Länge ThetaThetaThetaThetatheta gelöst, so dass das Ausgabebild ImageCEDImageCEDImageCEDImageCEDimageCED die Grauwertfunktion zur Zeit enthält.

Um die Kantenrichtungen insbesondere bei verrauschten Eingabedaten stabiler zu bestimmen, kann der Berechnung der Grauwertgradienten ein zusätzlicher isotroper Glättungsschritt vorgeschaltet werden. Der Parameter SigmaSigmaSigmaSigmasigma bestimmt die Stärke dieser Glättung als Standardabweichung des zugehörigen Gauß-Faltungskernes, wie er auch im Operator isotropic_diffusionisotropic_diffusionIsotropicDiffusionIsotropicDiffusionIsotropicDiffusion zur isotropen Glättung eines Bildes verwendet wird.

Während die Matrix G im Fall des Krümmungsflusses mean_curvature_flowmean_curvature_flowMeanCurvatureFlowMeanCurvatureFlowMeanCurvatureFlow gegeben wird durch wobei I die Einheitsmatrix bezeichnet, wird diese Matrix in coherence_enhancing_diffcoherence_enhancing_diffCoherenceEnhancingDiffCoherenceEnhancingDiffCoherenceEnhancingDiff komponentenweise in Ortsrichtung durch einen Gauß-Filter mit Standardabweichung RhoRhoRhoRhorho geglättet und anschließend aus den Eigenwerten und Eigenvektoren der so entstandenen Matrix die endgültige Koeffizientenmatrix konstruiert, wobei die Funktionen empirisch bestimmt und aus der Veröffentlichung von Weickert entnommen sind.

Die Diffusionsrichtung wird bei mean_curvature_flowmean_curvature_flowMeanCurvatureFlowMeanCurvatureFlowMeanCurvatureFlow also alleine durch die lokale Richtung des Grauwertgradienten bestimmt, wohingegen die makroskopische Struktur der Bildobjekte auf der Skala RhoRhoRhoRhorho wiedergibt und die Stärke der Diffusion in coherence_enhancing_diffcoherence_enhancing_diffCoherenceEnhancingDiffCoherenceEnhancingDiffCoherenceEnhancingDiff davon abhängt, wie gut diese Struktur definiert ist.

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 / uint2 / real)

Eingabebild.

ImageCEDImageCEDImageCEDImageCEDimageCED (output_object)  image(-array) objectHImageHImageHobject * (byte / uint2 / real)

Ausgabebild.

SigmaSigmaSigmaSigmasigma (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Glättungsparameter für Ableitungsoperator.

Defaultwert: 0.5

Wertevorschläge: 0.0, 0.1, 0.5, 1.0

Restriktion: Sigma >= 0

RhoRhoRhoRhorho (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Glättungsparameter für Diffusionskoeffizienten.

Defaultwert: 3.0

Wertevorschläge: 0.0, 1.0, 3.0, 5.0, 10.0, 30.0

Restriktion: Rho >= 0

ThetaThetaThetaThetatheta (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Zeitschritt.

Defaultwert: 0.5

Wertevorschläge: 0.1, 0.2, 0.3, 0.4, 0.5

Restriktion: 0 < Theta <= 0.5

IterationsIterationsIterationsIterationsiterations (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Anzahl Iterationen.

Defaultwert: 10

Wertevorschläge: 1, 5, 10, 20, 50, 100, 500

Restriktion: Iterations >= 1

Literatur

J. Weickert, V. Hlavac, R. Sara; „Multiscale texture enhancement“; Computer analysis of images and patterns, Lecture Notes in Computer Science, Vol. 970, pp. 230-237; Springer, Berlin; 1995.
J. Weickert, B. ter Haar Romeny, L. Florack, J. Koenderink, M. Viergever; „A review of nonlinear diffusion filtering“; Scale-Space Theory in Computer Vision, Lecture Notes in Comp. Science, Vol. 1252, pp. 3-28; Springer, Berlin; 1997.

Modul

Foundation