我正在尝试使用OpenCV处理来自ROS2的图像消息。
我试图用ROS2将OpenCV图像转换为bridge.imgmsg_to_cv2(),但是它没有工作。这是我的代码:
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]]
.....有谁可以帮我?
发布于 2022-06-20 20:41:01
您尝试将图像数据记录到ROS Node控制台,该控制台只能显示文本。如果要实际显示图像,则需要:
image_message = bridge.cv2_to_imgmsg(cv_image, encoding="passthrough") try:
self.image_pub.publish(image_message)
except CvBridgeError as e:
print(e)rosrun image_view image_view image:=/your/topic/path
https://stackoverflow.com/questions/72690021
复制相似问题