File: XYZToF.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 (25 lines) | stat: -rw-r--r-- 571 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
function F = XYZToF(XYZ,white)
% F = XYZToF(XYZ,white)
%
% Compute the F function ratio from XYZ.
% This is used in Lab calculations.
%
% 10/10/93    dhb   Converted from CAP C code.

% Find size of data
[m,n] = size(XYZ);
F = zeros(m,n);

% Compute the ratios w.r.t. white point
ratio = XYZ ./ (white*ones(1,n));

% Compute F from ratio
lIndex = find(ratio <= 0.008856);
hIndex = find(ratio > 0.008856);
if (~isempty(hIndex))
  F(hIndex) = ratio(hIndex).^(1.0/3.0);
end
if (~isempty(lIndex))
  F(lIndex) = 7.787*ratio(lIndex) + (16.0/116.0)*ones(length(lIndex),1);
end