VUB_ODtoF | VUB_ODtoD | VUB_ODtoE |
VUS_ODtoF | VUS_ODtoD | VUS_ODtoE |
VUL_ODtoF | VUL_ODtoD | VUL_ODtoE |
VUQ_ODtoF | VUQ_ODtoD | VUQ_ODtoE |
VUI_ODtoF | VUI_ODtoD | VUI_ODtoE |
VQI_ODtoF | VQI_ODtoD | VQI_ODtoE |
|
|
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/Delphi | uses 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/Delphi | uses 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;
|
|
Beschreibung | ODi = 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. |
|
|
Rückgabewert | immer FALSE(0) |
|
|