写一bin转txt格式点云转换代码
时间: 2023-03-24 14:02:29 浏览: 118
可以使用以下代码将二进制格式的点云转换为文本格式:
```c
#include <stdio.h>
typedef struct {
float x, y, z;
float intensity;
} Point;
int main(int argc, char **argv) {
if (argc < 3) {
printf("Usage: %s input.bin output.txt\n", argv[]);
return 1;
}
FILE *fin = fopen(argv[1], "rb");
if (!fin) {
printf("Error: cannot open input file %s\n", argv[1]);
return 1;
}
FILE *fout = fopen(argv[2], "w");
if (!fout) {
printf("Error: cannot open output file %s\n", argv[2]);
fclose(fin);
return 1;
}
Point p;
while (fread(&p, sizeof(Point), 1, fin) == 1) {
fprintf(fout, "%.3f %.3f %.3f %d\n", p.x, p.y, p.z, (int)p.intensity);
}
fclose(fin);
fclose(fout);
return ;
}
```
这个程序将从命令行参数中读取输入文件名和输出文件名,然后将二进制格式的点云读入内存,转换为文本格式并写入输出文件。每个点的坐标和强度值将以空格分隔,每个点占一行。
阅读全文