2017-06-01 5 views
1

私は次のコードを実行しようとしているを与え、のKinectは、このコードを実行した後にシャットダウンして、エラー

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のがシャットダウンし、次のエラー与える:私は

Traceback (most recent call last): 
    File "C:\Users\sayyed javed ahmed\Desktop\Humaira\Practice Codes-Python\skeletonnew.py", line 5, in <module> 
    with nui.Runtime() as kinect: 
    File "C:\Python27\lib\site-packages\pykinect\nui\__init__.py", line 126, in __init__ 
    self.camera = Camera(self) 
    File "C:\Python27\lib\site-packages\pykinect\nui\__init__.py", line 352, in __init__ 
    self.elevation_angle 
    File "C:\Python27\lib\site-packages\pykinect\nui\__init__.py", line 359, in get_elevation_angle 
    return self.runtime._nui.NuiCameraElevationGetAngle() 
    File "C:\Python27\lib\site-packages\pykinect\nui\_interop.py", line 200, in NuiCameraElevationGetAngle 
    _NuiInstance._NuiCameraElevationGetAngle(self, ctypes.byref(res)) 
    File "_ctypes/callproc.c", line 950, in GetResult 
WindowsError: [Error -2147024883] The data is invalid 

をPyKinectに新しいので、どんな助けもありがとう!ありがとう!

答えて

0

まず、コードに誤字があります。 skeleton_frame_readyにコールバックを割り当てようとしていますが、kinect.skeleton_frame_ready+=skeleton_frame_readyに機能しますが、def skeleton_fram_raedy(skeleton_frame)と定義しています。

第二に、私はあなたのインデントがオフになっている、あなたはwhileループ内のループのための関数定義を持っていると思う:

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

このような何か試してみてください:

from pykinect import nui 
from pykinect.nui import JointId 
from pykinect.nui import SkeletonTrackingState 
from pykinect.nui import TransformSmoothParameters 

def skeleton_frame_ready(skeleton_frame): 
    for skeleton in frame.SkeletonData: 
     if skeleton.eTrackingState==nui.SkeletonTrackingState.TRACKED: 
      for index,data in enumerate(skeleton): 
       head=data.SkeletonPositions[JointId.Head] 
       print head 

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() 

第三に、エラーをkinectカメラの角度に対して無効な引数がnuiに渡されたことを示します。それがなぜであるかわからない。 nuiを初期化した直後に仰角を0に設定してみてください:

with nui.Runtime() as kinect: 
    kinect.camera.elevation_angle = 0 
    kinect.skeleton_frame_ready+=skeleton_frame_ready 
関連する問題