Como pasar de LAB a YXZ

c-sharp imagen

Si necesitas convertir de LAB a YXZ tal vez de pueda ayudar esta función de C#, en la que le pasas los 3 valores LAB y te devuelve una lista con los 3 valores YXZ .

public List<Double> mtConvertirLabToXYZ(Double valorL, Double valorA, Double valorB)
{

Double Y = 0;
Double X = 0;
Double Z = 0;
Double auxY = 0;
Double auxX = 0;
Double auxZ = 0;

auxY = (valorL + 16) / 116;
auxX = valorA / 500 + auxY;
auxZ = auxY – valorB / 200;

if (Math.Pow(auxY, 3) > 0.008856)
{
auxY = Math.Pow(auxY, 3);
}
else
{
auxY = (auxY – 16 / 116) / 7.787;
}

if (Math.Pow(auxX, 3) > 0.008856)
{
auxX = Math.Pow(auxX, 3);
}
else
{
auxX = (auxX – 16 / 116) / 7.787;
}

if (Math.Pow(auxZ, 3) > 0.008856)
{
auxZ = Math.Pow(auxZ, 3);
}
else
{
auxZ = (auxZ – 16 / 116) / 7.787;
}

Double ref_X= 95.047 ;
Double ref_Y= 100.000;
Double ref_Z = 108.883;
X = ref_X * auxX;
Y = ref_Y * auxY;
Z = ref_Z * auxZ;

List<Double> listaXYZ = new List<double>();

listaXYZ.Add(X);
listaXYZ.Add(Y);
listaXYZ.Add(Z);
return listaXYZ;
}

1 opinión en “Como pasar de LAB a YXZ”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *