derivate_gaussderivate_gaussDerivateGaussDerivateGaussderivate_gauss (Operator)

Name

derivate_gaussderivate_gaussDerivateGaussDerivateGaussderivate_gauss — Ableitungen der Gaußfunktion.

Signatur

derivate_gauss(Image : DerivGauss : Sigma, Component : )

Herror derivate_gauss(const Hobject Image, Hobject* DerivGauss, double Sigma, const char* Component)

Herror T_derivate_gauss(const Hobject Image, Hobject* DerivGauss, const Htuple Sigma, const Htuple Component)

void DerivateGauss(const HObject& Image, HObject* DerivGauss, const HTuple& Sigma, const HTuple& Component)

HImage HImage::DerivateGauss(const HTuple& Sigma, const HString& Component) const

HImage HImage::DerivateGauss(double Sigma, const HString& Component) const

HImage HImage::DerivateGauss(double Sigma, const char* Component) const

HImage HImage::DerivateGauss(double Sigma, const wchar_t* Component) const   (Nur Windows)

static void HOperatorSet.DerivateGauss(HObject image, out HObject derivGauss, HTuple sigma, HTuple component)

HImage HImage.DerivateGauss(HTuple sigma, string component)

HImage HImage.DerivateGauss(double sigma, string component)

def derivate_gauss(image: HObject, sigma: MaybeSequence[float], component: str) -> HObject

Beschreibung

derivate_gaussderivate_gaussDerivateGaussDerivateGaussDerivateGaussderivate_gauss berechnet verschiedene Ableitungen der Gaußfunktion und daraus abgeleiteter Größen. Dabei ist SigmaSigmaSigmaSigmasigmasigma der Parameter der Gaußfunktion (d.h. die Glättung). Falls in SigmaSigmaSigmaSigmasigmasigma ein Wert angegeben wird, ist die Glättung in Spalten- und Zeilenrichtung gleich. Falls zwei Werte in SigmaSigmaSigmaSigmasigmasigma übergeben werden, wird mit dem ersten Wert die Glättung in Spaltenrichtung und mit dem zweiten Wert die Glättung in Zeilenrichtung festgelegt. Mögliche Werte für ComponentComponentComponentComponentcomponentcomponent sind:

'none'"none""none""none""none""none":

Nur Glättung.

'x'"x""x""x""x""x":

1. Ableitung nach x.

'y'"y""y""y""y""y":

1. Ableitung nach y.

'gradient'"gradient""gradient""gradient""gradient""gradient":

Betrag des Gradienten.

'gradient_dir'"gradient_dir""gradient_dir""gradient_dir""gradient_dir""gradient_dir":

Richtung des Gradienten im Bogenmaß.

'xx'"xx""xx""xx""xx""xx":

2. Ableitung nach x.

'yy'"yy""yy""yy""yy""yy":

2. Ableitung nach y.

'xy'"xy""xy""xy""xy""xy":

Ableitung nach x und y.

'xxx'"xxx""xxx""xxx""xxx""xxx":

3. Ableitung nach x.

'yyy'"yyy""yyy""yyy""yyy""yyy":

3. Ableitung nach y.

'xxy'"xxy""xxy""xxy""xxy""xxy":

Ableitung nach x, x und y.

'xyy'"xyy""xyy""xyy""xyy""xyy":

Ableitung nach x, y und y.

'det'"det""det""det""det""det":

Determinante der Hessematrix:

'laplace'"laplace""laplace""laplace""laplace""laplace":

Laplace-Operator (Spur der Hessematrix)

'mean_curvature'"mean_curvature""mean_curvature""mean_curvature""mean_curvature""mean_curvature":

Mittlere Krümmung H

'gauss_curvature'"gauss_curvature""gauss_curvature""gauss_curvature""gauss_curvature""gauss_curvature":

Gaußkrümmung K

'area'"area""area""area""area""area":

Differentielle Fläche A

'eigenvalue1'"eigenvalue1""eigenvalue1""eigenvalue1""eigenvalue1""eigenvalue1":

Erster Eigenwert

'eigenvalue2'"eigenvalue2""eigenvalue2""eigenvalue2""eigenvalue2""eigenvalue2":

Zweiter Eigenwert

'eigenvec_dir'"eigenvec_dir""eigenvec_dir""eigenvec_dir""eigenvec_dir""eigenvec_dir":

Richtung des zum ersten Eigenwert gehörigen Eigenvektors im Bogenmaß

