0

我正在运行 Processing 2.2.1 和 SimpleOpenNI 1.96(基于http://shiffman.net/p5/kinect/上的说明)。我修改了 DepthImage 示例草图并添加了文件写入(下面的代码)。

我正在尝试将 Kinect 中的深度数据输出到我选择的文件夹中的 .txt 文件。在 Processing IDE 中,草图运行良好;深度正确输出到文件。

但是,我希望在 .exe 文件中使用此功能,以便另一个程序可以在运行时运行此 .exe 并从这些文件中读取。Processing IDE 中的导出功能运行没有错误,我得到了 win32 和 win64 应用程序文件夹。但是,如果我执行其中任何一个中存在的 .exe,则不会发生任何事情;我在任何地方都看不到任何错误。即使我在导出时选择“当前模式”,也只会出现一个灰色屏幕,但我看不到任何文件正在写入我提供的路径。在导出选项窗口上切换各种选择(PresentMode/Export java)没有帮助。

以下是我在 IDE 中正常工作的草图:

import SimpleOpenNI.*;
SimpleOpenNI  context;

int[] dmap;
int dsize;
float[] dmapf;
PrintWriter output;
int fitr;
String path;

void setup()
{
   size(640*2, 480);
   fitr=1;
   context = new SimpleOpenNI(this);
   if (context.isInit() == false)
   {
        println("Can't init SimpleOpenNI, maybe the camera is not connected!"); 
        exit();
        return;
   }



 // mirror is by default enabled
  context.setMirror(false);

  // enable depthMap generation 
  context.enableDepth();

  // enable ir generation
  context.enableRGB();

  path = savePath("E:\\SYMMBOT\\DepthReading");  
}

void draw()
{
  // update the cam
  context.update();
  dmap = context.depthMap();
  //dmapf = dmap.array();

  output = createWriter(path+"\\depth"+fitr+".txt");
  fitr++;
  int itr = 0;
  for(int i=0; i<480; i++){
    for(int j=0;j<640;j++){
      output.print(dmap[itr]+" ");
      itr++;
    }
    output.println();
  }
  output.flush();
  output.close();
  //dsize = context.depthMapSize();
  background(200, 0, 0); //<>//

  // draw depthImageMap
  image(context.depthImage(), 0, 0);

  // draw irImageMap
  image(context.rgbImage(), context.depthWidth() + 10, 0);
}

我尝试使用 savePath() 函数,因为有人在另一个论坛上尝试过它(但这不适用于 kinect 应用程序)。但没有变化 - 只有当我从处理 IDE 运行它时它才有效,而不是使用 .exe。任何建议,将不胜感激。

4

1 回答 1

0

伙计,我在导出应用程序时遇到了同样的问题,我运行程序运行良好,但是在导出应用程序时运行没有。

解决方法:在https://www.processing.org/download/?processing我下载 processing-3.0a4解决问题,然后试试!

于 2014-10-25T01:27:23.973 回答