lut_trans — Transformation eines Bildes mit einer Grauwerttabelle.
lut_trans(Image : ImageResult : Lut : )
lut_trans transformiert ein Bild Image mittels
einer Tabelle Lut. Die Tabelle funktioniert dabei wie eine
Transformationsfunktion. Für byte-Bilder muss Lut ein
Tupel der Länge 256 sein. Für int2-Bilder muss Lut ein
Tupel der Länge 256 <= Länge <= 65536 sein. Falls die Länge von
Lut <= 32768 ist, wird die Transformation nur auf den
positiven Grauwerten durchgeführt, d.h., das erste Element von
Lut spezifiziert den neuen Grauwert für den
Eingabegrauwert 0. Falls Lut länger ist als 32768, so
muss die Länge von Lut genau 65536 betragen. In diesem
Fall werden sowohl die positiven als auch die negativen Werte
transformiert, wobei das erste Element den neuen Grauwert für den
Eingabegrauwert -32768 spezifiziert, während das letzte Element den
neuen Grauwert für den Eingabegrauwert 32767 spezifiziert. In jedem
Fall werden diejenigen Ausgabegrauwerte, deren Eingabegrauwerte
außerhalb des gültigen Bereiches von Lut liegen, auf 0
gesetzt. Für uint2-Bilder muss Lut ein Tupel der Länge
256 <= Länge <= 65536 sein. Grauwerte außerhalb des gültigen
Bereichs von Lut werden auf 0 gesetzt.
lut_trans kann auf OpenCL-Geräten ausgeführt werden.
Image (input_object) (multichannel-)image(-array) → object (byte* / int2* / uint2*) *erlaubt für Compute Devices
Bild, dessen Grauwerte transformiert werden sollen.
ImageResult (output_object) (multichannel-)image(-array) → object (byte / int2 / uint2)
Ergebnisbild.
Lut (input_control) integer-array → (integer)
Tabelle, die die Transformation angibt.
* Apply a gamma correction to an image.
Gamma := 2.2
GammaLUT := []
for G := 0 to 255 by 1
GammaLUT := [GammaLUT,round(255.0*pow(G/255.0,1.0/Gamma))]
endfor
read_image (Image, 'mreut')
lut_trans (Image, ImageGamma, GammaLUT)
lut_trans liefert den Wert TRUE, falls die Parameter
korrekt sind. Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
Foundation