从PSDK获取到的LDRT文件,可以参考此文件头来进行解析。
可以参考:
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
typedef struct _ldrt_file_header_t {
uint32_t magic;
uint8_t version;
uint8_t pcd_offset;
uint32_t pc_count;
uint8_t is_visible;
uint8_t reflectivity_min;
uint8_t reflectivity_max;
float orign_longitude;
float orign_latitude;
float orign_altitude;
float x_min;
float x_max;
float y_min;
float y_max;
float z_min;
float z_max;
uint8_t rsvd[75];
} __attribute__((packed)) ldrt_file_header_t;
void parse_ldrt_file(const char *filename) {
FILE *file = fopen(filename, "rb");
if (!file) {
perror("Failed to open file");
return;
}
ldrt_file_header_t header;
size_t read_size = fread(&header, sizeof(ldrt_file_header_t), 1, file);
if (read_size != 1) {
perror("Failed to read file header");
fclose(file);
return;
}
printf("Magic: 0x%X\n", header.magic);
printf("Version: %u\n", header.version);
printf("PCD Offset: %u\n", header.pcd_offset);
printf("Point Count: %u\n", header.pc_count);
printf("Is Visible: %u\n", header.is_visible);
printf("Reflectivity Min: %u\n", header.reflectivity_min);
printf("Reflectivity Max: %u\n", header.reflectivity_max);
printf("Origin Longitude: %f\n", header.orign_longitude);
printf("Origin Latitude: %f\n", header.orign_latitude);
printf("Origin Altitude: %f\n", header.orign_altitude);
printf("X Min: %f\n", header.x_min);
printf("X Max: %f\n", header.x_max);
printf("Y Min: %f\n", header.y_min);
printf("Y Max: %f\n", header.y_max);
printf("Z Min: %f\n", header.z_min);
printf("Z Max: %f\n", header.z_max);
fclose(file);
}
int main() {
const char *filename = "yourldrt.LDRT";
parse_ldrt_file(filename);
return 0;
}
评论
0 条评论
请登录写评论。