2012-03-26 4 views
3

Processing에서 여러 kinect가있는 PointCloud 매핑 사용자를 만들려고합니다. 반대쪽면에 2 개의 kinect가있는 사용자의 앞면과 뒷면을 가져 와서 두 PointClouds를 생성합니다.여러 Kinect가있는 PointCloud

문제는 PointClouds X/Y/Z가 동기화되지 않고 두 개를 화면에 표시하는 것이므로 지저분 해 보입니다. 두 번째 PointCloud를 첫 번째 "조인"으로 변환하기 위해 이들을 계산하거나 비교하는 방법이 있습니까? 수동으로 위치를 변환 할 수는 있지만 센서를 움직이면 위치가 다시 해제됩니다. 치죠

+0

'AllFramesReady' 이벤트를 사용하고 있습니까? 그 모든 카메라를 동기화해야합니다 –

답변

4

모든 키 넥트가 고정되어, 당신이 순서대로 갈 것 같아요,

  1. 결정 넥트 글로벌 참조로 사용할 수있는 각각의 3D 변환을위한
  2. GET 매개 변수를 다른 키 넥트의 - 나는 느릴 수 있지만
  3. 다른 키 넥트 '포인트 구름의 각각의 변환을 적용, 사용 PMatrix3D 및 applyMatrix()을 시도하고 그릴 것 구름

Procrustes transformation에 대한 변환 매개 변수를 얻는 방법을 아직 모르지만 변경되지 않는다고 가정하면 아마 각 쌍의 점 구름을 표시하여 여러 참조 점을 설정해야 할 것입니다. Kinects와 당신이 알고있는 포인트를 등록하는 것은 두 포인트 구름 모두에서 동일합니다. 그것들을 충분히 얻은 후, PMatrix3D를 만들고 push/popMatrix 내부에 적용하십시오. 이것은이 사람이 사용하는 접근 방식입니다. http://www.youtube.com/watch?v=ujUNj1RDL4I

대안적인 접근 방법은 반복적 인 최단 포인트 알고리즘을 사용하고 출력으로부터 3D 변환을 구성하는 것입니다. 아무도 좋은 것을 알고 있다면 Processing을위한 ICP 또는 PCL 라이브러리를 정말 좋아할 것입니다.

+0

고마워! 나는 그것에게 시험을 줄 것이다, 나는 지금 당신의 대답을 투표 할 것이다. –