如何在C++中从Kinect中获取XYZ坐标
How to get XYZ coordinates from Kinect in C++
我是kinect的新手。我正在Visual Studio中使用c++进行一个增强现实项目。我正在寻找一种通过kinect获得所有点坐标(X,Y,Z)的方法,但我很难弄清楚。有人能帮我吗?如何从深度流中获取点?
我正在为xbox 360使用Kinect V1。
假设Kinect v2:最简单的方法是使用ICoordinateMapper::MapDepthFrameToCameraSpace
(请参阅此处的文档)。
IKinectSensor *sensor;
UINT16 *depthPoints;
...
// initialize the sensor and grab a depth frame and get depthPoints
...
const int nPixels = 512 * 424;
std::vector<CameraSpacePoint> cameraPoints;
cameraPoints.resize(nPixels);
ICoordinateMapper *cm = dev->get_CoordinateMapper();
if (cm != nullptr) {
cm->MapDepthFrameToCameraSpace(nPixels, &depthPoints[0], nPixels, &cameraPoints[0]);
cm->Release();
}
// use XYZs in cameraPoints
请注意,只有当您与设备有实时连接时,这才有效。如果您之前已将原始深度帧保存到磁盘并在另一台计算机上读回,请考虑使用ICoordinateMapper
函数GetDepthCameraIntrinsics
或GetDepthFrameToCameraSpaceTable
,并将该数据与帧一起保存,以允许脱机转换为XYZ。
编辑:
易于入门:
- Kinect v1:尝试使用Kinect Common Bridge v1和CoordinateMapper::MapDepthFrameToSkeletonFrame方法
- Kinect v2:尝试使用Kinect Common Bridge v2和KCBMapDepthFrameToCameraSpace功能
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 使用指针从C++中的数组中获取最大值
- 如何获取std::result_of函数的返回类型
- 如何在openssl-ecc中获取十六进制格式的私钥
- 使用Unreal C++获取VR耳机的世界位置/方向
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 从C字符串中获取奇怪的字符串长度
- 为什么我的for循环不能正确获取argv
- 从python中调用C++函数并获取返回值
- 如何获取一个数字的前3位
- 获取字符串的长度并将其分配给数组
- 无法获取菜单选择以运行函数.C++
- 数组长度,为什么从命令行获取时不能使用它?
- Boost Spirit,获取迭代器内部语义动作
- 尝试通过OCI例程从Oracle获取blob数据,但出现错误:ORA-01008:并非所有变量都绑定
- 从IP地址获取完整的计算机名称,例如 abc.xyz.xvvx.net
- 如何在C++中从Kinect中获取XYZ坐标
- 在opengl中从模型中获取可见的XYZ坐标和法线