1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
function [M,dest] = M_PToP(Psource,Pdest,T,source)
% [M] = M_PToP(Psource,Pdest,T)
% [M,dest] = M_PToP(Psource,Pdest,T,source)
%
% Compute the conversion matrix between two color
% spaces with known primaries.
% The transformation requires a set of color matching
% functions to describe the observer.
%
% M - the conversion matrix
% (n_chromacy by n_chromacy)
%
% Psource - source color primary spectral power distributions
% (n_wavelengths by n_chromacy)
% Pdest - destination primary spectral power distributions
% (n_wavelengths by n_chromacy)
% T - a set of color matching functions
% (n_chromacy by n_wavelengths)
%
% OPTIONAL
% source - source tristimulus vectors
% (n_chromacy by n_lights)
% dest - destination tristimulus vectors
% (n_chromacy by n_lights)
%
% 8/2/94 dhb Fixed bug in optional arg handling.
M1 = M_PToT(Psource,T);
M2 = M_TToP(T,Pdest);
M = M2*M1;
if ( nargin == 4)
dest = M*source;
else
dest = [];
end
|