2012-03-06 1 views
0

점 구름을 얻기 위해 처리를 사용하려고합니다. 그러나 그것이 작동하지 않는다는 것이 드러납니다.Kinect가있는 simpleopenni 점 구름 프로그램

import SimpleOpenNI.*; 

import processing.opengl.*; 

SimpleOpenNI kinect; 

void setup() 
{ 

    size(1024, 768, OPENGL); 

    kinect = new SimpleOpenNI(this); 

    kinect.enableDepth(); 

} 

void draw() 
{ 

    background(0); 

    kinect.update(); 

    translate(width/2, height/2, -1000); 

    rotateX(radians(180)); 

stroke(255); 

    PVector[] depthPoints = kinect.depthMapRealWorld(); 

    //the program get stucked in the for loop it loops 307200 times and I don't have any points output 

    for(int i = 0; i < depthPoints.length ; i++) 
    { 

    PVector currentPoint = depthPoints[i]; 

    point(currentPoint.x, currentPoint.y, currentPoint.z); 
    } 

} 
+0

오류가 없다면 500 픽셀을 건너 뛰면 점수를 얻을 수 있습니다 (너무 많이 건너 뛰게 됨). 첫 번째 요점이 효과가 있습니다. – xinghua

답변

1

코드가 잘 테스트 되었으면 테스트 코드를 테스트합니다. 깊이 이미지 (640x480 = 307200)의 데이터를 3D 위치로 변환하므로 307200 번 반복됩니다.

정말로 오류가 있습니까? 또한 Processing의 모든 점을 그리기가 약간 느리므로 몇 가지를 건너 뛰고 싶을 수도 있습니다. 그리고 시험으로, 1 점을 인쇄하여 참조하려고하면 모두에서 값이 변경 (이해야한다) 또는 깊이 이미지 데이터가있는 경우 (검은 색 아니다/제로 가득) :

import SimpleOpenNI.*; 

import processing.opengl.*; 

SimpleOpenNI kinect; 

void setup() 
{ 

    size(1024, 768, OPENGL); 

    kinect = new SimpleOpenNI(this); 

    kinect.enableDepth(); 

} 

void draw() 
{ 

    background(0); 

    kinect.update(); 
    image(kinect.depthImage(),0,0,160,120);//check depth image 

    translate(width/2, height/2, -1000); 

    rotateX(radians(180)); 

    stroke(255); 

    PVector[] depthPoints = kinect.depthMapRealWorld(); 

    //the program get stucked in the for loop it loops 307200 times and I don't have any points output 

    for(int i = 0; i < depthPoints.length ; i+=4)//draw point for every 4th pixel 
    { 

    PVector currentPoint = depthPoints[i]; 
    if(i == 0) println(currentPoint); 
    point(currentPoint.x, currentPoint.y, currentPoint.z); 
    } 

} 
+0

오류가 없다면 500 픽셀을 건너 뛰면 점수를 얻을 수 있습니다 (너무 많이 건너 뛰게 됨). 첫 번째 요점이 효과가 있습니다. – xinghua

+0

@xinghua 이상합니다. 심도 이미지가 잘 보입니까 (그레이 스케일, 클리핑되지 않음/검은 색/등)? 또한 SimpleOpenNI와 함께 제공되는 DepthMap3d 샘플을 성공적으로 실행할 수 있습니까? –

+0

내가 말했듯이 너무 느리게 표시됩니다. 내가 얻는 사람은 나쁜 특성을 가지고 있습니다. 많은 점수를 건너 뛰면 여러 줄의 점수를 볼 수 있습니다. 그러나 샘플은 완벽하게 밝혀졌습니다. – xinghua