Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add Judd-Vos CMFs #28

Merged
merged 1 commit into from
Sep 28, 2017
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 97 additions & 1 deletion include/colorsystem.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -414,7 +414,7 @@ class Tristimulus
(max == 0.f) ? 0.f : (max - min) / max,
max);
}
Tristimulus toHSV_atan(void) const { return toHSV_atan(*this); }
Tristimulus toHSV_atan(void) const { return toHSV_atan(*this); }
static constexpr Tristimulus toHSV(const Tristimulus &t)
{
const float max = maxi(maxi(t[0], t[1]), t[2]);
Expand Down Expand Up @@ -1146,6 +1146,101 @@ static constexpr Spectrum CIE2012_Z({0.0000000000f, 0.0000000000f, 0.0000000000f
0.0000000000f, 0.0000000000f, 0.0000000000f, 0.0000000000f, 0.0000000000f, 0.0000000000f, 0.0000000000f, 0.0000000000f, 0.0000000000f, 0.0000000000f,
0.0000000000f, 0.0000000000f, 0.0000000000f, 0.0000000000f, 0.0000000000f, 0.0000000000f, 0.0000000000f, 0.0000000000f, 0.0000000000f, 0.0000000000f});

// taken from http://cvrl.ioo.ucl.ac.uk/, lerped by 1nm
static constexpr Spectrum CIE1931_JuddVos_X({ 0.0026899f,0.00321402f,0.00373814f,0.00426226f,0.00478638f,0.0053105f,0.0064046f,0.0074987f,0.0085928f,0.0096869f,
0.010781f,0.0127832f,0.0147854f,0.0167876f,0.0187898f,0.020792f,0.0242298f,0.0276676f,0.0311054f,0.0345432f,0.037981f,0.0430162f,0.0480514f,0.0530866f,
0.0581218f,0.063157f,0.0705138f,0.0778706f,0.0852274f,0.0925842f,0.099941f,0.1116008f,0.1232606f,0.1349204f,0.1465802f,0.15824f,0.172488f,0.186736f,
0.200984f,0.215232f,0.22948f,0.2398f,0.25012f,0.26044f,0.27076f,0.28108f,0.287054f,0.293028f,0.299002f,0.304976f,0.31095f,0.314904f,0.318858f,0.322812f,
0.326766f,0.33072f,0.331248f,0.331776f,0.332304f,0.332832f,0.33336f,0.330032f,0.326704f,0.323376f,0.320048f,0.31672f,0.31114f,0.30556f,0.29998f,0.2944f,
0.28882f,0.282994f,0.277168f,0.271342f,0.265516f,0.25969f,0.254304f,0.248918f,0.243532f,0.238146f,0.23276f,0.228206f,0.223652f,0.219098f,0.214544f,
0.20999f,0.202944f,0.195898f,0.188852f,0.181806f,0.17476f,0.166382f,0.158004f,0.149626f,0.141248f,0.13287f,0.1246848f,0.1164996f,0.1083144f,0.1001292f,
0.091944f,0.0849522f,0.0779604f,0.0709686f,0.0639768f,0.056985f,0.0519342f,0.0468834f,0.0418326f,0.0367818f,0.031731f,0.0283074f,0.0248838f,0.0214602f,
0.0180366f,0.014613f,0.01266022f,0.01070744f,0.00875466f,0.00680188f,0.0048491f,0.00434358f,0.00383806f,0.00333254f,0.00282702f,0.0023215f,0.00371518f,
0.00510886f,0.00650254f,0.00789622f,0.0092899f,0.01328752f,0.01728514f,0.02128276f,0.02528038f,0.029278f,0.0361806f,0.0430832f,0.0499858f,0.0568884f,
0.063791f,0.0731948f,0.0825986f,0.0920024f,0.1014062f,0.11081f,0.122032f,0.133254f,0.144476f,0.155698f,0.16692f,0.179072f,0.191224f,0.203376f,0.215528f,
0.22768f,0.240682f,0.253684f,0.266686f,0.279688f,0.29269f,0.306602f,0.320514f,0.334426f,0.348338f,0.36225f,0.37707f,0.39189f,0.40671f,0.42153f,0.43635f,
0.452106f,0.467862f,0.483618f,0.499374f,0.51513f,0.5316f,0.54807f,0.56454f,0.58101f,0.59748f,0.614226f,0.630972f,0.647718f,0.664464f,0.68121f,0.697818f,
0.714426f,0.731034f,0.747642f,0.76425f,0.780188f,0.796126f,0.812064f,0.828002f,0.84394f,0.858422f,0.872904f,0.887386f,0.901868f,0.91635f,0.928486f,0.940622f,
0.952758f,0.964894f,0.97703f,0.986224f,0.995418f,1.004612f,1.013806f,1.023f,1.02866f,1.03432f,1.03998f,1.04564f,1.0513f,1.05204f,1.05278f,1.05352f,1.05426f,
1.055f,1.05124f,1.04748f,1.04372f,1.03996f,1.0362f,1.027438f,1.018676f,1.009914f,1.001152f,0.99239f,0.979634f,0.966878f,0.954122f,0.941366f,0.92861f,0.91158f,
0.89455f,0.87752f,0.86049f,0.84346f,0.822734f,0.802008f,0.781282f,0.760556f,0.73983f,0.718442f,0.697054f,0.675666f,0.654278f,0.63289f,0.613014f,0.593138f,
0.573262f,0.553386f,0.53351f,0.514932f,0.496354f,0.477776f,0.459198f,0.44062f,0.423402f,0.406184f,0.388966f,0.371748f,0.35453f,0.339348f,0.324166f,
0.308984f,0.293802f,0.27862f,0.265866f,0.253112f,0.240358f,0.227604f,0.21485f,0.204202f,0.193554f,0.182906f,0.172258f,0.16161f,0.152928f,0.144246f,
0.135564f,0.126882f,0.1182f,0.1117106f,0.1052212f,0.0987318f,0.0922424f,0.085753f,0.0812178f,0.0766826f,0.0721474f,0.0676122f,0.063077f,0.0596284f,
0.0561798f,0.0527312f,0.0492826f,0.045834f,0.0430786f,0.0403232f,0.0375678f,0.0348124f,0.032057f,0.030083f,0.028109f,0.026135f,0.024161f,0.022187f,
0.020872f,0.019557f,0.018242f,0.016927f,0.015612f,0.0147092f,0.0138064f,0.0129036f,0.0120008f,0.011098f,0.01046306f,0.00982812f,0.00919318f,0.00855824f,
0.0079233f,0.00746926f,0.00701522f,0.00656118f,0.00610714f,0.0056531f,0.00532326f,0.00499342f,0.00466358f,0.00433374f,0.0040039f,0.00376818f,0.00353246f,
0.00329674f,0.00306102f,0.0028253f,0.00265918f,0.00249306f,0.00232694f,0.00216082f,0.0019947f,0.00187564f,0.00175658f,0.00163752f,0.00151846f,0.0013994f,
0.00131348f,0.00122756f,0.00114164f,0.00105572f,0.0009698f,0.000909534f,0.000849268f,0.000789002f,0.000728736f,0.00066847f,0.000627058f,0.000585646f,
0.000544234f,0.000502822f,0.00046141f,0.000433274f,0.000405138f,0.000377002f,0.000348866f,0.00032073f,0.00030173f,0.00028273f,0.00026373f,0.00024473f,
0.00022573f,0.00021253f,0.00019933f,0.00018613f,0.00017293f,0.00015973f,0.000150334f,0.000140938f,0.000131542f,0.000122146f,0.00011275f,0.000106103f,
9.94552E-05f,9.28078E-05f,8.61604E-05f,0.000079513f,7.48278E-05f,7.01426E-05f,6.54574E-05f,6.07722E-05f,0.000056087f,5.27778E-05f,4.94686E-05f,
4.61594E-05f,4.28502E-05f});

static constexpr Spectrum CIE1931_JuddVos_Y({ 0.0002f,0.000239112f,0.000278224f,0.000317336f,0.000356448f,0.00039556f,0.000476448f,0.000557336f,0.000638224f,
0.000719112f,0.0008f,0.00094914f,0.00109828f,0.00124742f,0.00139656f,0.0015457f,0.00179656f,0.00204742f,0.00229828f,0.00254914f,0.0028f,0.00317124f,
0.00354248f,0.00391372f,0.00428496f,0.0046562f,0.00520496f,0.00575372f,0.00630248f,0.00685124f,0.0074f,0.0082758f,0.0091516f,0.0100274f,0.0109032f,
0.011779f,0.0129232f,0.0140674f,0.0152116f,0.0163558f,0.0175f,0.0185356f,0.0195712f,0.0206068f,0.0216424f,0.022678f,0.0236024f,0.0245268f,0.0254512f,
0.0263756f,0.0273f,0.0283568f,0.0294136f,0.0304704f,0.0315272f,0.032584f,0.0336472f,0.0347104f,0.0357736f,0.0368368f,0.0379f,0.0387982f,0.0396964f,
0.0405946f,0.0414928f,0.042391f,0.0432728f,0.0441546f,0.0450364f,0.0459182f,0.0468f,0.0478644f,0.0489288f,0.0499932f,0.0510576f,0.052122f,0.0536976f,
0.0552732f,0.0568488f,0.0584244f,0.06f,0.0625884f,0.0651768f,0.0677652f,0.0703536f,0.072942f,0.0765496f,0.0801572f,0.0837648f,0.0873724f,0.09098f,
0.095352f,0.099724f,0.104096f,0.108468f,0.11284f,0.118076f,0.123312f,0.128548f,0.133784f,0.13902f,0.14519f,0.15136f,0.15753f,0.1637f,0.16987f,0.1775f,
0.18513f,0.19276f,0.20039f,0.20802f,0.218032f,0.228044f,0.238056f,0.248068f,0.25808f,0.271064f,0.284048f,0.297032f,0.310016f,0.323f,0.33948f,0.35596f,
0.37244f,0.38892f,0.4054f,0.42492f,0.44444f,0.46396f,0.48348f,0.503f,0.524022f,0.545044f,0.566066f,0.587088f,0.60811f,0.628488f,0.648866f,0.669244f,
0.689622f,0.71f,0.72702f,0.74404f,0.76106f,0.77808f,0.7951f,0.80848f,0.82186f,0.83524f,0.84862f,0.862f,0.87261f,0.88322f,0.89383f,0.90444f,0.91505f,
0.92284f,0.93063f,0.93842f,0.94621f,0.954f,0.959208f,0.964416f,0.969624f,0.974832f,0.98004f,0.983022f,0.986004f,0.988986f,0.991968f,0.99495f,0.99598f,
0.99701f,0.99804f,0.99907f,1.0001f,0.99908f,0.99806f,0.99704f,0.99602f,0.995f,0.99175f,0.9885f,0.98525f,0.982f,0.97875f,0.9734f,0.96805f,0.9627f,
0.95735f,0.952f,0.944716f,0.937432f,0.930148f,0.922864f,0.91558f,0.906464f,0.897348f,0.888232f,0.879116f,0.87f,0.859246f,0.848492f,0.837738f,0.826984f,
0.81623f,0.804384f,0.792538f,0.780692f,0.768846f,0.757f,0.744566f,0.732132f,0.719698f,0.707264f,0.69483f,0.682064f,0.669298f,0.656532f,0.643766f,0.631f,
0.618108f,0.605216f,0.592324f,0.579432f,0.56654f,0.553832f,0.541124f,0.528416f,0.515708f,0.503f,0.490744f,0.478488f,0.466232f,0.453976f,0.44172f,
0.429576f,0.417432f,0.405288f,0.393144f,0.381f,0.368904f,0.356808f,0.344712f,0.332616f,0.32052f,0.309416f,0.298312f,0.287208f,0.276104f,0.265f,
0.255404f,0.245808f,0.236212f,0.226616f,0.21702f,0.208616f,0.200212f,0.191808f,0.183404f,0.175f,0.167624f,0.160248f,0.152872f,0.145496f,0.13812f,
0.131896f,0.125672f,0.119448f,0.113224f,0.107f,0.1019304f,0.0968608f,0.0917912f,0.0867216f,0.081652f,0.0775216f,0.0733912f,0.0692608f,0.0651304f,
0.061f,0.0576654f,0.0543308f,0.0509962f,0.0476616f,0.044327f,0.0418616f,0.0393962f,0.0369308f,0.0344654f,0.032f,0.0302908f,0.0285816f,0.0268724f,
0.0251632f,0.023454f,0.0221632f,0.0208724f,0.0195816f,0.0182908f,0.017f,0.0159744f,0.0149488f,0.0139232f,0.0128976f,0.011872f,0.0111396f,0.0104072f,
0.0096748f,0.0089424f,0.00821f,0.00772246f,0.00723492f,0.00674738f,0.00625984f,0.0057723f,0.00543824f,0.00510418f,0.00477012f,0.00443606f,0.004102f,
0.00386742f,0.00363284f,0.00339826f,0.00316368f,0.0029291f,0.00276148f,0.00259386f,0.00242624f,0.00225862f,0.002091f,0.00196924f,0.00184748f,0.00172572f,
0.00160396f,0.0014822f,0.00139516f,0.00130812f,0.00122108f,0.00113404f,0.001047f,0.00098563f,0.00092426f,0.00086289f,0.00080152f,0.00074015f,0.00069612f,
0.00065209f,0.00060806f,0.00056403f,0.00052f,0.000488186f,0.000456372f,0.000424558f,0.000392744f,0.00036093f,0.000338584f,0.000316238f,0.000293892f,
0.000271546f,0.0002492f,0.000233822f,0.000218444f,0.000203066f,0.000187688f,0.00017231f,0.000161848f,0.000151386f,0.000140924f,0.000130462f,0.00012f,
0.000112924f,0.000105848f,0.000098772f,0.000091696f,0.00008462f,0.000079696f,0.000074772f,0.000069848f,0.000064924f,0.00006f,5.64892E-05f,5.29784E-05f,
4.94676E-05f,4.59568E-05f,0.000042446f,3.99568E-05f,3.74676E-05f,3.49784E-05f,3.24892E-05f,0.00003f,0.000028242f,0.000026484f,0.000024726f,0.000022968f,
0.00002121f,1.99658E-05f,1.87216E-05f,1.74774E-05f,1.62332E-05f });

static constexpr Spectrum CIE1931_JuddVos_Z({ 0.01226f,0.0146524f,0.0170448f,0.0194372f,0.0218296f,0.024222f,0.0292276f,0.0342332f,0.0392388f,0.0442444f,
0.04925f,0.058427f,0.067604f,0.076781f,0.085958f,0.095135f,0.110926f,0.126717f,0.142508f,0.158299f,0.17409f,0.197298f,0.220506f,0.243714f,0.266922f,
0.29013f,0.32421f,0.35829f,0.39237f,0.42645f,0.46053f,0.514756f,0.568982f,0.623208f,0.677434f,0.73166f,0.798488f,0.865316f,0.932144f,0.998972f,
1.0658f,1.11556f,1.16532f,1.21508f,1.26484f,1.3146f,1.34512f,1.37564f,1.40616f,1.43668f,1.4672f,1.48968f,1.51216f,1.53464f,1.55712f,1.5796f,1.587f,
1.5944f,1.6018f,1.6092f,1.6166f,1.60692f,1.59724f,1.58756f,1.57788f,1.5682f,1.5489f,1.5296f,1.5103f,1.491f,1.4717f,1.45216f,1.43262f,1.41308f,1.39354f,
1.374f,1.35754f,1.34108f,1.32462f,1.30816f,1.2917f,1.28048f,1.26926f,1.25804f,1.24682f,1.2356f,1.21124f,1.18688f,1.16252f,1.13816f,1.1138f,1.07948f,
1.04516f,1.01084f,0.97652f,0.9422f,0.904952f,0.867704f,0.830456f,0.793208f,0.75596f,0.722048f,0.688136f,0.654224f,0.620312f,0.5864f,0.558458f,0.530516f,
0.502574f,0.474632f,0.44669f,0.425584f,0.404478f,0.383372f,0.362266f,0.34116f,0.325802f,0.310444f,0.295086f,0.279728f,0.26437f,0.252684f,0.240998f,
0.229312f,0.217626f,0.20594f,0.195642f,0.185344f,0.175046f,0.164748f,0.15445f,0.145396f,0.136342f,0.127288f,0.118234f,0.10918f,0.102661f,0.096142f,
0.089623f,0.083104f,0.076585f,0.0725134f,0.0684418f,0.0643702f,0.0602986f,0.056227f,0.0532548f,0.0502826f,0.0473104f,0.0443382f,0.041366f,0.0389634f,
0.0365608f,0.0341582f,0.0317556f,0.029353f,0.0274908f,0.0256286f,0.0237664f,0.0219042f,0.020042f,0.018696f,0.01735f,0.016004f,0.014658f,0.013312f,
0.01240606f,0.01150012f,0.01059418f,0.00968824f,0.0087823f,0.0081973f,0.0076123f,0.0070273f,0.0064423f,0.0058573f,0.0054957f,0.0051341f,0.0047725f,
0.0044109f,0.0040493f,0.00382378f,0.00359826f,0.00337274f,0.00314722f,0.0029217f,0.00279278f,0.00266386f,0.00253494f,0.00240602f,0.0022771f,0.0022158f,
0.0021545f,0.0020932f,0.0020319f,0.0019706f,0.0019378f,0.001905f,0.0018722f,0.0018394f,0.0018066f,0.00175426f,0.00170192f,0.00164958f,0.00159724f,
0.0015449f,0.00148288f,0.00142086f,0.00135884f,0.00129682f,0.0012348f,0.00121138f,0.00118796f,0.00116454f,0.00114112f,0.0011177f,0.001075288f,
0.001032876f,0.000990464f,0.000948052f,0.00090564f,0.000863446f,0.000821252f,0.000779058f,0.000736864f,0.00069467f,0.000641506f,0.000588342f,
0.000535178f,0.000482014f,0.00042885f,0.000406714f,0.000384578f,0.000362442f,0.000340306f,0.00031817f,0.000305732f,0.000293294f,0.000280856f,
0.000268418f,0.00025598f,0.000236142f,0.000216304f,0.000196466f,0.000176628f,0.00015679f,0.000144971f,0.000133152f,0.000121332f,0.000109513f,
0.000097694f,0.000091944f,0.000086194f,0.000080444f,0.000074694f,0.000068944f,6.53882E-05f,6.18324E-05f,5.82766E-05f,5.47208E-05f,0.000051165f,
4.81352E-05f,4.51054E-05f,4.20756E-05f,3.90458E-05f,0.000036016f,3.36604E-05f,3.13048E-05f,2.89492E-05f,2.65936E-05f,0.000024238f,2.27734E-05f,
2.13088E-05f,1.98442E-05f,1.83796E-05f,0.000016915f,1.59132E-05f,1.49114E-05f,1.39096E-05f,1.29078E-05f,0.000011906f,1.11546E-05f,1.04032E-05f,
9.65174E-06f,8.90032E-06f,8.1489E-06f,7.63924E-06f,7.12958E-06f,6.61992E-06f,6.11026E-06f,5.6006E-06f,5.27136E-06f,4.94212E-06f,4.61288E-06f,
4.28364E-06f,3.9544E-06f,3.72176E-06f,3.48912E-06f,3.25648E-06f,3.02384E-06f,2.7912E-06f,2.61648E-06f,2.44176E-06f,2.26704E-06f,2.09232E-06f,
1.9176E-06f,1.79678E-06f,1.67596E-06f,1.55514E-06f,1.43432E-06f,1.3135E-06f,1.23384E-06f,1.15418E-06f,1.07451E-06f,9.94852E-07f,9.1519E-07f,
8.61686E-07f,8.08182E-07f,7.54678E-07f,7.01174E-07f,6.4767E-07f,6.1084E-07f,5.7401E-07f,5.3718E-07f,5.0035E-07f,4.6352E-07f,4.37424E-07f,4.11328E-07f,
3.85232E-07f,3.59136E-07f,3.3304E-07f,3.14078E-07f,2.95116E-07f,2.76154E-07f,2.57192E-07f,2.3823E-07f,2.24636E-07f,2.11042E-07f,1.97448E-07f,
1.83854E-07f,1.7026E-07f,1.60622E-07f,1.50984E-07f,1.41346E-07f,1.31708E-07f,1.2207E-07f,1.15077E-07f,1.08085E-07f,1.01092E-07f,9.40996E-08f,
8.7107E-08f,8.19766E-08f,7.68462E-08f,7.17158E-08f,6.65854E-08f,6.1455E-08f,5.77964E-08f,5.41378E-08f,5.04792E-08f,4.68206E-08f,4.3162E-08f,
4.06054E-08f,3.80488E-08f,3.54922E-08f,3.29356E-08f,3.0379E-08f,2.8614E-08f,2.6849E-08f,2.5084E-08f,2.3319E-08f,2.1554E-08f,2.03418E-08f,1.91296E-08f,
1.79174E-08f,1.67052E-08f,1.5493E-08f,1.46352E-08f,1.37774E-08f,1.29196E-08f,1.20618E-08f,1.1204E-08f,1.05807E-08f,9.95732E-09f,9.33398E-09f,
8.71064E-09f,8.0873E-09f,7.63664E-09f,7.18598E-09f,6.73532E-09f,6.28466E-09f,5.834E-09f,5.5094E-09f,5.1848E-09f,4.8602E-09f,4.5356E-09f,
4.211E-09f,3.97646E-09f,3.74192E-09f,3.50738E-09f,3.27284E-09f});


// standard illuminant D65( linear interpolated to 1nm )
static constexpr Spectrum CIE_D65({49.97550f, 50.44276f, 50.91002f, 51.37728f, 51.84454f, 52.31180f, 52.77908f, 53.24636f, 53.71364f, 54.18092f,
54.64820f, 57.45886f, 60.26952f, 63.08018f, 65.89084f, 68.70150f, 71.51218f, 74.32286f, 77.13354f, 79.94422f,
Expand Down Expand Up @@ -2059,6 +2154,7 @@ namespace Macbeth

// Standard observers
static constexpr Observer CIE1931(CIE1931_X, CIE1931_Y, CIE1931_Z);
static constexpr Observer CIE31JV(CIE1931_JuddVos_X, CIE1931_JuddVos_Y, CIE1931_JuddVos_Z);
static constexpr Observer CIE2012(CIE2012_X, CIE2012_Y, CIE2012_Z);

//standard illuminants
Expand Down