#!/usr/bin/env python from __future__ import print_function import roslib roslib.load_manifest('face_recognition_ros') import sys import rospy import cv2 from std_msgs.msg import String from sensor_msgs.msg import Image from cv_bridge import CvBridge, CvBridgeError class image_converter: def __init__(self): imout = rospy.get_param('~image_output', "image_raw") self.image_pub = rospy.Publisher(imout,Image, queue_size=1) imin = rospy.get_param('~image_input', "videofiles/image_raw") self.bridge = CvBridge() self.image_sub = rospy.Subscriber(imin,Image,self.callback) def callback(self,data): #rospy.loginfo_once("reached callback. that means I can read the Subscriber!") try: cv_image = self.bridge.imgmsg_to_cv2(data, "bgr8") print((cv_image.dtype)) except CvBridgeError as e: print(e) (rows,cols,channels) = cv_image.shape if cols > 60 and rows > 60 : cv2.circle(cv_image, (50,50), 10, 255) #cv2.imshow("Image window", cv_image) #cv2.waitKey(3) try: self.image_pub.publish(self.bridge.cv2_to_imgmsg(cv_image, "bgr8")) except CvBridgeError as e: print(e) def main(args): rospy.init_node('image_converter', anonymous=True) ic = image_converter() try: rospy.spin() except KeyboardInterrupt: print("Shutting down") cv2.destroyAllWindows() if __name__ == '__main__': main(sys.argv)