linear_trans_colorT_linear_trans_colorLinearTransColorLinearTransColor (Operator)

Name

linear_trans_colorT_linear_trans_colorLinearTransColorLinearTransColor — 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)

Beschreibung

linear_trans_colorlinear_trans_colorLinearTransColorLinearTransColorLinearTransColor führt eine affine Transformation der Farbwerte des mehrkanaligen Bildes ImageImageImageImageimage aus und gibt das Ergebnis in ImageTransImageTransImageTransImageTransimageTrans zurück. Die affine Abbildung der Farbwerte wird durch die Transformationsmatrix TransMatTransMatTransMatTransMattransMat beschrieben. Wenn n die Anzahl der Kanäle in ImageImageImageImageimage und m die Anzahl der Kanäle in ImageTransImageTransImageTransImageTransimageTrans sind, ist TransMatTransMatTransMatTransMattransMat eine homogene m × (n+1) Matrix, die zeilenweise abgespeichert ist. Homogen heißt, dass in der linken m × n Untermatrix von TransMatTransMatTransMatTransMattransMat eine lineare Transformation der Farbwerte enthalten ist, während in der letzten Spalte von TransMatTransMatTransMatTransMattransMat ein konstanter Versatz der Farbwerte beschrieben wird. Die Transformationsmatrix wird typischerweise mit gen_principal_comp_transgen_principal_comp_transGenPrincipalCompTransGenPrincipalCompTransGenPrincipalCompTrans 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_transGenPrincipalCompTransGenPrincipalCompTransGenPrincipalCompTrans 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 TransMatTransMatTransMatTransMattransMat 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_rgbTransFromRgbTransFromRgbTransFromRgb skaliert die Zeilen der Matrix (außer dem konstanten Versatz) noch geeignet.

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

Achtung

linear_trans_colorlinear_trans_colorLinearTransColorLinearTransColorLinearTransColor 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) objectHImageHImageHobject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real)

Mehrkanaliges Grauwertbild.

ImageTransImageTransImageTransImageTransimageTrans (output_object)  multichannel-image(-array) objectHImageHImageHobject * (real)

Mehrkanaliges Ausgabebild.

TransMatTransMatTransMatTransMattransMat (input_control)  real-array HTupleHTupleHtuple (real) (double) (double) (double)

Transformationsmatrix für die Farbwerte.

Ergebnis

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

Vorgänger

gen_principal_comp_transgen_principal_comp_transGenPrincipalCompTransGenPrincipalCompTransGenPrincipalCompTrans

Nachfolger

convert_image_typeconvert_image_typeConvertImageTypeConvertImageTypeConvertImageType

Alternativen

principal_compprincipal_compPrincipalCompPrincipalCompPrincipalComp, trans_from_rgbtrans_from_rgbTransFromRgbTransFromRgbTransFromRgb, trans_to_rgbtrans_to_rgbTransToRgbTransToRgbTransToRgb

Modul

Foundation