【问题标题】:Getting pixel coordinates on the 3D object mesh (python)获取 3D 对象网格上的像素坐标(python)
【发布时间】:2018-06-08 11:52:18
【问题描述】:

鉴于我有:
* 3D 物体网格(*.obj 文件)
* 相机内在函数
* 相机/物体姿势

我需要以某种方式(在 python 中)为每个像素获取对象模型的相应 3D 坐标(如果可用)。类似于深度图 (https://en.wikipedia.org/wiki/Depth_map)。

可以通过寻找网格中所有三角形与每个像素和投影矩阵产生的线之间的交点来做到这一点。然后得到离相机更近的路口。但是必须有更快更优雅的方式。我一直在研究光线投射和 PyOpenGL 框架,但我仍然不知道该怎么做。有人可以帮忙吗?

【问题讨论】:

  • Octree / k-D tree / BVH。甚至是一个简单的网格。那里有无数的光线追踪器演示和教程。
  • 如果您需要整个图像,只需将模型渲染到深度图即可。 GPU 专门用于此类任务。
  • 写了an answer关于如何在pyopengl中获取深度缓冲区的另一个问题,这可能是helpfil。至于加载 3d 模型,您可以使用 assimp 之类的库来自动读取具有 python 绑定的 obj 文件。

标签: python computer-vision geometry render


【解决方案1】:

为了将来的参考,我可以从使用 PyOpenGL 的 python 包 meshrender (https://pypi.org/project/meshrender/) 开始做我想做的事情。 然后我对其深度渲染器进行了一些修改,以便从归一化深度中获得 3D 点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多