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:
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
Unterstützt OpenCL Compute Devices.
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).