Kinect在运行此代码后关闭,并给出

2024-09-28 23:27:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着运行下面的代码

from pykinect import nui
from pykinect.nui import JointId
from pykinect.nui import SkeletonTrackingState
from pykinect.nui import TransformSmoothParameters
with nui.Runtime() as kinect:
    kinect.skeleton_frame_ready+=skeleton_frame_ready
    kinect.skeleton_engine.enable=True
    while True:
        frame= kinect.skeleton_engine.get_next_frame()
        for skeleton in frame.SkeletonData:
            def skeleton_fram_raedy(skeleton_frame):
                for index,data in enumerate(skeleton):
                   if skeleton.eTrackingState==nui.SkeletonTrackingState.TRACKED:
                        head=data.SkeletonPositions[JointId.Head]
                        print head

但Kinect关闭并出现以下错误:

^{pr2}$

我是PyKinect的新手,希望您能给我帮助!谢谢!在


Tags: infromimporttruefordataframeengine
1条回答
网友
1楼 · 发布于 2024-09-28 23:27:02

首先,你的代码中有错误。您正在为kinect.skeleton_frame_ready+=skeleton_frame_ready中的skeleton_frame_ready函数分配一个回调函数,但已将其定义为def skeleton_fram_raedy(skeleton_frame)。在

其次,我认为你的缩进是关闭的,你在while循环中的for循环中有一个函数定义:

while True:
    frame= kinect.skeleton_engine.get_next_frame()
    for skeleton in frame.SkeletonData:
        def skeleton_fram_raedy(skeleton_frame):
        ...

试试这样的方法:

^{pr2}$

第三,错误表明对于kinect相机角度,传递给nui的参数无效。不知道为什么。在初始化nui之后,可以尝试将仰角设置为0:

with nui.Runtime() as kinect:
    kinect.camera.elevation_angle = 0
    kinect.skeleton_frame_ready+=skeleton_frame_ready

相关问题 更多 >