T_quantal =
ComputeCIEConeFundamentals(S,fieldSizeDegrees,ageInYears,pupilDiameterMM,[lambdaMax],[whichNomogram],[
LserWeight])
Function to compute normalized cone quantal sensitivities
from underlying pieces, as specified in CIE 170-1:2006.
This standard allows customizing the fundamentals for
field size, observer age, and pupil size in mm.
To get the Stockman-Sharpe/CIE 2-deg fundamentals, use
fieldSizeDegrees = 2;
ageInYears = 32;
pupilDiameterMM = 3;
and don't pass the rest of the arguments.
Note that this routine returns normalized quantal sensitivities. You
may want energy sensitivities. In that case, use
EnergyToQuanta to convert
T_energy =
EnergyToQuanta(S,T_quantal')'
and then renormalize. (You call
EnergyToQuanta because you're converting
sensitivities, which go the opposite directoin from spectra.)
Note from DHB: Although this will compute something over any wavelength
range, I'd recommend not going lower than 390 or above about 780 without
thinking hard about how various pieces were extrapolated out of the range
that they are specified in the standard. Indeed, the lens optical
density measurements only go down to 400 nm and these are extropolated
to go below 400.
This routine will also compute from absorbance based on a nomogram, where
whichNomogram can be any source understood by the routine
PhotopigmentNomogram. To obtain this behavior, pass a lambdaMax vector.
You can then also optionally pass a nomogram source (default:
StockmanSharpe).
The nominal values of lambdaMax to fit the CIE 2-degree fundamentals with the
Stockman-Sharpe nomogram are 558.9, 530.3, and 420.7 nm for the LMS cones respectively.
These in fact do a reasonable job of reconstructing the CIE 2-degree fundamentals, although
there are small deviations from what you get if you simply read in the tabulated cone
absorbances. Thus starting with these as nominal values and shifting is a reasonable way to
produce fundamentals tailored to observers with different known photopigments.
Relevant to that enterprise, S & S (2000) estimate the wavelength difference
between the ser/ala variants to be be 2.7 nm (ser longer).
If you pass lambaMax and its length is 4, then first two values are treated as
the peak wavelengths of the ser/ala variants of the L cone pigment, and these
are then weighted according to
LserWeight and (1-
LserWeight). The default
for
LserWeight is 0.56. After travelling it for a distance, I (DHB) do not
particularly recommend going down this road. But if you want to, I recommend
you look at and play with
FitConeFundametnalsTest.
See also:
ComputeRawConeFundamentals,
CIEConeFundamentalsTest,
FitConeFundamentalsTest,
FitConeFundamentalsWithNomogram,
StockmanSharpeNomogram.
8/13/11 dhb Wrote it.
8/14/11 dhb Clean up a little.
Psychtoolbox/PsychColorimetricData/ComputeCIEConeFundamentals.m