'main1_curvature'

Erste Hauptkrümmung

'main2_curvature'

Zweite Hauptkrümmung

'kitchen_rosenfeld'"kitchen_rosenfeld""kitchen_rosenfeld""kitchen_rosenfeld""kitchen_rosenfeld""kitchen_rosenfeld":

2. Ableitung in Richtung senkrecht zum Gradienten

'zuniga_haralick'"zuniga_haralick""zuniga_haralick""zuniga_haralick""zuniga_haralick""zuniga_haralick":

Normierte 2. Ableitung in Richtung senkrecht zum Gradienten

'2nd_ddg'"2nd_ddg""2nd_ddg""2nd_ddg""2nd_ddg""2nd_ddg":

2. Ableitung in Richtung des Gradienten

'de_saint_venant'"de_saint_venant""de_saint_venant""de_saint_venant""de_saint_venant""de_saint_venant":

2. Ableitung in Richtung des Gradienten und senkrecht dazu

Achtung

Nebst der reinen C Version gibt es spezifische Implementierungen von derivate_gaussderivate_gaussDerivateGaussDerivateGaussDerivateGaussderivate_gauss zur Beschleunigung. Eine solche Optimierung wird verwendet, wenn diese vom System unterstützt wird und der entsprechende Systemparameter *_enable auf 'true'"true""true""true""true""true" gesetzt ist, siehe set_systemset_systemSetSystemSetSystemSetSystemset_system. Folgende Optimierungen werden unterstützt (der Priorität nach gelistet):

Diese Implementierungen sind aufgrund numerischer Probleme im Vergleich zur reinen C Version etwas ungenauer. Mit den SSE2 Instruktionen bewegt sich der Unterschied beispielsweise in einer Größenordnung von 1.0e-5 für 'byte' Bilder und 'none'"none""none""none""none""none", 'x'"x""x""x""x""x" oder 'y'"y""y""y""y""y" als ComponentComponentComponentComponentcomponentcomponent.

Wird Genauigkeit der Geschwindigkeit gegenüber bevorzugt, müssen vor dem Aufruf von derivate_gaussderivate_gaussDerivateGaussDerivateGaussDerivateGaussderivate_gauss alle entsprechenden Systemparameter mit set_systemset_systemSetSystemSetSystemSetSystemset_system auf 'false'"false""false""false""false""false" gesetzt werden. Dadurch verwendet derivate_gaussderivate_gaussDerivateGaussDerivateGaussDerivateGaussderivate_gauss keine der Optimierungen. Vergessen Sie nicht den Systemparameter danach wieder auf 'true'"true""true""true""true""true" zu setzen.

derivate_gaussderivate_gaussDerivateGaussDerivateGaussDerivateGaussderivate_gauss wird nur dann auf einem OpenCL-Gerät ausgeführt wenn SigmaSigmaSigmaSigmasigmasigma eine Filterbreite bzw. Filterhöhe bis zu 129 impliziert. Das entspricht einem SigmaSigmaSigmaSigmasigmasigma von weniger als 20.7 für ComponentComponentComponentComponentcomponentcomponent = 'none'"none""none""none""none""none". Außerdem ist die OpenCL Implementierung wie die SSE2 Implementierung aufgrund numerischer Probleme etwas ungenauer als die reine C Version.

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* / direction* / cyclic* / int1* / int2* / uint2* / int4* / real*) *erlaubt für Compute Devices

Eingabebilder.

DerivGaussDerivGaussDerivGaussDerivGaussderivGaussderiv_gauss (output_object)  (multichannel-)image(-array) objectHImageHObjectHImageHobject * (real)

Gefilterte Bilder.

SigmaSigmaSigmaSigmasigmasigma (input_control)  real(-array) HTupleMaybeSequence[float]HTupleHtuple (real) (double) (double) (double)

Sigma der Gaußfunktion.

Defaultwert: 1.0

Wertevorschläge: 0.7, 1.0, 1.5, 2.0, 3.0, 4.0, 5.0

Typischer Wertebereich: 0.01 ≤ Sigma Sigma Sigma Sigma sigma sigma ≤ 50.0

Minimale Schrittweite: 0.01

Empfohlene Schrittweite: 0.1

