process_data.py
#encoding:utf-8
# !/usr/bin/python'''
USE Method:python process_data.py
1.点云pcd文件名是按时间戳保存的.2.相机pic文件名是按时间戳保存的。
此文档是根据点云和图像时间戳,匹配点云和图像数据。
'''import os
import sys
import argparse
import os.path
import shutilpath = os.path.abspath('.')def parse_args():"""Parse input arguments"""parser = argparse.ArgumentParser(description='cut pic and xml 1 to 2')parser.add_argument('--pcd', dest='pcd',default = "pcd", type=str)parser.add_argument('--pic', dest='pic',default = "pic",type=str)# if len(sys.argv) == 1:# parser.print_help()# sys.exit(1)args = parser.parse_args()return argsif __name__ == '__main__':args = parse_args()print('Called with args:')print(args)path_pcd = "/media/data/zs/project/天准车机/caiji/230601/pcd"path_pic = "/media/data/zs/project/天准车机/caiji/230601/png"pcd = "2023-05-29-17-09-19"pic = "2023-05-29-17-09-19/camera_6"pcd_path = os.path.join(path_pcd , pcd)pic_path = os.path.join(path_pic , pic)timestamp = 200 #ms# dst_pcd_path = path_pcd + '/' + "not_pic"dst_pic_path = path_pcd + '/' + "camera_6"if not os.path.exists(dst_pic_path):os.mkdir(dst_pic_path)else:print("此目录已存在!")sys.exit(1)# if not os.path.exists(dst_pcd_path):# os.mkdir(dst_pcd_path)# else:# print("此目录已存在!")# sys.exit(1)# for file in os.listdir(pic_path):# pcd_name = os.path.join(pcd_path, os.path.splitext(file)[0] + ".pcd")# if os.path.exists(pcd_name):# print("This file", file, "has pcd !")# elif not os.path.exists(pcd_name):# print("This file", file, "has not pcd !")# shutil.move(os.path.join(pic_path,file), dst_pic_path)for file in os.listdir(pcd_path):pcd_name_int = (int)(os.path.splitext(file)[0])# print(pcd_name_int)# print("------------------------------")is_matching = Falsefor pic_file in os.listdir(pic_path):pic_name_int = (int)(os.path.splitext(pic_file)[0])if abs(pcd_name_int - pic_name_int) < timestamp:#os.rename(filepath,newpath)old_pic_path = os.path.join(pic_path , pic_file)shutil.copy(old_pic_path, dst_pic_path)new_pic_path = os.path.join(dst_pic_path , str(pcd_name_int)+".jpg")print(old_pic_path)print(new_pic_path)os.rename(os.path.join(dst_pic_path , pic_file),new_pic_path)is_matching = Truebreakif is_matching == False:for pic_file in os.listdir(pic_path):pic_name_int = (int)(os.path.splitext(pic_file)[0])if abs(pcd_name_int - pic_name_int) < timestamp*2:#os.rename(filepath,newpath)old_pic_path = os.path.join(pic_path , pic_file)shutil.copy(old_pic_path, dst_pic_path)new_pic_path = os.path.join(dst_pic_path , str(pcd_name_int)+".jpg")print(old_pic_path)print(new_pic_path)os.rename(os.path.join(dst_pic_path , pic_file),new_pic_path)breakprint("Done!")#pic_path = os.path.join(pic_path, pic_name)#shutil.move(xml_name, dst_path)#for dirpath, dirnames, filenames in os.walk("f:/"):# for filename in filenames:# if os.path.splitext(filename)[1] == ".txt":# print filepath# copy(filepath, "F:/test/" + filename)# Shutil.move(changeFilePath, dst_path)