Image processing Dubois浮雕矩阵是如何计算的?

Image processing Dubois浮雕矩阵是如何计算的?,image-processing,matrix,stereo-3d,Image Processing,Matrix,Stereo 3d,我读过Eric Dubois的论文,但不明白如何计算一对特殊的彩色滤光片和显示设备的两个3 x 3矩阵。Dubois给出了设计用于红色/青色玻璃和CRT/等离子显示器的矩阵 最令人费解的是,这篇论文说“近似是在每一个阶段独立进行的 样本位置”,这意味着计算依赖于图像,而矩阵表示为适用于任何图像。Sanders和McAllister清楚地解释了计算。(它们创建一个6 x 3矩阵,而不是两个3 x 3矩阵。) 我用这个Python脚本复制了他们的矩阵B:- import numpy as np AL

我读过Eric Dubois的论文,但不明白如何计算一对特殊的彩色滤光片和显示设备的两个3 x 3矩阵。Dubois给出了设计用于红色/青色玻璃和CRT/等离子显示器的矩阵

最令人费解的是,这篇论文说“近似是在每一个阶段独立进行的
样本位置”,这意味着计算依赖于图像,而矩阵表示为适用于任何图像。

Sanders和McAllister清楚地解释了计算。(它们创建一个6 x 3矩阵,而不是两个3 x 3矩阵。) 我用这个Python脚本复制了他们的矩阵B:-

import numpy as np
AL = np.array([[5.42327, .807004, .047325], # Left anaglyph filter
               [2.70972, .50201, .0250529],
               [.0000550941, .000411221, .00240686]])
AR = np.array([[.180431, 1.6395, 2.00309], # Right anaglyph filter
               [.448214, 6.31551, 1.35757],
               [.289201, 2.3925, 11.062]])
R = np.concatenate((AL, AR))
C = np.array([[11.6638, 8.3959, 4.65843], # CRT spectral distribution
              [7.10807, 16.6845, 2.45008],
              [.527874, 3.79124, 24.0604]])
Z = np.array([[0, 0, 0],
              [0, 0, 0],
              [0, 0, 0]])
D = np.concatenate((np.concatenate((C, Z), 1), np.concatenate((Z, C), 1)))
B = np.dot(np.dot(np.linalg.inv(np.dot(R.transpose(), R)), R.transpose()), D)
N = np.diagflat([1 / sum(B[0]), 1 / sum(B[1]), 1 / sum(B[2])])
print(np.dot(N, B))

[[ 0.45610004  0.50048381  0.17638087 -0.0434706  -0.08793882 -0.00155529]
 [-0.04008216 -0.03782458 -0.01575895  0.37847603  0.73363998 -0.01845032]
 [-0.01521607 -0.02059714 -0.00546856 -0.07215268 -0.11296065  1.2263951 ]]