def frameData(): rgb_frames = rospy.Publisher("rgbFrames", Image, queue_size=1) depth_frames = rospy.Publisher("depthFrames", Image, queue_size=1) #ir_frame = rospy.Publisher("irFrames",Image,queue_size=1) rospy.init_node("frameData", anonymous=True) rate = rospy.Rate(100) while not rospy.is_shutdown(): # Set up frame listener frameListener = pyfreenect2.SyncMultiFrameListener( pyfreenect2.Frame.COLOR, pyfreenect2.Frame.IR, pyfreenect2.Frame.DEPTH) kinect.setColorFrameListener(frameListener) kinect.setIrAndDepthFrameListener(frameListener) # Start recording kinect.start() # Print useful info print "Kinect serial: %s" % kinect.serial_number print "Kinect firmware: %s" % kinect.firmware_version # What's a registration? print kinect.ir_camera_params registration = pyfreenect2.Registration(kinect.ir_camera_params, kinect.color_camera_params) #registration = pyfreenect2.Registration(kinect.color_camera_pacdrams, kinect.ir_camera_params) #registration = pyfreenect2.Registration() frames = frameListener.waitForNewFrame() rgbFrame = frames.getFrame(pyfreenect2.Frame.COLOR) #irFrame = frames.getFrame(pyfreenect2.Frame.IR) depthFrame = frames.getFrame(pyfreenect2.Frame.DEPTH) bridge = CvBridge() rgb_frame = rgbFrame.getRGBData() depth_frame = depthFrame.getDepthData() rgbFramesROS = bridge.cv2_to_imgmsg(rgb_frame, encoding="passthrough") depthFramesROS = bridge.cv2_to_imgmsg(depth_frame, encoding="passthrough") rgb_frames.publish(rgbFramesROS) depth_frames.publish(depthFramesROS) rate.sleep()
def initialize_(self): # boostrapping code in pyfreenect2 todo: fix this... import pyfreenect2 self.serial_number = pyfreenect2.getDefaultDeviceSerialNumber() self.device = pyfreenect2.Freenect2Device(self.serial_number) self.frame_listener = pyfreenect2.SyncMultiFrameListener(pyfreenect2.Frame.COLOR, pyfreenect2.Frame.DEPTH) self.device.setColorFrameListener(self.frame_listener) self.device.setIrAndDepthFrameListener(self.frame_listener) success = self.device.start() self.registration = pyfreenect2.Registration(self.device) return success
print(frameListener) kinect.setColorFrameListener(frameListener) kinect.setIrAndDepthFrameListener(frameListener) # Start recording kinect.start() # Print useful info print("Kinect serial: %s" % kinect.serial_number) print("Kinect firmware: %s" % kinect.firmware_version) # What's a registration? print(kinect.ir_camera_params) registration = pyfreenect2.Registration(kinect.ir_camera_params, kinect.color_camera_params) #registration = pyfreenect2.Registration(kinect.color_camera_params, kinect.ir_camera_params) #registration = pyfreenect2.Registration() # Initialize OpenCV stuff cv2.namedWindow("RGB") # cv2.namedWindow("IR") cv2.namedWindow("Depth") # Main loop while not shutdown: frames = frameListener.waitForNewFrame() rgbFrame = frames.getFrame(pyfreenect2.Frame.COLOR) # irFrame = frames.getFrame(pyfreenect2.Frame.IR) depthFrame = frames.getFrame(pyfreenect2.Frame.DEPTH)
def start(self): self.device.start() self.registration = pyfreenect2.Registration(self.device)
frameListener = pyfreenect2.SyncMultiFrameListener(pyfreenect2.Frame.COLOR, pyfreenect2.Frame.IR, pyfreenect2.Frame.DEPTH) print(frameListener) kinect.setColorFrameListener(frameListener) kinect.setIrAndDepthFrameListener(frameListener) # Start recording kinect.start() # Print useful info print("Kinect serial: %s" % kinect.serial_number) print("Kinect firmware: %s" % kinect.firmware_version) registration = pyfreenect2.Registration(kinect) # Initialize OpenCV stuff cv2.namedWindow("RGB") cv2.namedWindow("Depth") # Main loop while not shutdown: frames = frameListener.waitForNewFrame() rgbFrame = frames.getFrame(pyfreenect2.Frame.COLOR) depthFrame = frames.getFrame(pyfreenect2.Frame.DEPTH) (undistorted, registered, big) = registration.apply(rgbFrame=rgbFrame, depthFrame=depthFrame) depth_frame = big.getDepthData() rgb_frame = rgbFrame.getRGBData()