私のカメラはrosbagデータセットを記録します

データセットの記録:
使用されるカメラは両眼深度バージョンです。最初にlaunchファイルを開始します

roslaunch mynteye_wrapper_d display.launch

次に、RGB画像によってrosbagファイルが大きくなりすぎることを考慮して、画像とimuデータを記録し、グレースケール画像を記録します。

rosbag record /mynteye/left/image_mono /mynteye/right/image_mono /mynteye/imu/data_raw

カメラのデフォルトのフレームレートが高いため、bagファイルが大きくなりすぎます。カメラのフレームレートは10hz次のように設定できます。

rosrun topic_tools throttle messages /mynteye/left/image_raw 10 /left
rosrun topic_tools throttle messages /mynteye/right/image_raw 10 /right

この命令はROS命令です。その効果は、サブスクライブして/mynteye/left/image_monoから、サンプリング頻度を10Hzに減らし、サンプリング頻度を減らした後、画像データの/lefttopicという名前の新しいトピックを公​​開することです。

最後に、rosbag関心のある3つのトピックを使用して記録します

rosbag record /left /right /mynteye/imu/data_raw

rosbag画像抽出から
新規extract_images.py

# coding:utf-8
#!/usr/bin/python

# Extract images from a bag file.

import roslib   #roslib.load_manifest(PKG)
import rosbag
import rospy
import decimal
import cv2
from sensor_msgs.msg import Image
from cv_bridge import CvBridge
from cv_bridge import CvBridgeError
  

left_path = '/home/wb/MYNT-EYE-S-SDK/dataset/left/'   # 左目图像的路径,需提前手动创建,也可以使用程序自动创建
right_path = '/home/wb/MYNT-EYE-S-SDK/dataset/right/'
  
class ImageCreator():
    def __init__(self):
        self.bridge = CvBridge()
        with rosbag.Bag('/home/wb/MYNT-EYE-S-SDK/2020-08-05-23-05-50.bag', 'r') as bag:  # 读取bag文件,注意设置正确的bag文件路径
            for topic,msg,t in bag.read_messages():
                if topic == "/left": # 左目图像的topic
                        try:
                            cv_image = self.bridge.imgmsg_to_cv2(msg,"bgr8")
                        except CvBridgeError as e:
                            print e
                        # %.6f表示小数点后带有6位,可根据精确度需要修改
                        timestr = "%.6f" % msg.header.stamp.to_sec()
                        image_name = timestr + ".png" #图像命名:时间戳.png
                        cv2.imwrite(left_path + image_name, cv_image)  # 保存图像
                elif topic == "/right": # 右目图像的topic
                        try:
                            cv_image = self.bridge.imgmsg_to_cv2(msg,"bgr8")
                        except CvBridgeError as e:
                            print e
                        # %.6f表示小数点后带有6位,可根据精确度需要修改
                        timestr = "%.6f" % msg.header.stamp.to_sec()
                        image_name = timestr + ".png" #图像命名:时间戳.png
                        cv2.imwrite(right_path + image_name, cv_image)  # 保存图像
  
if __name__ == '__main__': 
    try:
        image_creator = ImageCreator()
    except rospy.ROSInterruptException:
        pass

近視カメラの白い斑点はIRモード原因でオフにでき、MYNT-EYE-D-SDK/wrappers/ros/src/mynteye_wrapper_d/launch/mynteye.launch途中でオフにできます。変更点は次のとおりです。

<!-- IR intensity -->
  <arg name="ir_intensity" default="4" />

default="4"変更されますdefault="0"

おすすめ

転載: blog.csdn.net/qq_33898609/article/details/109659539