https://callmescone.tistory.com/294
[MMDetection3D] ply to bin, obj to ply
If you want to put a ply file ply to bin convert_ply('./test.ply', './test.bin') import numpy as np import pandas as pd from plyfile import PlyData def convert_ply(input_path, output_path): plydata = PlyData.read(input_path) # read file data = plydata.elem
callmescone.tistory.com
- 작성한 코드 전문
import numpy as np
import pandas as pd
import argparse
import os
import errno
from plyfile import PlyData
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument('-i', '--input_path', help='input folder path')
parser.add_argument('-o', '--output_path', help='output folder path')
args = parser.parse_args()
return args
def convert_ply(input_path, output_path):
plydata = PlyData.read(input_path) # read file
data = plydata.elements[0].data # read data
data_pd = pd.DataFrame(data) # convert to DataFrame
data_np = np.zeros(data_pd.shape, dtype=np.float32) # initialize array to store data
property_names = data[0].dtype.names # read names of properties
for i, name in enumerate(
property_names): # read data by property
data_np[:, i] = data_pd[name]
data_np.astype(np.float32).tofile(output_path)
def convert_folder(input_folder, output_folder):
filenames = os.listdir(input_folder)
for filename in filenames :
input_path = os.path.join(input_folder,filename)
output_path = os.path.join(output_folder,filename[:-3]+'bin')
convert_ply(input_path,output_path)
def check_dir(output_folder):
try :
os.makedirs(output_folder)
except OSError as exc :
if exc.errno == errno.EEXIST and os.path.isdir(output_folder) :
pass
def main():
args = parse_args()
input_folder = args.input_path
output_folder = args.output_path
check_dir(output_folder)
convert_folder(input_folder, output_folder)
if __name__ == '__main__':
main()
- convert_ply는 튜토리얼 코드 그대로 차용 하였습니다.
- check_dir : 폴더가 있을 경우 패스, 없을 경우 생성
- errno는 에러코드 모두를 담고 있는 라이브러리 입니다.
본래 갖고 있는 데이터를 bin으로 만들었습니다. 이제 data converter를 건들여 봅시다.
'Project' 카테고리의 다른 글
[MMDetection3D] Calib 없는 Custom 데이터로 Pointpillars 학습하기 (0) | 2023.02.14 |
---|---|
[MMDetection3D] PCD, Cuboid, yaw 만을 가지고 데이터 세팅 (0) | 2023.02.10 |
[MMDetection3D] Customize Datasets _ Intro (0) | 2023.02.10 |
[MMDetection3D] KITTI Data Prepare (0) | 2023.02.09 |
[MMDetection3D] ply to bin, obj to ply (0) | 2023.02.09 |