Данные Kinect RGB с использованием PyKinect напрямую, без pygame, для обработки с использованием OpenCV

Я использую Pygame с датчиком Kinect v1 (конечно же, в Python). Есть ли способы использовать данные с датчика напрямую для обработки с использованием opencv? (без пигмея)

Я попытался использовать frame.image.bits, но он дает мне 1d массив. Есть ли способ получить кадр от датчика в виде изображения кадра, чтобы я мог использовать opencv для его обработки?

1 ответ

Решение
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------------------------------------
Другие вопросы по тегам