用C++将文件夹中的所有.txt文件为对应文件名的.pcd文件
时间: 2024-04-07 09:30:08 浏览: 109
以下是一个示例的C++代码,可以将文件夹中的所有.txt文件转换为对应文件名的.pcd文件。请确保您已经安装了PCL库,并将其链接到您的项目中。
```cpp
#include <iostream>
#include <string>
#include <vector>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
int main(int argc, char** argv) {
std::string folder_path = "your_folder_path"; // 替换为您的文件夹路径
std::vector<std::string> file_names;
// 获取文件夹中所有.txt文件的文件名
pcl::getAllFilesInDirectory(folder_path, ".txt", file_names);
for (const auto& file_name : file_names) {
std::string txt_file_path = folder_path + "/" + file_name;
std::string pcd_file_path = folder_path + "/" + file_name.substr(0, file_name.find_last_of('.')) + ".pcd";
// 读取.txt文件
pcl::PointCloud<pcl::PointXYZ> cloud;
if (pcl::io::loadPCDFile<pcl::PointXYZ>(txt_file_path, cloud) == -1) {
std::cerr << "Failed to load " << txt_file_path << std::endl;
continue;
}
// 保存为.pcd文件
pcl::io::savePCDFileBinary(pcd_file_path, cloud);
std::cout << "Converted " << txt_file_path << " to " << pcd_file_path << std::endl;
}
return 0;
}
```
请将代码中的"your_folder_path"替换为您实际的文件夹路径。此代码假设您的.txt文件可以直接作为.pcd文件读取,且点的类型为pcl::PointXYZ。如果您的文件格式或点类型不同,请相应调整代码。
编译并运行此代码后,它将遍历指定文件夹中的所有.txt文件,并将它们转换为对应的.pcd文件。转换后的.pcd文件将保存在相同的文件夹中。如果转换成功,将会在控制台输出转换的信息。
阅读全文