Kinect Fusion의 AlignPointCloud 기능에 데이터를 수동으로 공급하려고합니다. Kinect SDK Toolkit 1.8에는 Kinect Fusion을 사용하는 방법에 대한 예제가 있습니다. 샘플에 제공된 툴킷을 사용하여 퓨전을 사용하여 두 점 구름을 정렬하려고했습니다. 그러나 AlignPointCloud 메서드를 성공적으로 수렴 할 수없는 것처럼 보입니다.Kinect Fusion Toolkit에 포인트 클라우드 데이터 수동 공급
데이터를 FusionPointCloudImageFrame으로 복사하는 방법에 대한 오해가 있습니다.
내가 현재 (간단하게 두 개의면과 일치하는 사소한 사건을) 할 노력하고있어 실패
float[] arr1 = new float[80 * 60 * 6];
float[] arr2 = new float[80 * 60 * 6];
for (int y = 0; y < 60; y++) {
for (int x = 0; x < 80; x++) {
int ind = y * 80 + x;
arr1[ind] = x/.1f; // X coordinate
arr1[ind + 1] = y/.1f; // Y coordinate
arr1[ind + 2] = 1; // Z coordinate
// Normals
arr1[ind + 3] = 0;
arr1[ind + 4] = 0;
arr1[ind + 5] = 1;
arr2[ind] = x/.1f; // X coordinate
arr2[ind + 1] = y/.1f; // Y coordinate
arr2[ind + 2] = 2; // Z coordinate
// Normals
arr1[ind + 3] = 0;
arr1[ind + 4] = 0;
arr1[ind + 5] = 1;
}
}
FusionPointCloudImageFrame pcl1 = new FusionPointCloudImageFrame(80, 60);
FusionPointCloudImageFrame pcl2 = new FusionPointCloudImageFrame(80, 60);
pcl1.CopyPixelDataFrom(arr1);
pcl2.CopyPixelDataFrom(arr2);
Matrix4 m = Matrix4.Identity;
bool success = FusionDepthProcessor.AlignPointClouds(pcl1, pcl2, 7, null, ref m);
// Does not converge, m is identity regardless of what it was before
내가 잘못하고, 또는 나는 무엇 수동으로 데이터를 공급하기 위해 변경해야 할 두 점 구름과 일치 하는가? 또한 누군가 폭과 높이를 갖는 점 구름의 중요성을 나에게 설명해 줄 수 있습니까? 각 점은 x, y 및 z 값을 가지며 순서대로 afaik가 될 필요가 없습니다. 따라서 너비 또는 높이를 제공해야하는 이유는 무엇입니까? .obj (파면) 파일에서 데이터를 읽는다면 너비와 높이를 어떻게 결정합니까?
감사합니다.