linear_trans_colorT_linear_trans_colorLinearTransColorLinearTransColorlinear_trans_color (Operator)

Name

linear_trans_colorT_linear_trans_colorLinearTransColorLinearTransColorlinear_trans_color — Affine Transformation der Farbwerte eines mehrkanaligen Bildes.

Signatur

linear_trans_color(Image : ImageTrans : TransMat : )

Herror T_linear_trans_color(const Hobject Image, Hobject* ImageTrans, const Htuple TransMat)

void LinearTransColor(const HObject& Image, HObject* ImageTrans, const HTuple& TransMat)

HImage HImage::LinearTransColor(const HTuple& TransMat) const

static void HOperatorSet.LinearTransColor(HObject image, out HObject imageTrans, HTuple transMat)

HImage HImage.LinearTransColor(HTuple transMat)

def linear_trans_color(image: HObject, trans_mat: Sequence[float]) -> HObject

Beschreibung

linear_trans_colorlinear_trans_colorLinearTransColorLinearTransColorlinear_trans_color führt eine affine Transformation der Farbwerte des mehrkanaligen Bildes ImageImageImageimageimage aus und gibt das Ergebnis in ImageTransImageTransImageTransimageTransimage_trans zurück. Die affine Abbildung der Farbwerte wird durch die Transformationsmatrix TransMatTransMatTransMattransMattrans_mat beschrieben. Wenn n die Anzahl der Kanäle in ImageImageImageimageimage und m die Anzahl der Kanäle in ImageTransImageTransImageTransimageTransimage_trans sind, ist TransMatTransMatTransMattransMattrans_mat eine homogene m × (n+1) Matrix, die zeilenweise abgespeichert ist. Homogen heißt, dass in der linken m × n Untermatrix von TransMatTransMatTransMattransMattrans_mat eine lineare Transformation der Farbwerte enthalten ist, während in der letzten Spalte von TransMatTransMatTransMattransMattrans_mat ein konstanter Versatz der Farbwerte beschrieben wird. Die Transformationsmatrix wird typischerweise mit gen_principal_comp_transgen_principal_comp_transGenPrincipalCompTransGenPrincipalCompTransgen_principal_comp_trans erzeugt. Insbesondere kann ein Bild auf seine ersten m Hauptachsen projiziert werden, indem die ersten m × (n+1) Werte der Transformation, die von gen_principal_comp_transgen_principal_comp_transGenPrincipalCompTransGenPrincipalCompTransgen_principal_comp_trans zurückgeliefert wird, selektiert werden. Die Transformation kann aber auch direkt spezifiziert werden. So kann eine Transformation von RGB nach YIQ, die durch folgende affine Abbildung gegeben ist durch folgende Wahl von TransMatTransMatTransMattransMattrans_mat erreicht werden: [0.299,0.587,0.114,0.0,0.599,-0.276,-0.324,127.5,0.214,-0.522,0.309,127.5] Hierbei ist zu beachten, dass die obige Transformation unnormalisiert ist, d.h. die Werte können den Bereich [0,255] verlassen. Die Transformation 'yiq'"yiq""yiq""yiq""yiq" in trans_from_rgbtrans_from_rgbTransFromRgbTransFromRgbtrans_from_rgb skaliert die Zeilen der Matrix (außer dem konstanten Versatz) noch geeignet.

Um einen Verlust von Information zu vermeiden, liefert linear_trans_colorlinear_trans_colorLinearTransColorLinearTransColorlinear_trans_color als Ausgabe ein Bild vom Typ real zurück. Falls ein anderer Bildtyp gewünscht ist, kann dieser mit convert_image_typeconvert_image_typeConvertImageTypeConvertImageTypeconvert_image_type erzeugt werden.

Achtung

linear_trans_colorlinear_trans_colorLinearTransColorLinearTransColorlinear_trans_color kann auf OpenCL-Geräten ausgeführt werden, sofern das Eingangsbild nicht mehr als neun Kanäle besitzt und auf ein Bild transformiert wird, das nicht mehr als drei Kanäle enthält. Da das Ergebnis mit einfacher Genauigkeit berechnet wird, kann es von dem mit der CPU berechneten Ergebnis abweichen.

Ausführungsinformationen

Parameter

ImageImageImageimageimage (input_object)  multichannel-image(-array) objectHImageHObjectHObjectHobject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real)

Mehrkanaliges Grauwertbild.

ImageTransImageTransImageTransimageTransimage_trans (output_object)  multichannel-image(-array) objectHImageHObjectHObjectHobject * (real)

Mehrkanaliges Ausgabebild.

TransMatTransMatTransMattransMattrans_mat (input_control)  real-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Transformationsmatrix für die Farbwerte.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert linear_trans_colorlinear_trans_colorLinearTransColorLinearTransColorlinear_trans_color den Wert 2 ( H_MSG_TRUE) . Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

gen_principal_comp_transgen_principal_comp_transGenPrincipalCompTransGenPrincipalCompTransgen_principal_comp_trans

Nachfolger

convert_image_typeconvert_image_typeConvertImageTypeConvertImageTypeconvert_image_type

Alternativen

principal_compprincipal_compPrincipalCompPrincipalCompprincipal_comp, trans_from_rgbtrans_from_rgbTransFromRgbTransFromRgbtrans_from_rgb, trans_to_rgbtrans_to_rgbTransToRgbTransToRgbtrans_to_rgb

Modul

Foundation