將kitti中的時間文件生成EuRoC格式data.csv的代碼

#!/usr/bin/python
# -*- coding: UTF-8 -*-

print "generating kitti data csv..."

import time, sys, os, fnmatch, csv
from ros import rosbag
import roslib
import rospy
import numpy as np
roslib.load_manifest('sensor_msgs')
from sensor_msgs.msg import Image

# import ImageFile
from PIL import ImageFile
from PIL import Image as ImagePIL

'''get sequence info drom dir'''
def GetFilesFromDir(dir,timefile):
  '''Generates a list of files from the directory'''
  print "GetFilesFromDir..."
  left_list = fnmatch.filter(os.listdir(dir+"image_0/"), '*.png')
  # right_list = fnmatch.filter(os.listdir(dir + "image_1/"), '*.png')
  left_list.sort()

  seq_time = []
  timestamps = []
  # seqtimefile = open(timefile, "r+")
  # for line in seqtimefile:
  #   seq_time.append(line)
  with open(timefile, "r+") as f:
      line = f.readline()
      while line:
          line = line.strip()
          seq_time.append(line)
          line = f.readline()
  f.close()

  le = len(left_list)
  for i in range(le):
      timestamps.append( rospy.rostime.Time.from_sec(float(seq_time[i])) )

  datafile = open("data.csv", "wb")
  writer = csv.writer(datafile)
  writer.writerow(["#timestamp [ns]", "filename"])
  for i in range(le):
      writer.writerow([timestamps[i],left_list[i] ])
  datafile.close()

if __name__ == "__main__":
    print "main..."
    dir="~/kitti_dataset/sequences/01/"
    timefile = dir + "times.txt"
    GetFilesFromDir(dir,timefile)

注意strip('\n')是沒有去掉‘\r’的 會有錯誤,現在將代碼又升級了,還沒有貼上來

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章