From 57061265db1842d85c96bc678297d13b30661ab8 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Sat, 3 Nov 2012 15:06:43 +0100 Subject: [PATCH] Add a separate header file for the D65 white point. --- colorspace_conversion_effect.cpp | 6 ++---- d65.h | 13 +++++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 d65.h diff --git a/colorspace_conversion_effect.cpp b/colorspace_conversion_effect.cpp index ea4390a..baced38 100644 --- a/colorspace_conversion_effect.cpp +++ b/colorspace_conversion_effect.cpp @@ -4,6 +4,7 @@ #include "colorspace_conversion_effect.h" #include "util.h" +#include "d65.h" using namespace Eigen; @@ -17,9 +18,6 @@ static const double rec601_525_y_R = 0.340, rec601_525_y_G = 0.595, rec601_525_y static const double rec601_625_x_R = 0.640, rec601_625_x_G = 0.290, rec601_625_x_B = 0.150; static const double rec601_625_y_R = 0.330, rec601_625_y_G = 0.600, rec601_625_y_B = 0.060; -// The D65 white point. Given in both Rec. 601 and 709. -static const double d65_x = 0.3127, d65_y = 0.3290; - ColorspaceConversionEffect::ColorspaceConversionEffect() : source_space(COLORSPACE_sRGB), destination_space(COLORSPACE_sRGB) @@ -64,7 +62,7 @@ Matrix3d get_xyz_matrix(Colorspace space) Vector3d d65_XYZ( d65_x / d65_y, 1.0, - (1.0 - d65_x - d65_y) / d65_y + d65_z / d65_y ); // We have, for each primary (example is with red): diff --git a/d65.h b/d65.h new file mode 100644 index 0000000..86f423b --- /dev/null +++ b/d65.h @@ -0,0 +1,13 @@ +#ifndef _D65_H +#define _D65_H 1 + +// The D65 illuminant, which is the standard white point (ie. what you should get +// for R=G=B=1) for almost all video color spaces in common use. It has a color +// temperature roughly around 6500 K, which is sort of bluish; it is intended to +// simulate average daylight conditions. +// +// The definition (in xyz space) is given, for instance, in both Rec. 601 and 709. +static const double d65_x = 0.3127, d65_y = 0.3290, d65_z = 1.0 - d65_x - d65_y; + +#endif // !defined(_D65_H) + -- 2.39.2