我必須將ply數據轉換爲mat數據。爲此,我使用pcl的plyreader並將其轉換爲點雲,現在我的下一步是將其轉換爲點雲的mat數據。 我想我從plyreader獲得的點雲是無組織的。我一直在嘗試提取點雲的xyz值,然後將其複製到數據中。pointcloud data to mat data
pcl :: PointCloud :: Ptr cloud(new pcl :: PointCloud); //創建一個新的點雲(POINTXYZ)
pcl::PLYReader reader;
reader.read(filename,*cloud); // read the ply file
cv::Mat output;
//...
output = cv::Mat(1,cloud->points.size(),CV_32FC3);
for(size_t i=0; i<cloud->points.size();++i)
{
int m = cloud->points[i].x;
int n = cloud->points[i].y;
int l = cloud->points[i].z;
float x0;
float x1;
float x2;
output.at<cv::Vec3f>(x0,x1,x2)= cv::Vec3f(m,n,l);
}
我知道這是錯誤的。我發現一個帖子關於這個但這是有組織的雲連接是在這裏 - >
訪問[點雲到MAT]
Coversion from PointCloud to Mat
我是新來這個領域。如果有人知道或可以幫助!
在此先感謝
解決....只需要在定義cvmat時添加零,以便它可以覆蓋值。 cv :: Mat輸出; output = cv :: Mat :: zeros(1,cloud-> points.size(),CV_32FC3); – Akash 2015-04-23 07:16:47