반응형
다음은 kinect에서 full resolution 값을 추출하여 실제 단위로 컨퍼팅하는 예제이다.
import SimpleOpenNI.*;
SimpleOpenNI kinect;
void setup()
{
size(640, 480);
kinect = new SimpleOpenNI(this);
kinect.enableDepth();
}
void draw()
{
kinect.update();
PImage depthImage = kinect.depthImage();
image(depthImage, 0, 0);
}
void mousePressed(){
int[] depthValues = kinect.depthMap();
// depthMap() 함수는 depth 정보를 Integer 배열로 전달한다.
// 이 배열은 640 x 480 의 이차원 배열은 하나의 row로 전달한 것이다. 다시 말해 특정 pixel의 데이터는
// x+640*y 로 접근 가능하다.
int clickPosition = mouseX + (mouseY * 640);
int millimeters = depthValues[clickPosition];
float inches = millimeters / 25.4;
println("mm:"+ millimeters +" inches: " + inches);
}
줄자를 가지고 정확도가 어느정도 되는지 측정해 보았다.
100cm 정도로 줄자를 늘리고 손 주변을 측정한 결과 96cm가 나옴..
반응형