gpt4 book ai didi

c++ - 从 Kinect SDK 获取以毫米为单位的录制视频的深度

转载 作者:行者123 更新时间:2023-11-30 05:32:08 25 4
gpt4 key购买 nike

我正在为我的项目使用使用 C++ 语言从 Kinect 录制的视频。我正在尝试获取一个点的真实世界坐标(真实深度)。但我不知道 Kinect SDK 中是否有用于该目的的函数。所以我颠倒了这个公式:

BYTE b = 255 - static_cast (256  realDepth / 0x0FFF)

得到这个:

realDepth = (255-b) * 0x0FFF / 256

我不知道我做的对不对。你有什么建议?

最佳答案

看过之后this video ,我认为你应该按如下方式进行:

  • 白色像素是最远的距离,(对于不在近距离模式下的 Kinect SDK 1.x,即默认模式)等于 4 米;
  • 黑色像素可以是未知值,也可以是最接近的可能值,(对于默认模式下的 Kinect SDK 1.x)等于 0.8 米。

所以这意味着,如果我猜对了那些视频是在默认模式下录制的,并且假设你转换灰度图像中的每一帧(每个像素值的范围从 0 到 255),你应该使用以下公式:

realDepth (in meters) = ( 3.2 * grayValue / 255 ) + 0.8

这样,如果 grayValue 等于 0(黑色),则 realDepth 为 0.8 米。如果 grayValue 等于 255(白色),则 realDepth 为 4 米。

如果您想要以毫米为单位的 realDepth,只需将其除以 1000。

另请注意,一些黑色像素也可以表示未知值。因此,如果 realDepth 等于 0.8,您无法确定这是正确的值,或者它实际上是否是一个未知值。

关于c++ - 从 Kinect SDK 获取以毫米为单位的录制视频的深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35251478/

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