C++ 读取二进制点云文件,然后保存为pcd格式
时间: 2023-10-05 07:11:25 浏览: 69
可以使用PCL库来读取二进制点云文件并保存为pcd格式。下面是一个示例代码:
```c++
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
int main(int argc, char** argv)
{
if (argc < 3)
{
std::cerr << "Usage: " << argv[0] << " input_file output_file" << std::endl;
return 1;
}
std::string input_file = argv[1];
std::string output_file = argv[2];
// 读取二进制点云文件
pcl::PointCloud<pcl::PointXYZI>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZI>);
if (pcl::io::loadPCDFile<pcl::PointXYZI>(input_file, *cloud) == -1)
{
std::cerr << "Failed to read input file: " << input_file << std::endl;
return 1;
}
// 保存为pcd格式
pcl::io::savePCDFileASCII(output_file, *cloud);
std::cout << "Saved " << cloud->size() << " data points to " << output_file << "." << std::endl;
return 0;
}
```
在命令行中运行该程序,需要指定输入文件和输出文件,例如:
```
./read_bin_and_save_pcd input.bin output.pcd
```
其中,`input.bin`为输入的二进制文件,`output.pcd`为输出的pcd文件。