#include<fstream>
#include <pcl/visualization/pcl_visualizer.h>
//-------------------------------从txt文件中读取三维坐标-------------------------------------
void readPointCloudFromTxt(const std::string& file_path, pcl::PointCloud<pcl::PointXYZ>& cloud)
{
cloud.clear();
std::fstream file(file_path.c_str());
pcl::PointXYZ point;
while (!file.eof()) {
file >> point.x >> point.y >> point.z;
cloud.push_back(point);
}
file.close();
}
//----------------------------------------可视化---------------------------------------------
void visualization(pcl::PointCloud<pcl::PointXYZ> cloud)
{
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::visualization::PCLVisualizer("viewer"));
// 添加需要显示的点云数据
pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> single_color(cloud.makeShared(), 255, 0, 0);
viewer->addPointCloud<pcl::PointXYZ>(cloud.makeShared(), single_color, "example");
viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 2, "example");
while (!viewer->wasStopped()) {
viewer->spinOnce(100);
}
}
int main(int argc, char** argv) {
// -------------------从txt中读取点云----------------------
pcl::PointCloud<pcl::PointXYZ> cloud;
readPointCloudFromTxt("/home/rvbust/Documents/data.txt", cloud);
// -----------------可视化点云---------------------
visualization(cloud);
return 0;
}
pcl之从txt中读取点云
最新推荐文章于 2024-03-14 15:17:48 发布