2013-03-28 3 views
2

사용하려는 일부 코드가 오래된 클래스를 사용하기 때문에 Kinect SDK에서 문제가 발생했습니다. 나는 Windows7에서 VS2010의 x86 프로그램으로 그것을 구축하고 있습니다. 현재 Kinect SDK는 버전 1.7입니다.MapFromSkeletonPoint가 Kinect에서 폐기되었습니다

내가 여기에서 찾을 수 있습니다 함께 일하고 파일 :

 private Point GetPosition2DLocation(DepthImageFrame depthFrame, SkeletonPoint skeletonPoint) 
    { 
     DepthImagePoint depthPoint = depthFrame.MapFromSkeletonPoint(skeletonPoint); 

     switch (ImageType) 
     { 
      case ImageType.Color: 
       ColorImagePoint colorPoint = depthFrame.MapToColorImagePoint(depthPoint.X, depthPoint.Y, this.Kinect.ColorStream.Format); 

       // map back to skeleton.Width & skeleton.Height 
       return new Point(
        (int)(this.RenderSize.Width * colorPoint.X/this.Kinect.ColorStream.FrameWidth), 
        (int)(this.RenderSize.Height * colorPoint.Y/this.Kinect.ColorStream.FrameHeight)); 
      case ImageType.Depth: 
       return new Point(
        (int)(this.RenderSize.Width * depthPoint.X/depthFrame.Width), 
        (int)(this.RenderSize.Height * depthPoint.Y/depthFrame.Height)); 
      default: 
       throw new ArgumentOutOfRangeException("ImageType was a not expected value: " + ImageType.ToString()); 
     } 
    } 

사용되지 않는 클래스 : a link

이 오류를 해결하기 위해 내가 특별히 함께 일하고 코드입니다 사용하는 위치는 다음과 같습니다. Microsoft.Kinect.DepthImageFrame.MapFromSkeletonPoint (Microsoft.Kinect.SkeletonPoint) & Microsoft.Kinect.DepthImageFrame.MapToColorImagePoint (INT, INT, Microsoft.Kinect.ColorImageFormat)

이는 내가 수정에 사용 하죠 클래스 방법은, 그냥 그렇게하는 방법을 모른다 아직 : 나는 RobosapianKinect 폴더를 빌드 할 때

public DepthImagePoint MapSkeletonPointToDepthPoint (
    SkeletonPoint skeletonPoint, 
    DepthImageFormat depthImageFormat 
) 

public ColorImagePoint MapDepthPointToColorPoint (
    DepthImageFormat depthImageFormat, 
    DepthImagePoint depthPoint, 
    ColorImageFormat colorImageFormat 
) 
여기

은 내가 오류 보고서입니다 :

경고 1 필드를 'Com.Enterprisecoding.RobosapienKinect.MainWindow.kine Microsoft.Kinect.DepthImageFrame.MapFromSkeletonPoint (Microsoft.Kinect.SkeletonPoint) ctStream는 '50 MainWindow.xaml.cs를 24 RobosapienKinect \ \ 2 경고

RobosapienKinect

을 Robosapien \ Robosapien \ 마스터를 할당하지만 그 값은 C를 사용하지 않는다 " '쓸모'이 방법 Microsoft.Kinect.CoordinateMapper.MapSkeletonPointToDepthPoint로 대체 'C : \ Robosapien \ Robosapien 마스터 \ RobosapienKinect 시청자 KinectSkeletonViewer.xaml.cs 172 42 RobosapienKinect

3 경고 \ \'를 Microsoft.Kinect. DepthImageFrame.MapToColorImagePoint (int, int, Microsoft.Kinect.ColorImageFormat) '는 더 이상 사용되지 않습니다.'이 메서드는 Microsoft.Kinect.CoordinateMapper.MapDepthPointToColorPoint로 대체되었습니다. 'C : \ Robosapien-master \ RobosapienKinect \ Viewers \ KinectSkeletonViewer.xaml.cs Robosap ienKinect가

경고 4 'Microsoft.Kinect.DepthImageFrame.MapFromSkeletonPoint (Microsoft.Kinect.SkeletonPoint)가'쓸모 : C '이 방법 Microsoft.Kinect.CoordinateMapper.MapSkeletonPointToDepthPoint로 대체'\ Robosapien 마스터 \ RobosapienKinect 현재 \ \ KinectSkeletonViewer.xaml.cs 172 42 RobosapienKinect

경고 5 'Microsoft.Kinect.DepthImageFrame.MapToColorImagePoint은 (INT는, INT Microsoft.Kinect.ColorImageFormat)는'쓸모 '이 방법 Microsoft.Kinect.CoordinateMapper로 대체된다. MapDepthPointToColorPoint 'C : \ Robosapien \ Robosapien-master \ RobosapienKinect \ Viewers \ KinectSkeletonViewer.xaml.cs 177 50 RobosapienKinect

필드 'Com.Enterprisecoding.RobosapienKinect.MainWindow.kinectStream 6'경고는 할당되어 있으나, 그 값 C를 사용하지 않는다 : \를 Robosapien \ Robosapien 마스터 RobosapienKinect \ MainWindow.xaml.cs를 50 24 RobosapienKinect

답변

3

MapToColorImagePointMapFromSkeletonPoint 방법 \ 더 이상 사용되지 않습니다. 사용되지 않는 메소드는 오래되었고 더 이상 사용되지 않습니다. 대신 그들은 같은 것을하는 또 다른 방법으로 대체됩니다.

이 경우 MapToColorImagePointMapDepthPointToColorPoint으로 대체되고 MapFromSkeletonPointMapSkeletonPointToDepthPoint으로 대체됩니다. 이전 방법 대신이 방법을 사용해야합니다. 깊이 지점에 매핑 골격 포인트

:

DepthImagePoint depthPoint = this.Kinect.CoordinateMapper.MapSkeletonPointToDepthPoint(skeletonPoint, this.Kinect.DepthStream.Format); 

컬러 포인트로 매핑 깊이 포인트 : 대체

ColorImagePoint colorPoint = this.Kinect.CoordinateMapper.MapDepthPointToColorPoint (this.Kinect.DepthStream.Format, depthPoint, this.Kinect.ColorStream.Format); 
+0

에서 최신 버전을 얻을 수 있습니다. 오류가 발생하지 않습니다. 나는 여전히 "The field 'Com.Enterprisecoding.RobosapienKinect.MainWindow.kinectStream'이 할당되었지만 그 값은 사용되지 않는다"라는 오류를 반드시 알아야합니다. –

+0

#pragma warning disable을 사용하여 오류를 비활성화했습니다. 소프트웨어에서 완전한 기능을 얻으려고 아직도 노력하고 있습니다. 작동 할 때 알려줍니다. 오류에 대한 더 나은 해결책을 찾으려고 노력할 것입니다. –