gamma_image gamma_image GammaImage GammaImage gamma_image (Operator)
Name
gamma_image gamma_image GammaImage GammaImage gamma_image — Berechnen der Gamma-Kodierung oder Gamma-Dekodierung eines Bildes.
Signatur
Herror gamma_image (const Hobject Image , Hobject* GammaImage , double Gamma , double Offset , double Threshold , double MaxGray , const char* Encode )
Herror T_gamma_image (const Hobject Image , Hobject* GammaImage , const Htuple Gamma , const Htuple Offset , const Htuple Threshold , const Htuple MaxGray , const Htuple Encode )
void GammaImage (const HObject& Image , HObject* GammaImage , const HTuple& Gamma , const HTuple& Offset , const HTuple& Threshold , const HTuple& MaxGray , const HTuple& Encode )
HImage HImage ::GammaImage (double Gamma , double Offset , double Threshold , const HTuple& MaxGray , const HString& Encode ) const
HImage HImage ::GammaImage (double Gamma , double Offset , double Threshold , double MaxGray , const HString& Encode ) const
HImage HImage ::GammaImage (double Gamma , double Offset , double Threshold , double MaxGray , const char* Encode ) const
HImage HImage ::GammaImage (double Gamma , double Offset , double Threshold , double MaxGray , const wchar_t* Encode ) const
(Nur Windows)
static void HOperatorSet .GammaImage (HObject image , out HObject gammaImage , HTuple gamma , HTuple offset , HTuple threshold , HTuple maxGray , HTuple encode )
HImage HImage .GammaImage (double gamma , double offset , double threshold , HTuple maxGray , string encode )
HImage HImage .GammaImage (double gamma , double offset , double threshold , double maxGray , string encode )
Beschreibung
gamma_image gamma_image GammaImage GammaImage GammaImage gamma_image führt eine allgemeine Gamma-Kodierung oder
Gamma-Dekodierung des Eingabebildes Image Image Image Image image image durch und liefert
das Ergebnisbild in GammaImage GammaImage GammaImage GammaImage gammaImage gamma_image zurück. Eine allgemeine
Gamma-Kodierung kann wie folgt beschrieben werden:
Hierbei ist G' der Gamma-kodierte Grauwert, G der lineare
Grauwert,
, o =
Offset Offset Offset Offset offset offset , m = MaxGray MaxGray MaxGray MaxGray maxGray max_gray , t = Threshold Threshold Threshold Threshold threshold threshold
und s ein Faktor, der aus Gamma Gamma Gamma Gamma gamma gamma , Offset Offset Offset Offset offset offset ,
Threshold Threshold Threshold Threshold threshold threshold und MaxGray MaxGray MaxGray MaxGray maxGray max_gray so berechnet wird, dass der
lineare und exponentielle Teil der Transformation stetig sind.
In analoger Weise kann eine allgemeine Gamma-Dekodierung wie folgt
beschrieben werden:
Hierbei haben die Variablen dieselbe Bedeutung wie bei der
Gamma-Kodierung und es gilt
.
So kann zum Beispiel die Gamma-Kodierung oder Gamma-Dekodierung, die
von der sRGB-Norm gefordert wird, durch Gamma Gamma Gamma Gamma gamma gamma = 1.0/2.4,
Offset Offset Offset Offset offset offset = 0.055 und Threshold Threshold Threshold Threshold threshold threshold = 0.0031308
erhalten werden, während die Gamma-Kodierung oder Gamma-Dekodierung,
die von der HDTV-Videonorm gefordert wird, durch Gamma Gamma Gamma Gamma gamma gamma =
0.45, Offset Offset Offset Offset offset offset = 0.099 und Threshold Threshold Threshold Threshold threshold threshold = 0.018
erhalten werden kann. In jedem Fall sollte MaxGray MaxGray MaxGray MaxGray maxGray max_gray auf
einen Wert gesetzt werden, der zum Bildtyp von Image Image Image Image image image passt
(z.B. 255.0 für Byte-Bilder).
Achtung
gamma_image gamma_image GammaImage GammaImage GammaImage gamma_image kann für byte-, uint2-, und real-Bilder auf OpenCL
Geräten ausgeführt werden. Da die Operation in einfach statt wie auf der
CPU doppelt genauer Fließkommadarstellung berechnet wird, kann das Ergebnis
der OpenCL-Implementierung geringfügig von dem der CPU-Implementierung
abweichen.
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).
Automatisch parallelisiert auf Tupelebene.
Automatisch parallelisiert auf Kanalebene.
Automatisch parallelisiert auf Domainebene.
Parameter
Image Image Image Image image image (input_object) (multichannel-)image(-array) → object HImage HObject HImage Hobject (byte* / uint2* / real*) *erlaubt für Compute Devices
Eingabebild.
GammaImage GammaImage GammaImage GammaImage gammaImage gamma_image (output_object) (multichannel-)image(-array) → object HImage HObject HImage Hobject * (byte / uint2 / real)
Ausgabebild.
Gamma Gamma Gamma Gamma gamma gamma (input_control) real → HTuple float HTuple Htuple (real) (double ) (double ) (double )
Gamma-Koeffizient des exponentiellen Teils der
Transformation.
Defaultwert: 0.416666666667
Wertevorschläge: 0.416666666667, 0.45
Offset Offset Offset Offset offset offset (input_control) real → HTuple float HTuple Htuple (real) (double ) (double ) (double )
Versatz des exponentiellen Teils der Transformation.
Defaultwert: 0.055
Wertevorschläge: 0.055, 0.099
Threshold Threshold Threshold Threshold threshold threshold (input_control) real → HTuple float HTuple Htuple (real) (double ) (double ) (double )
Grauwert, für den die Transformation von linear nach
exponentiell wechselt.
Defaultwert: 0.0031308
Wertevorschläge: 0.0031308, 0.018
MaxGray MaxGray MaxGray MaxGray maxGray max_gray (input_control) number → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Maximaler Grauwert des Eingabebildtyps.
Defaultwert: 255.0
Wertevorschläge: 1.0, 255.0, 511.0, 1023.0, 4095.0, 16383.0, 65535.0
Encode Encode Encode Encode encode encode (input_control) string → HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
Berechnung einer Gamma-Kodierung, falls
'true' "true" "true" "true" "true" "true" , ansonsten einer Gamma-Dekodierung.
Defaultwert:
'true'
"true"
"true"
"true"
"true"
"true"
Werteliste: 'false' "false" "false" "false" "false" "false" , 'true' "true" "true" "true" "true" "true"
Alternativen
pow_image pow_image PowImage PowImage PowImage pow_image
Siehe auch
sqrt_image sqrt_image SqrtImage SqrtImage SqrtImage sqrt_image ,
exp_image exp_image ExpImage ExpImage ExpImage exp_image ,
log_image log_image LogImage LogImage LogImage log_image
Literatur
Erik Reinhard, Erum Arif Khan, Ahmet Oguz Akyüz, Garret M. Johnson:
„Color Imaging: Fundamentals and Applications.“ A K Peters, Ltd.,
2008.
CEI/IEC 61966-2-1:1999: „Colour management -- Default RGB colour
space -- sRGB.“
ITU-R BT.709-5: „Parameter values for the HDTV standards for
production and international programme exchange.“
Modul
Foundation