【发布时间】:2019-07-27 14:38:37
【问题描述】:
我想反转这个函数:
XYZ2LMSmat = [0.3593 -0.1921 0.0071; 0.6976 1.1005 0.0748; -0.0359 0.0754 0.8433];
LMS2ICTCPmat = [2048 2048 0; 6610 -13613 7003; 17933 -17390 -543]'/4096;
invEOTF = @(Lin) (((3424/4096)+(2413/128)*(max(0,Lin)/10000).^(2610/16384)) ./ ...
(1+(2392/128)*(max(0,Lin)/10000).^(2610/16384))).^(2523/32);
ICTCP = bsxfun(@times, invEOTF(XYZ * XYZ2LMSmat) * LMS2ICTCPmat, [720, 360, 720]);
此脚本从 XYZ 转换为 ICtCp 颜色空间。输入 (XYZ) 采用 N x 3 (rgb) 矩阵的格式,该矩阵乘以 3x3 变换矩阵 XYZ2LMSmat 和 LMS2ICTCPmat。
我想写相反的:从 ICtCp 到 XYZ。
我有invEOTF函数的反函数,即:
EOTF = @(PQ) (max(PQ.^(32/2523)-(3424/4096),0) ./ ... ((2413/128)-(2392/128)*PQ.^(32/2523))).^(16384/2610)*10000;
Here is the reference for this code,更详细(文档末尾的 Matlab 代码)。
我不确定应该使用 bsxfun 的哪个标志以及如何安排矩阵求逆。
【问题讨论】: