如何从Xbox Kinect中获取深度图像并将深度值输出到文件?

时间:2017-11-08 15:13:29

标签: image-processing processing kinect kinect-v2

我有Xbox Kinect v2。我需要做以下事情:

  1. 对其前面的任何内容进行单一深度测量。想想这就像拍照,但深度值。
  2. 将每个像素的深度值输出到文件。我将使用这些值进行后期处理,因此我需要将每个深度值与x-y坐标相关联。
  3. 我是Kinect for Processing的新手,但我现在正在搜索文档和在线示例。我希望有经验的人可以更快地解决这个问题。

1 个答案:

答案 0 :(得分:0)

使用Kinectv2,https://github.com/shiffman/OpenKinect-for-Processing

取得了最大的成功

使用DepthPointCloud2示例作为基础。 (忽略rendermode == 2部分) 然后按如下方式修改if循环:

 StringList printer = new StringList();
 for (int x = 0; x < kinect2.depthWidth; x += skip) {
   for (int y = 0; y < kinect2.depthHeight; y += skip) {
     int offset = x + y * kinect2.depthWidth;
     PVector point = depthToPointCloudPos(x, y, depth[offset]);
     if (point.mag() != 0) {
       printer.append(point.x +","+ point.y +","+ point.z);
     }
   }
 }
 String[] printOut = printer.array();
 String path = "scan" + counter + ".xyz";
 saveStrings(path, printOut);
 println("Pointcloud :: outputted to file :: " + path);

基本上你设置了一个StringList,然后在每次绘制点时将xyz字符串添加到它,扫描完成后将其转换为传统数组,然后将其转储到.txt /.xyz与saveStrings

可能想要移动整个事物,所以它由KeyPressed()触发而不是。