2014-09-05 25 views
0

我正在運行Processing 2.2.1以及SimpleOpenNI 1.96(基於http://shiffman.net/p5/kinect/的說明)。我修改了DepthImage示例草圖並添加了文件編寫(下面的代碼)。處理的「導出」功能不適用於SimpleOpenNI Kinect應用程序

我試圖從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的應用程序)。但是沒有改變 - 它只有在我從Processing IDE運行而不是使用.exe時纔有效。任何建議,將不勝感激。

回答

相關問題