예제 #1
0
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()
예제 #2
0
    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
예제 #3
0
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)
예제 #4
0
 def start(self):
     self.device.start()
     self.registration = pyfreenect2.Registration(self.device)
예제 #5
0
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()