VF_ODVD_ODVE_OD
VU_ODtoFVU_ODtoDVU_ODtoE
VUB_ODtoFVUB_ODtoDVUB_ODtoE
VUS_ODtoFVUS_ODtoDVUS_ODtoE
VUL_ODtoFVUL_ODtoDVUL_ODtoE
VUQ_ODtoFVUQ_ODtoDVUQ_ODtoE
VUI_ODtoFVUI_ODtoDVUI_ODtoE
VQI_ODtoFVQI_ODtoDVQI_ODtoE
FunktionOptische Dichte
Syntax C/C++#include <VFmath.h>
int VF_OD( fVector OD, fVector X, fVector X0, ui size );
int VUS_ODtoF( fVector OD, usVector X, usVector X0, ui size );
C++ VecObj#include <OptiVec.h>
int vector<T>::OD( const vector<T>& X, const vector<T>& X0 );
int vector<flot>::ODtoF( const vector<unsigned>& X, const vector<unsigned>& X0 );
Pascal/Delphiuses VFmath;
function VF_OD( OD, X, X0:fVector; size:UIntSize ): IntBool;
function VUS_ODtoF( OD:fVector; X, X0:usVector; size:UIntSize ): IntBool;
CUDA-Funktion C/C++#include <cudaVFmath.h>
int cudaVF_OD( fVector d_OD, fVector d_X, fVector d_X0, ui size );
int cudaVUS_ODtoF( fVector d_OD, usVector d_X, usVector d_X0, ui size );
int VFcu_OD( fVector h_OD, fVector h_X, fVector h_X0, ui size );
int VUScu_ODtoF( fVector h_OD, usVector h_X, usVector h_X0, ui size );
CUDA-Funktion Pascal/Delphiuses VFmath;
function cudaVF_OD( d_OD, d_X, d_X0:fVector; size:UIntSize ): IntBool;
function cudaVUS_ODtoF( d_OD:fVector; d_X, d_X0:usVector; size:UIntSize ): IntBool;
function VFcu_OD( h_OD, h_X, h_X0:fVector; size:UIntSize ): IntBool;
function VUScu_ODtoF( h_OD:fVector; h_X, h_X0:usVector; size:UIntSize ): IntBool;
BeschreibungODi = log10( X0i/Xi ), wenn (X0i ≥ ODThresh0 & Xi ≥ ODThresh),
ODi = 0.0, ansonsten
Die "Optische Dichte" wird für positive Eingabe-Werte (außer 0) berechnet. Die Standard-Einstellung für ODThresh und ODThresh0 ist FLT_MIN, DBL_MIN bzw. LDBL_MIN für die Fließkomma-Versionen (VF_OD,   VD_OD und VE_OD) und 1 für die Ganzzahl-Versionen.
Die typische Anwendung für diese Funktionen besteht aus einer Absorptions-Messung. Jedes Element von X enthält die durch eine Probe hindurch gemessene Lichtintensität für eine bestimmte Wellenlänge, während X0 die Intensitäten in Luft bzw. für eine Referenz-Probe enthält. Normalerweise werden die Intensitäten mit 12-bit oder 16-bit Auflösung in usVectoren vorliegen. Die geeigneten Funktionen für die Berechnung der OD sind dann VUS_ODtoF oder VUS_ODtoD. Für die selteneren Fälle von 8-bit oder mehr als 16-bit Auflösung benutze man die VUB_- oder VUL_-Versionen.

Häufig wird man auch eine ganze Reihe von Messungen akkumulieren wollen vor der Berechnung der OD. Man könnte also beispielsweise mehrere 16-bit Messungen mittels VUL_accVUS in einem ulVector akkumulieren und dann VUL_ODtoD aufrufen. Entsprechend bietet sich an, VQI_accVUL für Messungen höherer Genauigkeit zu verwenden und dann beispielsweise VQI_ODtoE aufzurufen.

Um Rauschen und Störungen abschneiden zu können, bieten die Funktionen VF_setODThresh usw. die Möglichkeit, ODThresh und ODThresh0 auf beliebige positive Werte zu setzen.

Ist ein Untergrund wie z.B. Dunkelströme abzuziehen, verwende man statt VF_OD besser VF_ODwDark.

Fehlerbehandlungkeine
Rückgabewertimmer FALSE(0)
QuerverweisVF_ODwDark,   VF_log10

VectorLib Inhaltsverzeichnis  OptiVec Home