import rospy from sensor_msgs.msg import Image from cv_bridge import CvBridge bridge = CvBridge() def image_callback(msg): cv_image = bridge.imgmsg_to_cv2(msg, desired_encoding="passthrough") # process cv_image rospy.init_node("image_subscriber") rospy.Subscriber("image_topic", Image, image_callback) rospy.spin()
import rospy from sensor_msgs.msg import Image from cv_bridge import CvBridge bridge = CvBridge() def publish_image(cv_image): ros_image = bridge.cv2_to_imgmsg(cv_image, encoding="bgr8") # publish ros_image to a topic using a publisher rospy.init_node("image_publisher") cv_image = cv2.imread("path/to/image.jpg") publish_image(cv_image)In these examples, we use `CvBridge` to convert the ROS image message to an OpenCV image in `image_callback` and an OpenCV image to a ROS image message in `publish_image`. The package/library being used here is `cv_bridge`.