栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

lidar 单帧数据 txt和bin 格式互转

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

lidar 单帧数据 txt和bin 格式互转

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!!!")
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/600054.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号