Трябва да преобразувам данни от слоеве в данни за мат. За това използвах plyreader на pcl и го преобразувах в облак от точки и сега следващата ми стъпка е да го конвертирам в mat данни от облак от точки. Предполагам, че облакът от точки, който получих от plyreader, е неорганизиран. Опитвам се да извлека xyz стойностите на облака от точки и след това да го копирам в данни.
pcl::PointCloud::Ptr облак (нов 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);
}
Знам, че е грешно. Намерих една публикация за това, но това е за организиран облак. Връзката е тук -->
Посетете [pointcloud to mat]
Преминаване от PointCloud към Mat
Нов съм в тази област. Ако някой знае или може да помогне!!!
Благодаря предварително