PCL:關於pcd數據顯示的一個小問題 -开发者知识库

PCL:關於pcd數據顯示的一個小問題 -开发者知识库,第1张

為了分析點雲數據,然后想查看一下原始的pcd,結果使用cat查看時出現亂碼,因為保存形式二進制形式,所以這里就是簡單的一個pcd另存為的操作!

PCL:關於pcd數據顯示的一個小問題 -开发者知识库,這里寫圖片描述,第2张

#include <iostream>
#include <cstring>
#include <pcl/io/pcd_io.h>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>


bool LoadPCD(std::string filename, pcl::PointCloud<pcl::PointXYZ>::Ptr cloud)
{

if (pcl::io::loadPCDFile<pcl::PointXYZ>(filename, *cloud) == -1)
{
std::cout<< "can't read file " << filename << std::endl;
return (-1);
}
}



int main(int argc, char **argv) {
std::cout << "Hello, world!" << std::endl;
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_source(new pcl::PointCloud<pcl::PointXYZ>);

std::string filename = "/home/frr/Documents/code/3d_pointcloud_plane_fitting/test_planefitting.pcd";
// std::string filename = "../table_scene_lms400.pcd";

LoadPCD(filename, cloud_source);
std::cout << "PointCloud_source has: " << cloud_source->points.size () << " data points." << std::endl;

pcl::PCDWriter writer;
std::stringstream ss;
ss << "/home/frr/Documents/code/pcl_learning/ascii_change/build/ascii_change.pcd";
writer.write<pcl::PointXYZ> (ss.str (), *cloud_source, false); //*
return 0;
}

再次讀取使用cat查看時,就是正常的數據顯示
PCL:關於pcd數據顯示的一個小問題 -开发者知识库,這里寫圖片描述,第3张

PCL用的還不是很熟,還在慢慢摸索很多功能中,如果有理解不到位的地方還請小伙伴們指正!

最佳答案:

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复