18 #ifndef PIC_COLORS_COLOR_CONV_XYZ_TO_HDRLAB_HPP 19 #define PIC_COLORS_COLOR_CONV_XYZ_TO_HDRLAB_HPP 23 #include "../colors/color_conv.hpp" 79 void direct(
float *colIn,
float *colOut)
128 float omega_e = powf(omega,
epsilon);
129 return (247.0
f * omega_e) / (omega_e +
two_e) + 0.02
f;
139 float omega_e = ( (x - 0.02f) *
two_e ) / (247.0f + 0.02f - x);
140 return powf(omega_e, 1.0
f /
epsilon);
155 if(Ys < 0.0f || Ys > 1.0
f) {
159 float sf = 1.25f - 0.25f * (
Ys / 0.184f);
161 float lf = logf(318.0
f) / logf(
Yabs);
163 return 0.58f / (sf * lf);
float Ys
Definition: color_conv_xyz_to_hdrlab.hpp:34
ColorConvXYZtoHDRLAB()
ColorConvXYZtoHDRLAB.
Definition: color_conv_xyz_to_hdrlab.hpp:42
void inverse(float *colIn, float *colOut)
inverse from HDR-CIELAB to XYZ
Definition: color_conv_xyz_to_hdrlab.hpp:96
float * WhitePointD65(float *whitePoint)
WhitePointD65.
Definition: color_conv_xyz_to_hdrlab.hpp:108
ColorConvXYZtoHDRLAB(float Yabs, float *whitePoint)
ColorConvXYZtoHDRLAB.
Definition: color_conv_xyz_to_hdrlab.hpp:61
bool linear
Definition: display.hpp:30
static float computeEpsilon(float Ys, float Yabs)
computeEpsilon
Definition: color_conv_xyz_to_hdrlab.hpp:149
float f(float omega)
f
Definition: color_conv_xyz_to_hdrlab.hpp:126
float f_inv(float x)
f_inv
Definition: color_conv_xyz_to_hdrlab.hpp:137
The ColorConvXYZtoHDRLAB class.
Definition: color_conv_xyz_to_hdrlab.hpp:30
float epsilon
Definition: color_conv_xyz_to_hdrlab.hpp:34
float two_e
Definition: color_conv_xyz_to_hdrlab.hpp:34
void direct(float *colIn, float *colOut)
direct from XYZ to HDR-CIELAB
Definition: color_conv_xyz_to_hdrlab.hpp:79
Definition: bilateral_separation.hpp:25
The ColorConv class.
Definition: color_conv.hpp:26
float Yabs
Definition: color_conv_xyz_to_hdrlab.hpp:34
float whitePoint[3]
Definition: color_conv_xyz_to_hdrlab.hpp:35