我正在运行Processing 2.2.1以及SimpleOpenNI 1.96(基于http://shiffman.net/p5/kinect/处的说明)。我修改了DepthImage示例草图并添加了文件编写(下面的代码)。
我尝试将Kinect中的深度数据输出到我选择的文件夹中的.txt文件中。在Processing IDE中,草图运行正常;深度正确输出到文件。
但是,我希望在.exe文件中使用此功能,以便其他程序可以在运行时运行此.exe并从这些文件中读取。处理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应用程序)。但没有变化 - 它只有在我从Processing IDE运行它时才有效,而不是使用.exe。任何建议将不胜感激。
答案 0 :(得分:0)
Mate,我在导出应用程序时遇到了同样的问题,我运行的程序运行正常,但是在导出应用程序时没有运行。
解决方案:在https://www.processing.org/download/?processing我下载处理-3.0a4解决问题,然后尝试!