2016-04-11 15 views
0

Ich habe viele Fehler beim Konvertieren eines Codes mit Kinect V1-Klassen in Kinect V2-Klassen getestet. Als this angegeben, gibt es einige Änderungen.
Bisher habe ich es geschafft haben, einige Klassen wie Skeleton in den Körper zu debuggen, aber es gibt einige fehlende Teile mit den Skeleon und AllFramesReadyEventsArgs:Kinect v1 und Kinect v2 Klassen Alternativen

private void KinectAllFramesReady(object sender, AllFramesReadyEventArgs e) 
     { 
      // Have we already been "shut down" by the user of this viewer, 
      // or has the SkeletonStream been disabled since this event was posted? 
      if ((this.Kinect == null) || !((KinectSensor)sender).SkeletonStream.IsEnabled)// Error with Skeleton Stream 
      { 
       return; 
      } 

      bool haveSkeletonData = false; 

      using (BodyFrame skeletonFrame = e.OpenSkeletonFrame()) 
      { 
       if (skeletonFrame != null) 
       { 
        if (this.skeletonCanvases == null) 
        { 
         this.CreateListOfSkeletonCanvases(); 
        } 

        if ((this.skeletonData == null) || (this.skeletonData.Length != skeletonFrame.SkeletonArrayLength))// Error with SkeletonArrayLength 
        { 
         this.skeletonData = new Body[ skeletonFrame.SkeletonArrayLength]; 
        } 

        skeletonFrame.CopySkeletonDataTo(this.skeletonData);// Error with Skeleton Frrame 

        haveSkeletonData = true; 
       } 
      } 

ich noch den Rahmenleser haben, was ist die Kinect V2 Alternative für sie ? ich den folgenden Code haben, die für Kinect V1 ist:

protected override void OnKinectChanged(KinectSensor oldKinectSensor, KinectSensor newKinectSensor) 
     { 
      if (oldKinectSensor != null) 
      { 
       oldKinectSensor.AllFramesReady -= this.KinectAllFramesReady; 
       this.HideAllSkeletons(); 
      } 

      if (newKinectSensor != null && newKinectSensor.Status == KinectStatus.Connected) 
      { 
       newKinectSensor.AllFramesReady += this.KinectAllFramesReady; 
      } 
     } 

Antwort

0

die OnKinectChanged Ereignis zu ersetzen, können Sie die IsAvailableChanged Ereignis auf dem KinectSensor Objekt verwenden.

+0

Könnten Sie mir einen richtigen Code Bitte verwenden? Ich habe es geändert, aber es gibt immer noch einige Fehler von 'AllFrameReady', plus den' KinectStatus' Fehler –

0

Hauptunterschied ist zwischen Skeleton-Klasse in Kinect V1 und Körper Klasse in kinect V2 Aber für die Entwicklung von kinectV2 mit SDK2 Sie MultiSourceFrameReader Klasse