0001 function y = hsl2hsv(x)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 if nargin < 1,
0020 error('Incorrect number of parameters (type ''help <a href="matlab:help hsl2hsv">hsl2hsv</a>'' for details).');
0021 end
0022 if ~isdmatrix(x) || size(x,2) ~= 3 || any(x(:)<0) || any(x(:)>1),
0023 error('Incorrect HSL matrix (type ''help <a href="matlab:help hsl2hsv">hsl2hsv</a>'' for details).');
0024 end
0025
0026
0027
0028 h = x(:,1);
0029 s = x(:,2);
0030 l = x(:,3);
0031
0032 H = h;
0033 S = s;
0034 in = l <= 0.5;
0035 S(in) = S(in) .* l(in);
0036 S(~in) = S(~in) .* (1-l(~in));
0037 V = l + S;
0038 in = V > 0;
0039 S(in) = 2 * S(in) ./ V(in);
0040 S(~in) = 0;
0041
0042
0043 y = Clip([H S V],0,1);
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057