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

Achtung

gamma_imagegamma_imageGammaImageGammaImageGammaImagegamma_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

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

Eingabebild.

GammaImageGammaImageGammaImageGammaImagegammaImagegamma_image (output_object)  (multichannel-)image(-array) objectHImageHObjectHImageHobject * (byte / uint2 / real)

Ausgabebild.

GammaGammaGammaGammagammagamma (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Gamma-Koeffizient des exponentiellen Teils der Transformation.

Defaultwert: 0.416666666667

Wertevorschläge: 0.416666666667, 0.45

OffsetOffsetOffsetOffsetoffsetoffset (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Versatz des exponentiellen Teils der Transformation.

Defaultwert: 0.055

Wertevorschläge: 0.055, 0.099

ThresholdThresholdThresholdThresholdthresholdthreshold (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

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

Defaultwert: 0.0031308

Wertevorschläge: 0.0031308, 0.018

MaxGrayMaxGrayMaxGrayMaxGraymaxGraymax_gray (input_control)  number HTupleUnion[float, int]HTupleHtuple (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

EncodeEncodeEncodeEncodeencodeencode (input_control)  string HTuplestrHTupleHtuple (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_imagepow_imagePowImagePowImagePowImagepow_image

Siehe auch

sqrt_imagesqrt_imageSqrtImageSqrtImageSqrtImagesqrt_image, exp_imageexp_imageExpImageExpImageExpImageexp_image, log_imagelog_imageLogImageLogImageLogImagelog_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