lidar single frame data bin —> txt
#!/usr/bin/env python
# coding: utf-8
import shutil
import numpy as np
import os
import glob
from tqdm import tqdm
import multiprocessing
from argparse import ArgumentParser, SUPPRESS
def build_argparser():
parser = ArgumentParser(add_help=False)
args = parser.add_argument_group('Options')
args.add_argument("-h", "--help", action='help', default=SUPPRESS, help='Show this help message and exit.')
args.add_argument("-i", "--original_bin_path", help="Required. The absolute path of the input lidar .bin format data.", required=True, type=str)
args.add_argument("-o", "--now_txt_path",help="Required. The absolute path of the output lidar .txt format data.", required=True, type=str)
return parser
args = build_argparser().parse_args()
original_bin_path = args.original_bin_path #后面加/
now_txt_path = args.now_txt_path #"/media/ls/871d73ac-db1f-4753-b7fd-32262a9e36e0/Wsl/Wsl/PointCloud/Makedata/data/cloud_txt"
def try_multiP_read_bin_create_txt(bin_path,now_txt_path):
save_txt_path = now_txt_path + '/' + bin_path.split('/')[-1][:-4] + '.txt'
print(save_txt_path)
datas_ls = np.fromfile(bin_path, dtype="float32").reshape(-1, 4)
datas_np = np.array(datas_ls, dtype=np.float32)
np.savetxt(save_txt_path,datas_np)
def read_bin_create_txt(original_bin_path,now_txt_path):
if os.path.exists(now_txt_path):
shutil.rmtree(now_txt_path)
os.mkdir(now_txt_path)
pool = multiprocessing.Pool(processes=10)
for bin_path in tqdm(sorted(glob.glob(original_bin_path + '/'+'*.bin'))):
#print(bin_path)
pool.apply_async(try_multiP_read_bin_create_txt, (bin_path,now_txt_path))
pool.close()
pool.join()
read_bin_create_txt(original_bin_path,now_txt_path)
print("All files have been processed!!!")
print("All files have been processed!!!")
print("All files have been processed!!!")
lidar data txt —> bin :
#!/usr/bin/env python
# coding: utf-8
import shutil
import numpy as np
import os
import glob
from tqdm import tqdm
import multiprocessing
from argparse import ArgumentParser, SUPPRESS
def build_argparser():
parser = ArgumentParser(add_help=False)
args = parser.add_argument_group('Options')
args.add_argument('-h', '--help', action='help', default=SUPPRESS, help='Show this help message and exit.')
args.add_argument("-i", "--original_txt_path", help="Required. The absolute path of the input lidar .txt format data.", required=True, type=str)
args.add_argument("-o", "--now_bin_path",help="Required. The absolute path of the output lidar .bin format data.", required=True, type=str)
return parser
args = build_argparser().parse_args()
original_path = args.original_txt_path #后面加/
now_path = args.now_bin_path #"/media/ls/871d73ac-db1f-4753-b7fd-32262a9e36e0/Wsl/Wsl/PointCloud/Makedata/data/cloud_txt"
def try_multiP_read_txt_create_bin(txt_path,now_path):
save_bin_path = now_path + '/' + txt_path.split('/')[-1][:-4] + '.bin'
print(save_bin_path)
data = np.loadtxt(txt_path, dtype="float32")
data.tofile(save_bin_path)
def read_txt_create_bin(original_path,now_path):
if os.path.exists(now_path):
shutil.rmtree(now_path)
os.mkdir(now_path)
pool = multiprocessing.Pool(processes=10)
for txt_path in tqdm(sorted(glob.glob(original_path + '/'+'*.txt'))):
pool.apply_async(try_multiP_read_txt_create_bin, (txt_path,now_path))
pool.close()
pool.join()
read_txt_create_bin(original_path,now_path)
print("All files have been processed!!!")
print("All files have been processed!!!")
print("All files have been processed!!!")



