首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyKinect在2.1b1版本的get_next_frame()中帮助/关于TODO

PyKinect在2.1b1版本的get_next_frame()中帮助/关于TODO
EN

Stack Overflow用户
提问于 2014-06-13 17:30:35
回答 1查看 856关注 0票数 1

在windows 7上,我正在使用Kynect + Python (不使用Micosoft可视化工作室)。

有人知道如何在不使用事件循环的情况下从Kinect获取帧吗?

我指的是PyKinect/nui/init.py的这种方法

代码语言:javascript
复制
def get_next_frame(self, milliseconds_to_wait = 0):
# TODO: Allow user to provide a NUI_IMAGE_FRAME ?
return self.runtime._nui.NuiImageStreamGetNextFrame(self._stream, milliseconds_to_wait)

上面的函数是我所需要的,它还没有实现。我需要它来获得按需帧(不使用事件循环)。

我该怎么做?

我正在使用以下环境和版本:

  • Python 2.7.2
  • PyKinect 2.1b1
  • Kinect传感器(来自XBOX v1)
  • Kinect SDK 1.8
  • Windows 7
EN

回答 1

Stack Overflow用户

发布于 2015-05-23 10:11:19

你不能得到RGB或深度或骨架框架“按需”。Kinect数据由事件提供,因此您必须使用它们获取数据。

要解决这个基于事件的系统,唯一可以做的事情是将数据保存在全局变量中,然后在需要时读取该变量。

例如,假设您将名为depth_frame_ready的函数与与深度数据相关的事件关联起来:

代码语言:javascript
复制
from pykinect import nui

with nui.Runtime() as kinect:
    kinect.depth_frame_ready += depth_frame_ready   
    kinect.depth_stream.open(nui.ImageStreamType.Depth, 2, nui.ImageResolution.Resolution320x240, nui.ImageType.Depth)

您可以编写depth_frame_ready函数来保存全局变量上的数据(比如depth_data)。您还需要一个同步机制来读取和写入该变量(一个简单的Lock,以避免同时写入和读取):

代码语言:javascript
复制
import threading
import pygame

DEPTH_WINSIZE = 320,240
tmp_s = pygame.Surface(DEPTH_WINSIZE, 0, 16)

depth_data = None
depth_lock = threading.Lock()

def update_depth_data(new_depth_data):
    global depth_data
    depth_lock.acquire()
    depth_data = new_depth_data
    depth_lock.release()

#based on https://bitbucket.org/snippets/VitoGentile/Eoze
def depth_frame_ready(frame):
    # Copy raw data in a temp surface
    frame.image.copy_bits(tmp_s._pixels_address)

    update_depth_data((pygame.surfarray.pixels2d(tmp_s) >> 3) & 4095)

现在,如果您需要使用深度数据,您可以随时引用全局变量。

代码语言:javascript
复制
global depth_data
if depth_data is not None:
    #read your data

记住使用depth_lock来同步访问,就像在update_depth_data()函数中所做的那样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24210862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档