我正在使用红外视图和深度视图进行 Kinect 项目。在红外视图中,使用 CVBlob 库,我能够提取一些 2D 兴趣点。我想找到这些二维点的深度。所以我认为我可以直接使用深度视图,如下所示:
coordinates3D[0] = coordinates2D[0];
coordinates3D[1] = coordinates2D[1];
coordinates3D[2] = (USHORT*)(LockedRect.pBits)
[(int)coordinates2D[1] * Width + (int)coordinates2D[0]] >> 3;
我认为这不是获得深度的正确公式。我能够在深度视图中可视化 2D 兴趣点。如果我在红外视图中得到一个点 (x, y),那么我在 (x, y) 处的深度视图中将其绘制为一个红点
我注意到红点不是我期望的位置(在一个物体上)。它们的位置存在系统误差。
我认为深度视图和红外视图是一一对应的,不像彩色视图和深度视图之间的对应关系。
这确实是真的还是 IR 和深度视图之间存在偏移?如果有偏移,我能以某种方式获得正确的深度值吗?