#!/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()