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_colorLinearTransColorLinearTransColorLinearTransColorlinear_trans_color führt eine affine Transformation der Farbwerte des mehrkanaligen Bildes ImageImageImageImageimageimage aus und gibt das Ergebnis in ImageTransImageTransImageTransImageTransimageTransimage_trans zurück. Die affine Abbildung der Farbwerte wird durch die Transformationsmatrix TransMatTransMatTransMatTransMattransMattrans_mat beschrieben. Wenn n die Anzahl der Kanäle in ImageImageImageImageimageimage und m die Anzahl der Kanäle in ImageTransImageTransImageTransImageTransimageTransimage_trans sind, ist TransMatTransMatTransMatTransMattransMattrans_mat eine homogene m × (n+1) Matrix, die zeilenweise abgespeichert ist. Homogen heißt, dass in der linken m × n Untermatrix von TransMatTransMatTransMatTransMattransMattrans_mat eine lineare Transformation der Farbwerte enthalten ist, während in der letzten Spalte von TransMatTransMatTransMatTransMattransMattrans_mat ein konstanter Versatz der Farbwerte beschrieben wird. Die Transformationsmatrix wird typischerweise mit gen_principal_comp_transgen_principal_comp_transGenPrincipalCompTransGenPrincipalCompTransGenPrincipalCompTransgen_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_transGenPrincipalCompTransGenPrincipalCompTransGenPrincipalCompTransgen_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 TransMatTransMatTransMatTransMattransMattrans_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""yiq" in trans_from_rgbtrans_from_rgbTransFromRgbTransFromRgbTransFromRgbtrans_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_colorLinearTransColorLinearTransColorLinearTransColorlinear_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_typeConvertImageTypeConvertImageTypeConvertImageTypeconvert_image_type erzeugt werden.

Achtung

linear_trans_colorlinear_trans_colorLinearTransColorLinearTransColorLinearTransColorlinear_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

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

Mehrkanaliges Grauwertbild.

ImageTransImageTransImageTransImageTransimageTransimage_trans (output_object)  multichannel-image(-array) objectHImageHObjectHImageHobject * (real)

Mehrkanaliges Ausgabebild.

TransMatTransMatTransMatTransMattransMattrans_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_colorLinearTransColorLinearTransColorLinearTransColorlinear_trans_color den Wert TRUE. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

gen_principal_comp_transgen_principal_comp_transGenPrincipalCompTransGenPrincipalCompTransGenPrincipalCompTransgen_principal_comp_trans

Nachfolger

convert_image_typeconvert_image_typeConvertImageTypeConvertImageTypeConvertImageTypeconvert_image_type

Alternativen

principal_compprincipal_compPrincipalCompPrincipalCompPrincipalCompprincipal_comp, trans_from_rgbtrans_from_rgbTransFromRgbTransFromRgbTransFromRgbtrans_from_rgb, trans_to_rgbtrans_to_rgbTransToRgbTransToRgbTransToRgbtrans_to_rgb

Modul

Foundation