-
-
Save rethink-imcmahon/77a1a4d5506258f3dc1f to your computer and use it in GitHub Desktop.
#! /usr/bin/python | |
# Copyright (c) 2015, Rethink Robotics, Inc. | |
# Using this CvBridge Tutorial for converting | |
# ROS images to OpenCV2 images | |
# http://wiki.ros.org/cv_bridge/Tutorials/ConvertingBetweenROSImagesAndOpenCVImagesPython | |
# Using this OpenCV2 tutorial for saving Images: | |
# http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_gui/py_image_display/py_image_display.html | |
# rospy for the subscriber | |
import rospy | |
# ROS Image message | |
from sensor_msgs.msg import Image | |
# ROS Image message -> OpenCV2 image converter | |
from cv_bridge import CvBridge, CvBridgeError | |
# OpenCV2 for saving an image | |
import cv2 | |
# Instantiate CvBridge | |
bridge = CvBridge() | |
def image_callback(msg): | |
print("Received an image!") | |
try: | |
# Convert your ROS Image message to OpenCV2 | |
cv2_img = bridge.imgmsg_to_cv2(msg, "bgr8") | |
except CvBridgeError, e: | |
print(e) | |
else: | |
# Save your OpenCV2 image as a jpeg | |
cv2.imwrite('camera_image.jpeg', cv2_img) | |
def main(): | |
rospy.init_node('image_listener') | |
# Define your image topic | |
image_topic = "/cameras/left_hand_camera/image" | |
# Set up your subscriber and define its callback | |
rospy.Subscriber(image_topic, Image, image_callback) | |
# Spin until ctrl + c | |
rospy.spin() | |
if __name__ == '__main__': | |
main() |
Hello, I am working on a project having a realsense camera in a gazebo robot model and would like to manipulate it with rospy or roscpp. (The camera should identify the color in the gazebo environment ). Thanks
Hello, I'm sorry, I'm still new using ROS. I wanted to ask where does the file saved?
Hi, Is there a way to republish converted jpeg to a certain topic? Using this program as a real-time converter? Thanks.
should be, you could publish the saved image
Hello, I'm sorry, I'm still new using ROS. I wanted to ask where does the file saved?
Image location in your "Catkin_make" folder that you uing "Catkin_make" command
I need to play back the rosbag at a slower speed to capture all the frames, or some of them will be lost. Is there a more elegant solution?
I need to play back the rosbag at a slower speed to capture all the frames, or some of them will be lost. Is there a more elegant solution?
I think on the ros Wiki, there a Parameter where you can adjust the playback speed.
In ROS you can send a jpeg image as jpeg image. So you have to imread a picture, create an array or matrix and have to send it as sensor_msgs/Image with a publisher. On another node you can subscribe it like shown in this code.
As you can see in the OpenCV documentation
And in the ROS documentation here and here