2016-01-06 46 views
0

我使用Kinect構建3D雲時,當我嘗試使用PCL的StatisticalOutlierRemoval或RadiusOutlierRemoval時,它說「輸入數據集不是來自投影設備」 ,但是我的雲看起來很投射。 這裏是我的構建雲代碼:PCL過濾器,「輸入數據集不是來自投影設備」

for (int i = 0; i < colNumber; i++) 
    { 
     if (data_d[i] != 0) 
     { 
      Zw = data_d[i] * (3.5-1.2)/255 + 1.2;//kinect's range 1.2~3.5m 
      Xw = (i - u0) * Zw/fx; 
      Yw = (j - v0) * Zw/fy; 
      cloud_a.points[cloud_index].x = Xw; 
      cloud_a.points[cloud_index].y = Yw; 
      cloud_a.points[cloud_index].z = Zw; 
      cloud_a.points[cloud_index].r = data_c[3 * i + 2]; 
      cloud_a.points[cloud_index].g = data_c[3 * i + 1]; 
      cloud_a.points[cloud_index].b = data_c[3 * i]; 
      cloud_index++; 
     } 
     else 
     { 
      cout << "error point in cloud building" << endl; 
     } 
    } 

和我的雲好像: cloud view 我一直在努力了好幾個小時,仍然不知道如何解決它。 下面是射影的描述:

的可投影的點雲數據集是賦予點雲具有根據所述組織的點的(U,V)的索引之間的針孔照相機模型的相關性的名稱點雲和實際的3D值。這種相關性可以表示在它的最簡單的形式爲:U = F X/Z和v = F Y/Z

非常感謝!

回答

1

我自己找到了原因,我對寬度和高度做了一個錯誤。它應該與您找到的Kinect設備的圖像相同。

相關問題