我有一个带有2d点的numpy数组,可通过以下等式将其从3d转换为2d:
https://wikimedia.org/api/rest_v1/media/math/render/svg/198f15da062c7ce00598d7a2f9bd8169d7042ed3
如何将点转换回3D?
我使用了上图中的自顶向下的视图矩阵。在Wikiperia中找到:https://en.wikipedia.org/wiki/Orthographic_projection
#To 2D from 3d:
points2D = np.array([np.matmul(camera_pos, point) for point in points3D])[:,:2]
答案 0 :(得分:0)
您不能仅使用投影点将其转换回去。请注意,您的投影基本上只是查看(x,y)
的值并丢弃z
的值,因此执行此操作后无法知道z
是什么。
例如,考虑点u = [1,2,3]
和v=[1,2,-3]
。两者都投影到[1,2,0]
,因此当我们尝试反转(撤消)投影时,没有办法知道我们应该将[1,2,0]
变成u
还是v
。 / p>
就矩阵运算而言,这是因为投影矩阵不可逆(单位矩阵除外)。
您将需要更多信息,而不仅仅是预计点,以便能够恢复原始点。