如何使用ROS2的OpenCV处理图像消息
我正在尝试使用ROS2的OPENCV来处理一条图像消息,
我尝试使用bridge.imgmsg_to_cv2()将ROS2映像转换为OpENCV,但它不起作用。 这是我的代码:
import rclpy
from rclpy.node import Node
from std_msgs.msg import String
from sensor_msgs.msg import Image
import numpy as np
import cv2 as cv
from cv_bridge import CvBridge
bridge = CvBridge()
class MinimalSubscriber(Node):
def __init__(self):
...
def listener_callback(self, msg):
self.get_logger().info('1. I heard: "%s"' % msg.width)
self.get_logger().info('2. I heard: "%s"' % msg.encoding)
self.cv_image = bridge.imgmsg_to_cv2(msg, 'bgra8')
self.get_logger().info('3. I heard: "%s"' % self.cv_image)
def main(args=None):
...
if __name__ == '__main__':
main()
输出:
[INFO] [1655741136.342080392] [minimal_subscriber]: 1. I heard: "512"
[INFO] [1655741136.342407086] [minimal_subscriber]: 2. I heard: "bgra8"
[INFO] [1655741136.343235582] [minimal_subscriber]: 3. I heard: "[[[180 130 70 255]
[180 130 70 255]
[180 130 70 255]
...
[180 130 70 255]
[180 130 70 255]
[180 130 70 255]]
.....
有人可以帮助我吗?
i am trying to work a image message with OpenCV from ROS2
i tried to convert the ROS2 Image to OpenCV with bridge.imgmsg_to_cv2()
but it did not work.
here is my code:
import rclpy
from rclpy.node import Node
from std_msgs.msg import String
from sensor_msgs.msg import Image
import numpy as np
import cv2 as cv
from cv_bridge import CvBridge
bridge = CvBridge()
class MinimalSubscriber(Node):
def __init__(self):
...
def listener_callback(self, msg):
self.get_logger().info('1. I heard: "%s"' % msg.width)
self.get_logger().info('2. I heard: "%s"' % msg.encoding)
self.cv_image = bridge.imgmsg_to_cv2(msg, 'bgra8')
self.get_logger().info('3. I heard: "%s"' % self.cv_image)
def main(args=None):
...
if __name__ == '__main__':
main()
with the output:
[INFO] [1655741136.342080392] [minimal_subscriber]: 1. I heard: "512"
[INFO] [1655741136.342407086] [minimal_subscriber]: 2. I heard: "bgra8"
[INFO] [1655741136.343235582] [minimal_subscriber]: 3. I heard: "[[[180 130 70 255]
[180 130 70 255]
[180 130 70 255]
...
[180 130 70 255]
[180 130 70 255]
[180 130 70 255]]
.....
Can anyone help me?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您尝试将图像数据记录到只能显示文本的ROS节点控制台。
如果您想实际显示所需的图像:
收听您的主题,并使用RQT或Image_viewer主题显示图像:
rosrun image_view image_view映像:=/您的/主题/路径
You try to log the image data to the ROS Node Console, which can only display text.
If you want to actually display the image you need to:
Listen to your topic and display the Image with either RQT or the image_viewer topic:
rosrun image_view image_view image:=/your/topic/path
ROS2 OPENCV-PYTHON DEMO
ros2 opencv-python demo