资源简介
计算色温
代码片段和文件信息
function [] = calTemp(cm1 cm2 cc1 cc2an xyz1 xyz2)
xyz2srgb = [3.2406 -1.15372 -0.4986; -0.9689 1.8758 0.0415; 0.0557 -0.2040 1.057];
srgb2xyz = [0.4124 0.3576 0.1805; 0.2126 0.7152 0.0722; 0.0193 0.1192 0.9595];
% ufraw part %
xyz = [1 1 1];
one = [1 1 1]‘;
cm = cm2
cam2xyz = cc2 * cm * diag(xyz)
cam2srgb = cam2xyz * xyz2srgb;
num = sum(cam2srgb2)
num = [num num num]
cam2srgb = cam2srgb ./num
pre_mul = one ./num(1:end1);
pre_mul = pre_mul‘
cam_mul = an.^-1
srgb2cam = inv(cam2srgb)
% dcraw_set_color_scale %
post_mul = pre_mul;
% scale_colors_INDI %
post_mul = cam_mul
%post_mul = [post_mul post_mul(2)]
dmax = max(post_mul)
post_mul = post_mul / dmax
% ufraw_set_wb %
chanMul = post_mul
rgbWB = srgb2cam * pre_mul‘./ chanMul‘
%for test
srgb2cam = cc2 * cm * srgb2xyz
rgbWB = inv(srgb2cam) * (an‘)
%rgbWB = inv(cc2 * cm2 * srgb2xyz .* (an.^-1)‘)
%for test end
% RGB_to_Temperature %
tmin = 2000;
tmax = 23000;
while (tmax - tmin > 0.1)
T = (tmax + tmin) / 2
% Fit for CIE Daylight illuminant
if
评论
共有 条评论