📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载请注明出处
什么是cv_bridge
cv_bridge 是一个用于在ROS(Robot Operating System)和OpenCV(Open Source Computer Vision Library)之间进行图像转换的库。它提供了一组函数和类,用于方便地在ROS中处理图像消息和OpenCV中处理图像数据之间的转换。
使用 cv_bridge,你可以将ROS中的图像消息(如 sensor_msgs/Image)转换为OpenCV中的图像数据(如 cv::Mat),从而可以使用OpenCV进行各种图像处理任务。同样地,你也可以将OpenCV中的图像数据转换为ROS中的图像消息,以便在ROS系统中广播或传递图像数据。
cv_bridge 还支持不同编码格式(如 BGR、RGBA、YUV)之间的转换,并提供了各种函数用于访问和修改图像数据的不同属性,如宽度、高度、通道数等。
通过使用 cv_bridge,你可以方便地在ROS系统和OpenCV之间进行图像数据的传递和处理,使得图像处理和机器人感知应用更加便捷和高效。
ROS与opencv之间进行图像转换和处理的过程
1.首先,订阅摄像头话题(image_raw),读取视频流。
2.使用cv_bridge,将ROS图像格式转化为opencv格式。
3.使用opencv里面的API对图像进行处理。
4.使用cv_bridge,将opencv图像格式转化为ROS格式。
cv_bridge是在ROS图像消息和OpenCV图像之间进行转换的一个功能包。
解决图像传输卡顿的问题
使用rqt_image_view订阅图像话题时,选用image_raw/compress会比image_raw/流畅很多,原因是前者是对图像经过压缩后的显示的。
占用宽带越小,流畅度越高,因此可通过查看话题所用宽带验证:
查看话题宽带
格式:rostopic bw /话题
查看图像话题带宽
rostopic bw /image_row
references:
ROS学习笔记–cv_bridge