ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version
#!/usr/bin/env python
import sys
import message_filters ### ADD THIS
import rospy
import numpy as np
import math
from std_msgs.msg import String
from sensor_msgs.msg import Image
from cv_bridge import CvBridge, CvBridgeError
import cv2

#------Start of Class
class image_converter:
    def __init__(self):
        self.bridge = CvBridge()

        self.depth = message_filters.Subscriber('/camera/aligned_depth_to_color/image_raw', Image)
        self.color = message_filters.Subscriber('/camera/color/image_raw', Image)

    def callback(self,rgb,depth):
        cv_image_rgb = self.bridge.imgmsg_to_cv2(rgb, "bgr8")
        cv2.imshow("RGB_Sub", cv_image_rgb)
        cv_image_depth = self.bridge.imgmsg_to_cv2(depth, "bgr8")
        cv2.imshow("Depth_Sub", cv_image_depth)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            rospy.signal_shutdown('Quit')
            cv2.destroyAllWindows()

def main():
    img_cvt = image_converter()
    rospy.init_node('image_converter', anonymous=True)
    try:
        ts = message_filters.ApproximateTimeSynchronizer([img_cvt.color,img_cvt.depth],10,0.1)
        ts.registerCallback(img_cvt.callback)
        rospy.spin()
    except KeyboardInterrupt:
        print("Shutting down")

if __name__ == '__main__':
    main()