转换 PCL 点云时精度丢失
Precision getting lost when transforming the PCL pointcloud
我正在使用 PCL 中的 this 来转换我拥有的点云。基本上,我只是通过一些偏移来翻译云。
问题是我在应用此转换后失去了精度。下图更清楚。
我看到只有当我的偏移量值很大(>6 位)时才会发生这种情况,云会由此平移。
下面是使用 pcl 库的代码
Eigen::Matrix4d translationMatrix = Eigen::Matrix4d::Identity();
//translation
translationMatrix(0,3) = 1000000;
translationMatrix(1,3) = 1000000;
pcl::PointCloud<pcl::PointXYZ>::Ptr translatedCloud;
translatedCloud.reset(new pcl::PointCloud<pcl::PointXYZ>());
pcl::transformPointCloud(*cloud,*translatedCloud,translationMatrix);
pcl::io::savePCDFileASCII ("translatedCloud.pcd",*translatedCloud);
原云
变形的云
我怀疑问题可能出在所使用的数据类型的范围上。
有关此的任何信息都会有所帮助。
我正在使用 PCL 中的 this 来转换我拥有的点云。基本上,我只是通过一些偏移来翻译云。
问题是我在应用此转换后失去了精度。下图更清楚。
我看到只有当我的偏移量值很大(>6 位)时才会发生这种情况,云会由此平移。
下面是使用 pcl 库的代码
Eigen::Matrix4d translationMatrix = Eigen::Matrix4d::Identity();
//translation
translationMatrix(0,3) = 1000000;
translationMatrix(1,3) = 1000000;
pcl::PointCloud<pcl::PointXYZ>::Ptr translatedCloud;
translatedCloud.reset(new pcl::PointCloud<pcl::PointXYZ>());
pcl::transformPointCloud(*cloud,*translatedCloud,translationMatrix);
pcl::io::savePCDFileASCII ("translatedCloud.pcd",*translatedCloud);
原云
变形的云
我怀疑问题可能出在所使用的数据类型的范围上。
有关此的任何信息都会有所帮助。