0

我正在使用freenect2-python从 kinectv2 读取帧。以下是我的代码:

from freenect2 import Device, FrameType
import cv2
import numpy as np

def callback(type_, frame):
    print(f'{type_}, {frame.format}') 
    if type_ is FrameType.Color: # FrameFormat.BGRX
        rgb = frame.to_array().astype(np.uint8)
        cv2.imshow('rgb', rgb[:,:,0:3])

device = Device()
while True:
    device.start(callback)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        device.stop()
        break

颜色帧格式是FrameFormat.BGRX,所以我使用前 3 个通道来显示图像。但它显示一个空白的黑色窗口。

我使用过PIL,但它会为接收到的每一帧打开一个新窗口。有没有办法在同一个窗口中显示框架PIL

4

1 回答 1

0

无法显示任何内容,cv2.imshow因为它不断更新新框架。我后来添加cv2.waitkey(100)cv2.imshow它,它起作用了。

def callback(type_, frame):
    print(f'{type_}, {frame.format}') 
    if type_ is FrameType.Color: # FrameFormat.BGRX
        rgb = frame.to_array().astype(np.uint8)
        cv2.imshow('rgb', rgb[:,:,0:3])
        # added the following line of code
        cv2.imshow(100) 
于 2020-09-23T06:09:14.723 回答