Mi Blog

Blog personal de José Ramón Martínez Pérez.

Cambiar de coordenadas RGB a CIE1931 x,y

| Sin comentarios

CIE 1931
El diagrama de cromaticidad CIE 1931 es un diagrama creado en 1931 por parte de la «Comission Internacionale de l´Eclairage» (CIE), como una forma de representar todos los colores visibles por el ojo humano de una forma sencilla. Una parte de estos colores es el triángulo formado por las coordenadas RGB, modelo estándard en el mundo de la informática, muy usado en pantallas, escáneres, ficheros de imágenes, etc.
Hay veces en las que es necesario cambiar de una base a otra; buscando por Internet tuve suerte y encontré el código para pasar de coordenadas RGB a coordenadas x,y del diagrama CIE1931, así que pasar el código a Visual Basic es de lo más sencillo. Aquí lo dejo por si es de interés:

sub rgb_to_xy
For i = 1 To 3
nt_R = (Hoja1.Cells(i, 1) / 255)
nt_G = (Hoja1.Cells(i, 2) / 255)
nt_B = (Hoja1.Cells(i, 3) / 255)

If (nt_R > 0.04045) Then
nt_R = ((nt_R + 0.055) / 1.055) ^ 2.4
Else
nt_R = nt_R / 12.92
End If
If (nt_G > 0.04045) Then
nt_G = ((nt_G + 0.055) / 1.055) ^ 2.4
Else
nt_G = nt_G / 12.92
End If
If (nt_B > 0.04045) Then
nt_B = ((nt_B + 0.055) / 1.055) ^ 2.4
Else
nt_B = nt_B / 12.92
End If

nt_R = nt_R * 100
nt_G = nt_G * 100
nt_B = nt_B * 100

X = nt_R * 0.4124 + nt_G * 0.3576 + nt_B * 0.1805
Y = nt_R * 0.2126 + nt_G * 0.7152 + nt_B * 0.0722
Z = nt_R * 0.0193 + nt_G * 0.1192 + nt_B * 0.9505

Hoja1.Cells(i, 4) = X / (X + Y + Z)
Hoja1.Cells(i, 5) = Y / (X + Y + Z)
Next i
End Sub

Deja un comentario

Los campos requeridos estan marcados con *.