直接使用PyKinect的Kinect RGB数据,没有pygame,使用OpenCV进行处理

时间:2017-07-13 02:52:14

标签: python opencv kinect pykinect

我正在使用带有Kinect传感器v1的pygame(在python中使用pycame)。 是否有任何方法可以直接使用传感器中的数据进行opencv处理? (没有pygame)

我尝试使用frame.image.bits,但它给了我一个1d数组。 有什么方法可以将传感器中的帧作为帧图像,这样我就可以使用opencv对其进行处理了吗?

1 个答案:

答案 0 :(得分:0)

from pykinect import nui
import numpy
import cv2

def video_handler_function(frame):

    video = numpy.empty((480,640,4),numpy.uint8)
    frame.image.copy_bits(video.ctypes.data)

    cv2.imshow('KINECT Video Stream', video)


#------------------------------------main------------------------------------
kinect = nui.Runtime()
kinect.video_frame_ready += video_handler_function
kinect.video_stream.open(nui.ImageStreamType.Video, 2,nui.ImageResolution.Resolution640x480,nui.ImageType.Color)

cv2.namedWindow('KINECT Video Stream', cv2.WINDOW_AUTOSIZE)

while True:

    key = cv2.waitKey(1)
    if key == 27: break

kinect.close()
cv2.destroyAllWindows()
#------------------------------------main------------------------------------