def qr_detection(data): cv_image = bridge.imgmsg_to_cv2(data, 'bgr8') barcodes = pyzbar.decode(cv_image) if barcodes: qr_data = barcodes[0].data.decode('utf-8') return qr_data <> qr_sub = rospy.Subscriber('main_camera/image_raw', Image, qr_detection, queue_size=1) rospy.sleep(2) qr_sub.unregister()