对RCS数据进行预处理

提取RCS数据中的xyzrgb信息

首先在recap中把rcs文件导出为pts文件,pts类似于txt,然后读取。
去掉了pts文件中第一行,即数据大小这行,因为需要丢入深度学习框架中,需要对数据进行预处理。
然后仅保留XYG和RGB信息,存为npy文件。

import os
import time
import numpy as np

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
ROOT_DIR = BASE_DIR


def returnrcsdata(outfolder, path):
    data = []
    start = time.time()
    for line in open(path, "r"):
        line = line[:-1]  # 去掉换行符
        data.append(line.split(' '))

    output_folder = os.path.join(ROOT_DIR, outfolder)  # 输出文件目录
    if not os.path.exists(output_folder):
        os.mkdir(output_folder)

    data = data[1:len(data)]  # 去掉第一行

    start_id = 0
    for i in range(10):
        start_id = max(start_id, int(i * len(data) / 10))  #数据太大,分为10份
        end_id = min(int((i + 1) * len(data) / 10), len(data))
        data = np.array(data[start_id:end_id])
        # 归一化
        xyz_min = np.amin(data, axis=0)[0:3]
        data[:, 0:3] -= xyz_min
        data = np.concatenate([data[:,0:3], data[:,4:7]], 1)  # 保留XYZ,RGB信息
        out_filename = 'Area_99_hangzhoulu_' + str(i) + '.npy'
        out_filename = os.path.join(output_folder, out_filename)
        np.save(out_filename, data)
    end = time.time()
    print('程序运行时间:', end - start)


if __name__ == '__main__':
    output_folder = 'hangzhoulu'
    path = r'杭州路.pts'
    returnrcsdata(output_folder, path)

你可能感兴趣的:(python,numpy)