File talk:CIE illuminants D and blackbody.gif
Jump to navigation
Jump to search
Source code[edit]
T=4000:500:25000;
S=CIE_daylight(T)';
[LAMBDAFCN, XFCN, YFCN, ZFCN]=colorMatchFcn('Judd_Vos');
LAMBDA=300:10:830;
[lambda,temp]=meshgrid(LAMBDA,T);
spdbb=lambda.^(-5)./(exp(1.4388e+7./(lambda.*temp))-1);
spdbb=spdbb.*repmat(100,size(spdbb))./ ...
repmat(spdbb(:,find(LAMBDA==560)),[1 length(LAMBDA)]);
index=find(300:5:830==380);
mov=avifile('cie_illuminant_d.avi','compression','none','fps',3);
for i=1:size(S,1)
plot(LAMBDA,S(i,:));
axis([LAMBDA(1) LAMBDA(end) 0 250]);
spd=interp(S(i,:),2);
XYZ=spd(index:end-2)*[XFCN' YFCN' ZFCN'];
norm_XYZ=XYZ./repmat(max(XYZ),[1 3]);
% mean_XYZ=norm_XYZ*0.5./repmat(mean(norm_XYZ), [1 3]);
color=applycform(norm_XYZ,makecform('xyz2srgb'));
patch([LAMBDA(1) LAMBDA LAMBDA(end) 0],[0 S(i,:) 0 0],color);
hold on;
plot(LAMBDA,spdbb(i,:),':','Color','r','LineWidth',2);
plot(560,100,'o','Color','k','MarkerFaceColor','g');
hold off;
text(700,220,[int2str(3500+500*i) 'K'],'FontSize',18);
mov=addframe(mov,getframe(gcf));
end
mov=close(mov);