写一段用哈希表存储点云ply数据的c++代码
以下是一段使用哈希表存储点云PLY数据的C++代码示例:
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <vector>
struct Point {
float x, y, z;
};
int main() {
std::ifstream file("point_cloud.ply");
if (!file) {
std::cout << "Failed to open file." << std::endl;
return 0;
}
std::string line;
std::unordered_map<int, Point> pointCloud;
// Skip header lines
while (std::getline(file, line) && line != "end_header") {}
// Read point cloud data
while (std::getline(file, line)) {
float x, y, z;
int id;
std::istringstream iss(line);
iss >> x >> y >> z >> id;
Point point;
point.x = x;
point.y = y;
point.z = z;
pointCloud[id] = point;
}
// Print point cloud data
for (const auto& entry : pointCloud) {
std::cout << "ID: " << entry.first << ", Point: (" << entry.second.x << ", "
<< entry.second.y << ", " << entry.second.z << ")" << std::endl;
}
file.close();
return 0;
}
上述代码假设点云数据存储在名为"point_cloud.ply"的PLY文件中。代码首先打开文件,然后跳过文件头部信息,然后使用哈希表存储点云数据,其中键是ID,值是一个Point结构体,包含x、y和z坐标。最后,代码遍历哈希表,并打印每个ID和对应的点坐标。请确保PLY文件的格式与代码中的读取逻辑相匹配
原文地址: https://www.cveoy.top/t/topic/hGtN 著作权归作者所有。请勿转载和采集!