Contents
% KisoHB_Fundamentals_vs_Luminosity.m % % Stockman & Sharpoe (2000)による錐体分光感度と明所視分光視感効率との関係を検証する。 % また、Psychophysics toolbox ver.3で提供されているデータの精度を検証する。 % http://www.cvrl.org/によると、2°視野の分光視感効率はVF(λ)は以下のように表せる。 % VF(λ) = 0.689903 L(λ) + 0.348322 M(λ) (エネルギー単位) % 実際に逆算して、検証する。 % clear all; close all;
http://www.cvrl.org/で提供されているデータで検証
% Stockman & Sharpoe (2000)による錐体分光感度の読み込み % データは、カレント・ディレクトリーに保存されているものとする。 buf = csvread('linss2_10e_1.csv'); % 1 nmステップ T_cones_ss2_ORG = buf(:,2:4)'; S_cones_ss2_ORG = [buf(1,1), 1, size(buf,1)]; % Stockman & Sharpoe (2000)による10-deg 錐体分光感度の読み込み % buf = csvread('linss10e_1.csv'); % 1 nmステップ % T_cones_ss10_ORG = buf(:,2:4)'; % S_cones_ss10_ORG = [buf(1,1), 1, size(buf,1)]; % 分光視感効率の読み込み % CIE "physiologically-relevant" luminous efficiency functions consistent with % the Stockman & Sharpe cone fundamentals buf = csvread('linCIE2008v2e_1.csv'); nData = size(buf,1); T_CIE_Y2_ORG = buf(:,2)'; factors = (T_cones_ss2_ORG(1:2,:)'\T_CIE_Y2_ORG'); fprintf('http://www.cvrl.org/\n'); fprintf('VF = %8.6f L + %8.6f M\n', factors(1), factors(2));
http://www.cvrl.org/ VF = 0.689903 L + 0.348322 M
Psychtoolbox で提供されているデータで検証
% Stockman & Sharpoe (2000)による錐体分光感度の読み込み load T_cones_ss2; % 分光視感効率の読み込み % CIE "physiologically-relevant" luminous efficiency functions consistent with % the Stockman & Sharpe cone fundamentals load T_CIE_Y2; % 確認したところ、これはT_CIE_Y2_ORGと一致する factors2 = (T_cones_ss2(1:2,:)'\T_CIE_Y2'); fprintf('PTB3\n'); fprintf('VF = %8.6f L + %8.6f M\n', factors2(1), factors2(2));
PTB3 VF = 0.690035 L + 0.348167 M
コメント
% オリジナルのデータでは、Webに記載されている係数と同じ値が得られるが、PTB3のデータの場合には一致しない。 % これはデータの桁数によるもの(下記を参照)。 % % 実用上は問題ないはずだが、PTBの関数 LMSToMacBoyn は、T_conesとT_lumから係数を逆算している(したがって、 % そのままだと上記計算のfactors2の方を使う)ので注意すること。 % >> T_cones_ss2(:,1:5) % ans = % 0.000415000000000 0.000503000000000 0.000607000000000 0.000732000000000 0.000879000000000 % 0.000368000000000 0.000448000000000 0.000544000000000 0.000659000000000 0.000796000000000 % 0.009550000000000 0.011500000000000 0.013800000000000 0.016600000000000 0.019900000000000 % >> T_cones_ss2_ORG(:,1:5) % ans = % 0.000415003000000 0.000502650000000 0.000607367000000 0.000731850000000 0.000879012000000 % 0.000368349000000 0.000448015000000 0.000543965000000 0.000658983000000 0.000796121000000 % 0.009547290000000 0.011479400000000 0.013798600000000 0.016574600000000 0.019886900000000
% 秘密の呪文 % OurT_cones_ss2=T_cones_ss2_ORG; % OurS_cones_ss2=S_cones_ss2_ORG; % save('OurT_cones_ss2','OurS_cones_ss2','OurT_cones_ss2'); % % OurT_cones_ss10=T_cones_ss10_ORG; % OurS_cones_ss10=S_cones_ss10_ORG; % save('OurT_cones_ss10','OurS_cones_ss10','OurT_cones_ss10');