ComponentComponentComponentComponentcomponentcomponent (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Zu berechnende Ableitung oder Merkmal.

Defaultwert: 'x' "x" "x" "x" "x" "x"

Werteliste: '2nd_ddg'"2nd_ddg""2nd_ddg""2nd_ddg""2nd_ddg""2nd_ddg", 'area'"area""area""area""area""area", 'de_saint_venant'"de_saint_venant""de_saint_venant""de_saint_venant""de_saint_venant""de_saint_venant", 'det'"det""det""det""det""det", 'eigenvalue1'"eigenvalue1""eigenvalue1""eigenvalue1""eigenvalue1""eigenvalue1", 'eigenvalue2'"eigenvalue2""eigenvalue2""eigenvalue2""eigenvalue2""eigenvalue2", 'eigenvec_dir'"eigenvec_dir""eigenvec_dir""eigenvec_dir""eigenvec_dir""eigenvec_dir", 'gauss_curvature'"gauss_curvature""gauss_curvature""gauss_curvature""gauss_curvature""gauss_curvature", 'gradient'"gradient""gradient""gradient""gradient""gradient", 'gradient_dir'"gradient_dir""gradient_dir""gradient_dir""gradient_dir""gradient_dir", 'kitchen_rosenfeld'"kitchen_rosenfeld""kitchen_rosenfeld""kitchen_rosenfeld""kitchen_rosenfeld""kitchen_rosenfeld", 'laplace'"laplace""laplace""laplace""laplace""laplace", 'main1_curvature'"main1_curvature""main1_curvature""main1_curvature""main1_curvature""main1_curvature", 'main2_curvature'"main2_curvature""main2_curvature""main2_curvature""main2_curvature""main2_curvature", 'mean_curvature'"mean_curvature""mean_curvature""mean_curvature""mean_curvature""mean_curvature", 'none'"none""none""none""none""none", 'x'"x""x""x""x""x", 'xx'"xx""xx""xx""xx""xx", 'xxx'"xxx""xxx""xxx""xxx""xxx", 'xxy'"xxy""xxy""xxy""xxy""xxy", 'xy'"xy""xy""xy""xy""xy", 'xyy'"xyy""xyy""xyy""xyy""xyy", 'y'"y""y""y""y""y", 'yy'"yy""yy""yy""yy""yy", 'yyy'"yyy""yyy""yyy""yyy""yyy", 'zuniga_haralick'"zuniga_haralick""zuniga_haralick""zuniga_haralick""zuniga_haralick""zuniga_haralick"

Werteliste (für Compute Devices): 'none'"none""none""none""none""none", 'x'"x""x""x""x""x", 'y'"y""y""y""y""y", 'gradient'"gradient""gradient""gradient""gradient""gradient", 'gradient_dir'"gradient_dir""gradient_dir""gradient_dir""gradient_dir""gradient_dir", 'xx'"xx""xx""xx""xx""xx", 'yy'"yy""yy""yy""yy""yy", 'xy'"xy""xy""xy""xy""xy", 'xxx'"xxx""xxx""xxx""xxx""xxx", 'yyy'"yyy""yyy""yyy""yyy""yyy", 'xxy'"xxy""xxy""xxy""xxy""xxy", 'xyy'"xyy""xyy""xyy""xyy""xyy", 'laplace'"laplace""laplace""laplace""laplace""laplace"

Beispiel (C)

read_image(&Image,"mreut");
derivate_gauss(Image,&Gauss,3.0,"x");
zero_crossing(Gauss,&ZeroCrossings);

Nachfolger

zero_crossingzero_crossingZeroCrossingZeroCrossingZeroCrossingzero_crossing, dual_thresholddual_thresholdDualThresholdDualThresholdDualThresholddual_threshold

Alternativen

laplacelaplaceLaplaceLaplaceLaplacelaplace, laplace_of_gausslaplace_of_gaussLaplaceOfGaussLaplaceOfGaussLaplaceOfGausslaplace_of_gauss, binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilterbinomial_filter, gauss_filtergauss_filterGaussFilterGaussFilterGaussFiltergauss_filter, smooth_imagesmooth_imageSmoothImageSmoothImageSmoothImagesmooth_image, isotropic_diffusionisotropic_diffusionIsotropicDiffusionIsotropicDiffusionIsotropicDiffusionisotropic_diffusion

Siehe auch

zero_crossingzero_crossingZeroCrossingZeroCrossingZeroCrossingzero_crossing, dual_thresholddual_thresholdDualThresholdDualThresholdDualThresholddual_threshold

Modul

Foundation