【问题标题】:Projecting 3D Model onto 2d plane将 3D 模型投影到 2d 平面上
【发布时间】:2017-10-06 13:01:45
【问题描述】:

我有一个 3d 对象,并希望将它导出到各个方向。假设我有家庭图片,如果我将它投影到 2d 平面上,它只会显示类似正方形的东西,但如果我改变角度,它会给我不同的视图(在简而言之,我想要相同 3d 对象的不同 2d 投影以获得更好的可视化)。我正在寻找能够做到这一点的 python 库或算法。请参考图表以清楚地了解我想要什么。enter image description here

【问题讨论】:

  • 我在找python代码。
  • 欢迎您!有很多图书馆可以做这种事情。无论如何,您的问题尚不清楚,并且缺乏任何努力。如果留在那个遗憾的状态,这可能会被严重否决。
  • 其实我想把 3D 模型投影到 2D 平面上。请参考本文的图 1 pdfs.semanticscholar.org/087d/… 你会明白我在寻找什么。

标签: python 3d computer-vision projection


【解决方案1】:

这可以通过投影变换来完成。这实际上只是两次矩阵乘法和一次除法。可能用一行 Python 编写。

右侧的向量是 3D 模型的众多 3D 顶点之一。矩阵 [r_11 ... t_3] 是一个刚性变换,表示您的平面的位置和方向(有些人称之为相机姿势或外部相机参数)。您将为每个单独的投影更改此矩阵。矩阵 [f_x ... 1] 定义了投影本身并且通常保持不变。对于您的应用程序,可能只使用单位矩阵(因此,您可以忽略它)。最后一步是缩放变换后的向量,使其位于图像平面上 z = 1 的距离。u_x 和 u_y 是您对应的 2D 坐标。

【讨论】:

  • 感谢您的回答,我刚刚编辑了我的问题以便清楚理解。抱歉给您带来不便
  • 它看起来像透视投影,但我想要正交投影
  • 正交投影易于计算。您只需要上述转换的两个正确组件。 [r_11 ... t_3] * [A_x; 的结果向量A_y; A_z],只需将 z 分量设置为零。
  • 我对计算机图形学一无所知,我理解你所说的,但你能解释一下矩阵上面的 fx 和 fy 等吗?
  • 我正在寻找类似的东西,你写代码了吗?给定视角和与物体的距离,如何定义矩阵 R?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多