0

我有 Xbox Kinect v2。我需要执行以下操作:

  1. 对它前面的任何东西进行一次深度测量。把这想象成拍照,但是对于深度值。
  2. 将每个像素的深度值输出到文件。我将使用这些值进行后期处理,因此我需要将每个深度值与 xy 坐标相关联。

我是 Kinect for Processing 的新手,但我现在正在搜索文档和在线示例。我希望有经验的人能更快地解决这个问题。

4

1 回答 1

0

使用 Kinectv2,我在https://github.com/shiffman/OpenKinect-for-Processing获得了最大的成功

使用 DepthPointCloud2 示例作为基础。(忽略 rendermode==2 部分)然后修改 if-loops 如下:

 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 String ,一旦扫描完成,将其转换为传统数组,然后将其转储到带有saveStrings的 .txt/.xyz

可能想要移动整个东西,以便它由 KeyPressed() 触发。

于 2017-11-09T08:02:42.223 回答