2013-05-21 13 views

답변

3

PLY format에 3 차원 좌표를 쉽게 저장할 수 있습니다.

void exportPlyCloud(string filename, ofMesh& cloud) { 
    ofFile ply; 
    if (ply.open(filename, ofFile::WriteOnly)) {   
     // write the header 
     ply << "ply" << endl; 
     ply << "format binary_little_endian 1.0" << endl; 
     ply << "element vertex " << cloud.getVertices().size() << endl; 
     ply << "property float x" << endl; 
     ply << "property float y" << endl; 
     ply << "property float z" << endl; 
     ply << "end_header" << endl; 

     // write all the vertices 
     vector<ofVec3f>& surface = cloud.getVertices(); 
     for(int i = 0; i < surface.size(); i++) { 
      if (surface[i].z != 0) { 
       // write the raw data as if it were a stream of bytes 
       ply.write((char*) &surface[i], sizeof(ofVec3f)); 
      } 
     } 
    } 
} 

그런 다음/스티치 PLY 파일을 처리하는 MeshLab를 사용하고 OBJ처럼 그들에게 다른 형식으로 내보낼 수 있습니다 : 여기 ofxKinect를 사용하여 기본 예제입니다. openFrameworks와 관련하여이 workshop에 위의 PLY 내보내기를 포함한 몇 가지 유용한 예제를 찾을 수 있습니다.

PLY에 저장하면 문제의 일부를 해결할 수 있으므로 시간이 오래 걸릴 수 있으므로 수동으로 처리해야합니다. SLAM (Simultaneous Localization And Mapping) 또는 다른 재구성 알고리즘과 같은 것이 필요합니다. OpenSLAM에서 멋진 알고리즘 콜렉션을 찾을 수 있습니다.

코딩의 편의성에 따라 몇 가지 옵션이 있습니다. 재구성 기능이있는 RGBDemo 빌드 된 소프트웨어를 살펴 보는 것도 좋습니다. 당신이 원한다면 (오픈 소스이기 때문에) 코딩을 필요로하지 않습니다.

약간의 코딩으로 PointCloudsLibrary (PCL)을 사용하여 재구성 할 수도 있습니다. 경우 또한이 implementation of KinectFusion

PCL Kinfu preview 1 PCL Kinfu preview 2

당신이 마이크로 소프트 키 넥트 SDK를 사용하는 경우, Kinect Fusion 당신은 또한 흥미로운이 게시물을 찾을 수 있습니다 Kinect SDK 1.7

KinectFusion in Kinect SDK 1.7

에 통합되었다 포함 : Kinect Fusion inside AutoCAD .

+0

남자 아주 좋습니다! 이 솔루션에 대해 대단히 고마워, 나는 그런 식으로 잠시 동안 찾고 있었다. :) – VVZen

0

kinect는 당신에게 깊이 이미지를줍니다. 센서에서 멀어지는 거리를 나타내는 회색 음영의 이미지입니다.
이미지의 모든 픽셀은 심도 값으로 16 비트 또는 13 비트를 사용합니다 (13 비트 만 사용하면 마지막 3 비트가 플레이어 ID로 사용됩니다).
예를 들어 이미지를 .bmp로 저장하거나 더 나은 다른 형식으로 변환 할 수 있습니다.

방을 재구성하려는 방법에 대해 완전히 확신 할 수 없습니다.
kinect는 한 방에 전체 방을 캡처 할 수 없으므로 적어도 전체 방을 캡처하기 위해 kinect를 켜야합니다.

어떤 종류의 재구성을하고 싶습니까? 그레이 스케일의 이미지 일 뿐이며 벽이나 물체까지의 거리와 그 크기를 원하십니까?
후자의 경우 이미지를 처리해야합니다.
이전 사진 인 경우 하나의 그림을 붙여서 파노라마 또는 큐브 형태로 만들 수 있습니다.

유용한 정보를 얻을 수 있기를 바랍니다. 불확실성에 대해 물어보십시오.

+0

나는 kinect를 회전하여 방을 재구성하려고합니다. 결국, 나는 나의 방의 치수를 측정하고 싶다. 그래서 일반적인 3D 형식으로 변환 할 수 있는지 묻습니다. 감사. – prgbenz