File: M_PToP.m

package info (click to toggle)
psychtoolbox-3 3.0.19.14.dfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 86,796 kB
  • sloc: ansic: 176,245; cpp: 20,103; objc: 5,393; sh: 2,753; python: 1,397; php: 384; makefile: 193; java: 113
file content (36 lines) | stat: -rw-r--r-- 946 bytes parent folder | download | duplicates (7)
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