我正在尝试使用 PyKinect2 模块从 Kinect v2 设备获取深度帧。我已按照 here 提供的示例进行操作。我能够看到深度帧,但它们出现在 PyGame 窗口中被截断,尽管帧的大小应为 512x424。
depth_frame
我使用PyKinect2提供的get_last_depth_frame()
方法,并使用以下代码将其绘制在表面上。
def draw_depth_frame(self, frame, target_surface):
target_surface.lock()
address = self._kinect.surface_as_array(target_surface.get_buffer())
ctypes.memmove(address, frame.ctypes.data, frame.size)
del address
target_surface.unlock()
我没有资格发表评论。所以我就写在这里。我认为你需要 3 个 channel 来将内存填充到所需的长度。试试这个
f8=np.uint8(frame.clip(1,4000)/16.)
frame8bit=np.dstack((f8,f8,f8))
然后从frame8bit而不是原始帧中memmove。
我是一名优秀的程序员,十分优秀!