gamma_imagegamma_imageGammaImageGammaImagegamma_image (Operator)

Name

gamma_imagegamma_imageGammaImageGammaImagegamma_image — Berechnen der Gamma-Kodierung oder Gamma-Dekodierung eines Bildes.

Signatur

gamma_image(Image : GammaImage : Gamma, Offset, Threshold, MaxGray, Encode : )

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)

def gamma_image(image: HObject, gamma: float, offset: float, threshold: float, max_gray: Union[float, int], encode: str) -> HObject

Beschreibung

gamma_imagegamma_imageGammaImageGammaImagegamma_image führt eine allgemeine Gamma-Kodierung oder Gamma-Dekodierung des Eingabebildes ImageImageImageimageimage durch und liefert das Ergebnisbild in GammaImageGammaImageGammaImagegammaImagegamma_image zurück. Eine allgemeine Gamma-Kodierung kann wie folgt beschrieben werden: Hierbei ist G' der Gamma-kodierte Grauwert, G der lineare Grauwert, , o = OffsetOffsetOffsetoffsetoffset, m = MaxGrayMaxGrayMaxGraymaxGraymax_gray, t = ThresholdThresholdThresholdthresholdthreshold und s ein Faktor, der aus GammaGammaGammagammagamma, OffsetOffsetOffsetoffsetoffset, ThresholdThresholdThresholdthresholdthreshold und MaxGrayMaxGrayMaxGraymaxGraymax_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 GammaGammaGammagammagamma = 1.0/2.4, OffsetOffsetOffsetoffsetoffset = 0.055 und ThresholdThresholdThresholdthresholdthreshold = 0.0031308 erhalten werden, während die Gamma-Kodierung oder Gamma-Dekodierung, die von der HDTV-Videonorm gefordert wird, durch GammaGammaGammagammagamma = 0.45, OffsetOffsetOffsetoffsetoffset = 0.099 und ThresholdThresholdThresholdthresholdthreshold = 0.018 erhalten werden kann. In jedem Fall sollte MaxGrayMaxGrayMaxGraymaxGraymax_gray auf einen Wert gesetzt werden, der zum Bildtyp von ImageImageImageimageimage passt (z.B. 255.0 für Byte-Bilder).

Achtung

gamma_imagegamma_imageGammaImageGammaImagegamma_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

Parameter

ImageImageImageimageimage (input_object)  (multichannel-)image(-array) objectHImageHObjectHObjectHobject (byte* / uint2* / real*) *erlaubt für Compute Devices

Eingabebild.

GammaImageGammaImageGammaImagegammaImagegamma_image (output_object)  (multichannel-)image(-array) objectHImageHObjectHObjectHobject * (byte / uint2 / real)

Ausgabebild.

GammaGammaGammagammagamma (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Gamma-Koeffizient des exponentiellen Teils der Transformation.

Default: 0.416666666667

Wertevorschläge: 0.416666666667, 0.45

OffsetOffsetOffsetoffsetoffset (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Versatz des exponentiellen Teils der Transformation.

Default: 0.055

Wertevorschläge: 0.055, 0.099

ThresholdThresholdThresholdthresholdthreshold (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Grauwert, für den die Transformation von linear nach exponentiell wechselt.

Default: 0.0031308

Wertevorschläge: 0.0031308, 0.018

MaxGrayMaxGrayMaxGraymaxGraymax_gray (input_control)  number HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Maximaler Grauwert des Eingabebildtyps.

Default: 255.0

Wertevorschläge: 1.0, 255.0, 511.0, 1023.0, 4095.0, 16383.0, 65535.0

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

Berechnung einer Gamma-Kodierung, falls 'true'"true""true""true""true", ansonsten einer Gamma-Dekodierung.

Default: 'true' "true" "true" "true" "true"

Werteliste: 'false'"false""false""false""false", 'true'"true""true""true""true"

Alternativen

pow_imagepow_imagePowImagePowImagepow_image

Siehe auch

sqrt_imagesqrt_imageSqrtImageSqrtImagesqrt_image, exp_imageexp_imageExpImageExpImageexp_image, log_imagelog_imageLogImageLogImagelog_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