gpt4 book ai didi

optimization - 高效比较Kinect深度和OpenGL深度

转载 作者:行者123 更新时间:2023-12-03 17:36:13 25 4
gpt4 key购买 nike

背景:

此问题与对象的3D跟踪有关。

我的系统将对象/样本从已知参数(X,Y,Z)投影到OpenGL和
尝试与从Kinect传感器获得的图像和深度信息进行匹配,以推断对象的3D位置。

问题:

Kinect深度->处理->值(以毫米为单位)

OpenGL->深度缓冲区-> 0-1之间的值(在近端和远端之间非线性映射)

虽然我可以使用http://www.songho.ca/opengl/gl_projectionmatrix.html上提到的方法从OpenGL恢复Z值,但这会产生非常慢的性能。

我敢肯定这是普遍的问题,所以我希望必须有一些切割刀解决方案。

题:

从OpenGL恢复眼睛Z坐标的有效方法?

还是有其他方法可以解决上述问题?

最佳答案

现在我的问题是Kinect的深度是毫米


不它不是。 Kinect将其深度报告为任意单位的11位范围内的值。仅在应用了某些校准之后,深度值才能解释为物理单位。就目前而言,您是正确的,OpenGL透视投影深度值是非线性的。

因此,如果我理解正确,您想通过检索深度缓冲区的内容来模拟Kinect,对吗?然后,最简单的解决方案是使用顶点着色器和片段着色器的组合,其中顶点着色器将线性深度作为片段着色器的附加变量进行传递,然后片段着色器用传递的值覆盖片段的深度值。 (您也可以为此使用其他渲染目标)。

另一种方法是使用一维纹理,投影到场景的深度范围内,其中纹理值对深度值进行编码。然后,所需的值将在颜色缓冲区中。

关于optimization - 高效比较Kinect深度和OpenGL深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8272372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com