将视频转换为图片并以时间戳命名(制作orbslam3数据集)

import os
import cv2
import datetime

videos_src_path = r'F:/video'
videos_save_path = r'F:/video'

videos = os.listdir(videos_src_path)
i = 0
for each_video in videos:
    print('Video Name :', each_video)
    each_video_name, _ = each_video.split('.')
    os.mkdir(videos_save_path + '/' + each_video_name)

    each_video_save_full_path = os.path.join(videos_save_path, each_video_name) + '/'

    each_video_full_path = os.path.join(videos_src_path, each_video)

    cap = cv2.VideoCapture(each_video_full_path)
    frame_count = 1
    success = True
    while (success):
        success, frame = cap.read()
        cv2.waitKey(10)
        i = i + 1
        if success == True:
            # uuid_str = time.strftime("%Y-%m-%d-%H_%M_%S.%f", time.localtime())  # 图片命名为当前时间
            uuid_str = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
            uuid_str = str(uuid_str)
            uuid_str = uuid_str.replace(":", "-")  # 去掉python读取时间中的:,文件命名不能有:
            uuid_str = uuid_str.replace(" ", "")  # 去掉python读取时间中空格,文件命名不能空格:
            uuid_str = uuid_str.replace("-", "")
            uuid_str = uuid_str.replace("_", "")
            if i % 1 == 0:
                cv2.imwrite(each_video_save_full_path + uuid_str + '.png', frame)
                # cv2.imwrite(each_video_save_full_path + uuid_str + "%d.png" % frame_count, frame)

        frame_count = frame_count + 1
    print('Final frame:', frame_count)
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
ORB-SLAM2 是一种基于视觉惯性里程计(Visual-Inertial Odometry,简称VIO)的稀疏SLAM算法。它可以在缺少GPS和IMU等传感器数据的情况下,通过单目或双目相机来实现对场景的建图和定位。在使用ORB-SLAM2时,我们可以使用自己的数据集进行测试和评估。 首先,我们需要准备自己的数据集。可以通过采集相机拍摄的连续图像序列,并将他们保存为图片。这些图像可以来自于室内或室外场景,以模拟不同的环境条件。 接下来,我们需要按照ORB-SLAM2的输入格式准备数据。具体来说,将每个图像按照时间顺序命名,并将它们保存在一个文件夹中。我们还可以在数据集的文件夹中添加一个与图像对应的时间戳文件,用于ORB-SLAM2中时间同步的需求。 然后,我们可以运行ORB-SLAM2的可执行文件,将我们的数据集作为输入参数进行处理。ORB-SLAM2会读取图像序列并分析它们,以构建地图并定位相机的位置。 在运行过程中,ORB-SLAM2会逐帧地对图像进行特征提取和特征匹配,并使用视觉和惯性信息计算相机的运动。通过这些计算,ORB-SLAM2可以实现 SLAM 的功能,即建立稀疏地图并估计相机在场景中的位置。 当ORB-SLAM2处理完所有图像后,我们可以得到建立的地图和相机的轨迹。同时,ORB-SLAM2还会输出一些评估结果,如定位误差和重投影误差等,以评估算法的性能。 通过上述步骤,我们可以使用自己的数据集来测试和评估ORB-SLAM2算法。这有助于我们了解算法在不同场景和数据集上的性能,从而优化和改进SLAM算法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值