set(0,'DefaultAxesColorOrder',[0 0 0]);
w=(300:5:800);
[xbar,ybar,zbar]=xyz(w);
load xyzdata;
fig1=figure;
plot(w,ybar,'-',b(:,1)*1000,b(:,2),'.');
xlabel('Wavelength, nm.');
ylabel('ybar');
grid on;
fig2=figure;
plot(w,xbar,'-',w,ybar,'-',w,zbar,'-',...
a(:,1)*1000,a(:,2),'.',...
b(:,1)*1000,b(:,2),'.',...
c(:,1)*1000,c(:,2),'.');
xlabel('Wavelength, nm.');
ylabel('xbar,ybar,zbar');
text(480,1.4,'z');
text(600,1.2,'x');
text(440,0.45,'x');
text(550,1.2,'y');
grid on;
fig3=figure;
lambdal=[457.9,530.9,647.1];
[xl,yl,zl]=xyz(lambdal);
plot(lambdal,xl,'x',...
lambdal,yl,'v',...
lambdal,zl,'<',...
w,xbar,'-',w,ybar,'-',w,zbar,'-',...
lambdal(1)*[1,1],[0,2],'-',...
lambdal(2)*[1,1],[0,2],'-',...
lambdal(3)*[1,1],[0,2],'-')
xlabel('Wavelength, nm.');
ylabel('xbar,ybar,zbar');
text(480,1.4,'z');
text(600,1.2,'x');
text(440,0.45,'x');
text(550,1.2,'y');
legend('xbar','ybar','zbar');
grid on;
cbluelaser=[xl(1),yl(1),zl(1)];
cgreenlaser=[xl(2),yl(2),zl(2)];
credlaser=[xl(3),yl(3),zl(3)];
disp('Red, Green, Blue Lasers in Columns, rows are x,y,z');
lasermatrix=[credlaser',cgreenlaser',cbluelaser']
cbluelaser=cbluelaser/sum(cbluelaser);
cgreenlaser=cgreenlaser/sum(cgreenlaser);
credlaser=credlaser/sum(credlaser);
tlow=2000;ttungsten=3000;tqh=3500;
dlambdab=1;lambdab=(300:dlambdab:800);
mlow=bbspec(tlow,lambdab/1000);
mt=bbspec(ttungsten,lambdab/1000);
mqh=bbspec(tqh,lambdab/1000);
[xbar,ybar,zbar]=xyz(lambdab);
xlow=xbar.*mlow;Xlow=sum(xlow)*dlambdab;
ylow=ybar.*mlow;Ylow=sum(ylow)*dlambdab;
zlow=zbar.*mlow;Zlow=sum(zlow)*dlambdab;
tristimlow=[Xlow,Ylow,Zlow]';
fig4=figure;subplot(3,1,1);
semilogy(lambdab,xlow,'-',lambdab,ylow,'-.',lambdab,zlow,'--',...
lambdab,mlow,':');
axis([300,800,1e3,1e5]);xlabel('\lambda, Wavelength, nm');
ylabel('xs,ys,zs');
clow=[Xlow,Ylow,Zlow]'
xt=xbar.*mt;Xt=sum(xt)*dlambdab;
yt=ybar.*mt;Yt=sum(yt)*dlambdab;
zt=zbar.*mt;Zt=sum(zt)*dlambdab;
tristimt=[Xt,Yt,Zt]';
subplot(3,1,2);
semilogy(lambdab,xt,'-',lambdab,yt,'-.',lambdab,zt,'--',...
lambdab,mt,':');
axis([300,800,1e5,1e7]);xlabel('\lambda, Wavelength, nm');
ylabel('xs,ys,zs');
ct=[Xt,Yt,Zt]'
xqh=xbar.*mqh;Xqh=sum(xqh)*dlambdab;
yqh=ybar.*mqh;Yqh=sum(yqh)*dlambdab;
zqh=zbar.*mqh;Zqh=sum(zqh)*dlambdab;
tristimqh=[Xqh,Yqh,Zqh]';
subplot(3,1,3);
semilogy(lambdab,xqh,'-',lambdab,yqh,'-.',lambdab,zqh,'--',...
lambdab,mqh,':');
axis([300,800,1e5,1e7]);xlabel('\lambda, Wavelength, nm');
ylabel('xs,ys,zs');
cqh=[Xqh,Yqh,Zqh]'
xplow=Xlow/(Xlow+Ylow+Zlow);
xpt=Xt/(Xt+Yt+Zt);
xpqh=Xqh/(Xqh+Yqh+Zqh);
yplow=Ylow/(Xlow+Ylow+Zlow);
ypt=Yt/(Xt+Yt+Zt);
ypqh=Yqh/(Xqh+Yqh+Zqh);
matrix_xyz2rgb=xyz2rgb(0);
matrix_rgb2xyz=eye(size(matrix_xyz2rgb))/matrix_xyz2rgb;
xyzfromrgb=matrix_rgb2xyz*(eye(3));
xyzfromrgb=xyzfromrgb./repmat(sum(xyzfromrgb,1),3,1);
load hotcolors;
denom=(a(:,2)+b(:,2)+c(:,2));
xbound=a(:,2)./denom;
ybound=b(:,2)./denom;
fig5=figure;plot(xplow,yplow,'*',...
xpt,ypt,'+',...
xpqh,ypqh,'o',...
cbluelaser(1),cbluelaser(2),'<',...
cgreenlaser(1),cgreenlaser(2),'^',...
credlaser(1),credlaser(2),'>',...
xyzfromrgb(1,2),xyzfromrgb(2,2),'s',...
xbound,ybound,'-',...
xhot,yhot,'--',...
[cbluelaser(1),credlaser(1),cgreenlaser(1),cbluelaser(1)],...
[cbluelaser(2),credlaser(2),cgreenlaser(2),cbluelaser(2)]);
axis([-0.1,1,-0.1,1]);
xlabel('x');ylabel('y');
axis equal;
hold on;
plot(xyzfromrgb(1,[1:3,1]),xyzfromrgb(2,[1:3,1]),'-')
legend([num2str(tlow),'K'],[num2str(ttungsten),'K'],...
[num2str(tqh),'K'],...
['\lambda=',num2str(lambdal(1)),' nm'],...
['\lambda=',num2str(lambdal(2)),' nm'],...
['\lambda=',num2str(lambdal(3)),' nm']);
hold off;
[x,y]=meshgrid(0:0.001:1,0:0.001:1);z=1-x-y;
axyz(:,:,1)=x;axyz(:,:,2)=y;axyz(:,:,3)=z;
rgb=xyz2rgb(axyz);
c=rgb/max(max(max(rgb)));
c(c<0)=0;
csave=c;
c=c./repmat(max(c,[],3),[1,1,3]);
unmask=(zeros(size(x))==1);
nstart=7;nstop=64;
for n=nstart:nstop;
x1=xbound(n);y1=ybound(n);x2=xbound(n+1);y2=ybound(n+1);
cp=(x-x1)*(y2-y1)-(y-y1)*(x2-x1);
test=cp<0;
unmask=unmask|test;
end;
x1=xbound(nstop);y1=ybound(nstop);x2=xbound(nstart);y2=ybound(nstart);
cp=(x-x1)*(y2-y1)-(y-y1)*(x2-x1);
test=cp<0;
unmask=unmask|test;
for n=1:3;
c(:,:,n)=c(:,:,n).*(1-unmask)+unmask;
end;
fig6=figure;imagesc(x(1,:),y(:,1),c);axis xy;axis equal;axis image;
hold on;
plot(xbound,ybound,'w');
xlabel('x');ylabel('y');
hold off;
fig7=figure;imagesc(x(1,:),y(:,1),c);axis xy;axis equal;axis image;
hold on;
plot(xhot,yhot,'w-',...
xyzfromrgb(1,[1:3,1]),xyzfromrgb(2,[1:3,1]),'w-')
h=plot(xplow,yplow,'k*',...
xpt,ypt,'k+',...
xpqh,ypqh,'ko',...
cbluelaser(1),cbluelaser(2),'k<',...
cgreenlaser(1),cgreenlaser(2),'k^',...
credlaser(1),credlaser(2),'k>',...
xyzfromrgb(1,2),xyzfromrgb(2,2),'ks',...
xbound,ybound,'k:',...
[cbluelaser(1),credlaser(1),cgreenlaser(1),cbluelaser(1)],...
[cbluelaser(2),credlaser(2),cgreenlaser(2),cbluelaser(2)],'k--');
xlabel('x');ylabel('y');
legend(h,...
[num2str(tlow),'K'],[num2str(ttungsten),'K'],...
[num2str(tqh),'K'],...
['\lambda=',num2str(lambdal(1)),' nm'],...
['\lambda=',num2str(lambdal(2)),' nm'],...
['\lambda=',num2str(lambdal(3)),' nm'],...
'RGB')
rgb_for_white=eye(size(lasermatrix))/lasermatrix*[1,1,1]'/3*3*4000/683
[X488,Y488,Z488]=xyz(488)
rgb488=eye(size(lasermatrix))/lasermatrix*[X488,Y488,Z488]'
rgb2xyzwikip=[0.49,0.31,0.20;0.17697,0.81240,0.01063;0.00,0.01,0.99]/ ...
0.17697;
Red, Green, Blue Lasers in Columns, rows are x,y,z
lasermatrix =
0.3369 0.1709 0.2890
0.1344 0.8313 0.0313
0.0000 0.0347 1.6962
clow =
1.0e+06 *
2.7170
2.1592
0.3101
ct =
1.0e+08 *
1.5087
1.3908
0.5480
cqh =
1.0e+08 *
4.8600
4.6534
2.4384
Warning: Ignoring extra legend entries.
rgb_for_white =
11.9840
4.9821
3.3507
X488 =
0.0605
Y488 =
0.2112
Z488 =
0.5630
rgb488 =
-0.2429
0.2811
0.3261