coherence_enhancing_diffcoherence_enhancing_diffCoherenceEnhancingDiffCoherenceEnhancingDiffcoherence_enhancing_diff (Operator)

Name

coherence_enhancing_diffcoherence_enhancing_diffCoherenceEnhancingDiffCoherenceEnhancingDiffcoherence_enhancing_diff — Kohärenz verstä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)

def coherence_enhancing_diff(image: HObject, sigma: float, rho: float, theta: float, iterations: int) -> HObject

Beschreibung

Der Operator coherence_enhancing_diffcoherence_enhancing_diffCoherenceEnhancingDiffCoherenceEnhancingDiffCoherenceEnhancingDiffcoherence_enhancing_diff führt einen anisotropen Diffusionsvorgang auf dem Eingabebild ImageImageImageImageimageimage durch mit dem Ziel, die Kohärenz der in ImageImageImageImageimageimage 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_diffCoherenceEnhancingDiffCoherenceEnhancingDiffCoherenceEnhancingDiffcoherence_enhancing_diff eine Diskretisierung der anisotropen Diffusionsgleichung nach Weickert. Mit einer von den Grauwerten in ImageImageImageImageimageimage abhängigen 2x2 Koeffizientenmatrix G ist diese eine Weiterentwicklung der Krümmungsfluss- oder intrinsischen Wärmeleitungsgleichung auf der durch das Eingabebild ImageImageImageImageimageimage zu einem Zeitpunkt definierten Grauwertfunktion u. Der Glättungsoperator mean_curvature_flowmean_curvature_flowMeanCurvatureFlowMeanCurvatureFlowMeanCurvatureFlowmean_curvature_flow verwendet die Krümmungsflussgleichung direkt. Die diskrete Diffusionsgleichung wird in IterationsIterationsIterationsIterationsiterationsiterations Zeitschritten der Länge ThetaThetaThetaThetathetatheta gelöst, so dass das Ausgabebild ImageCEDImageCEDImageCEDImageCEDimageCEDimage_ced 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 SigmaSigmaSigmaSigmasigmasigma bestimmt die Stärke dieser Glättung als Standardabweichung des zugehörigen Gauß-Faltungskernes, wie er auch im Operator isotropic_diffusionisotropic_diffusionIsotropicDiffusionIsotropicDiffusionIsotropicDiffusionisotropic_diffusion zur isotropen Glättung eines Bildes verwendet wird.

Während die Matrix G im Fall des Krümmungsflusses mean_curvature_flowmean_curvature_flowMeanCurvatureFlowMeanCurvatureFlowMeanCurvatureFlowmean_curvature_flow gegeben wird durch wobei I die Einheitsmatrix bezeichnet, wird die Matrix in coherence_enhancing_diffcoherence_enhancing_diffCoherenceEnhancingDiffCoherenceEnhancingDiffCoherenceEnhancingDiffcoherence_enhancing_diff komponentenweise in Ortsrichtung durch einen Gauß-Filter mit Standardabweichung RhoRhoRhoRhorhorho 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_flowMeanCurvatureFlowMeanCurvatureFlowMeanCurvatureFlowmean_curvature_flow also alleine durch die lokale Richtung des Grauwertgradienten bestimmt, wohingegen die makroskopische Struktur der Bildobjekte auf der Skala RhoRhoRhoRhorhorho wiedergibt und die Stärke der Diffusion in coherence_enhancing_diffcoherence_enhancing_diffCoherenceEnhancingDiffCoherenceEnhancingDiffCoherenceEnhancingDiffcoherence_enhancing_diff 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

ImageImageImageImageimageimage (input_object)  (multichannel-)image(-array) objectHImageHObjectHImageHobject (byte / uint2 / real)

Eingabebild.

ImageCEDImageCEDImageCEDImageCEDimageCEDimage_ced (output_object)  image(-array) objectHImageHObjectHImageHobject * (byte / uint2 / real)

Ausgabebild.

SigmaSigmaSigmaSigmasigmasigma (input_control)  real HTuplefloatHTupleHtuple (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

RhoRhoRhoRhorhorho (input_control)  real HTuplefloatHTupleHtuple (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

ThetaThetaThetaThetathetatheta (input_control)  real HTuplefloatHTupleHtuple (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

IterationsIterationsIterationsIterationsiterationsiterations (input_control)  integer HTupleintHTupleHtuple (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