Search code examples
c#visual-studio-2010kinectmsdnkinect-sdk

MapFromSkeletonPoint obsolete in Kinect


I ran into an issue with the Kinect SDK because some code I want to use is utilizing outdated classes. I am building it out as a x86 program in VS2010 in Windows7. The current Kinect SDK is at version 1.7.

The file I am working with can be found here: a link

This is the code I am working with specifically to fix the errors:

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

The obsolete classes it uses are: Microsoft.Kinect.DepthImageFrame.MapFromSkeletonPoint(Microsoft.Kinect.SkeletonPoint) & Microsoft.Kinect.DepthImageFrame.MapToColorImagePoint(int, int, Microsoft.Kinect.ColorImageFormat)

These are the class methods I am supposed to use in the fix, I just don't know how to do that yet:

public DepthImagePoint MapSkeletonPointToDepthPoint (
     SkeletonPoint skeletonPoint,
     DepthImageFormat depthImageFormat
)

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

Here is the error report I get when I build the RobosapianKinect folder:

Warning 1 The field 'Com.Enterprisecoding.RobosapienKinect.MainWindow.kinectStream' is assigned but its value is never used C:\Robosapien\Robosapien-master\RobosapienKinect\MainWindow.xaml.cs 50 24 RobosapienKinect

Warning 2 'Microsoft.Kinect.DepthImageFrame.MapFromSkeletonPoint(Microsoft.Kinect.SkeletonPoint)' is obsolete: 'This method is replaced by Microsoft.Kinect.CoordinateMapper.MapSkeletonPointToDepthPoint' C:\Robosapien\Robosapien-master\RobosapienKinect\Viewers\KinectSkeletonViewer.xaml.cs 172 42 RobosapienKinect

Warning 3 'Microsoft.Kinect.DepthImageFrame.MapToColorImagePoint(int, int, Microsoft.Kinect.ColorImageFormat)' is obsolete: 'This method is replaced by Microsoft.Kinect.CoordinateMapper.MapDepthPointToColorPoint' C:\Robosapien-master\RobosapienKinect\Viewers\KinectSkeletonViewer.xaml.cs 177 50 RobosapienKinect

Warning 4 'Microsoft.Kinect.DepthImageFrame.MapFromSkeletonPoint(Microsoft.Kinect.SkeletonPoint)' is obsolete: 'This method is replaced by Microsoft.Kinect.CoordinateMapper.MapSkeletonPointToDepthPoint' C:\Robosapien-master\RobosapienKinect\Viewers\KinectSkeletonViewer.xaml.cs 172 42 RobosapienKinect

Warning 5 'Microsoft.Kinect.DepthImageFrame.MapToColorImagePoint(int, int, Microsoft.Kinect.ColorImageFormat)' is obsolete: 'This method is replaced by Microsoft.Kinect.CoordinateMapper.MapDepthPointToColorPoint' C:\Robosapien\Robosapien-master\RobosapienKinect\Viewers\KinectSkeletonViewer.xaml.cs 177 50 RobosapienKinect

Warning 6 The field 'Com.Enterprisecoding.RobosapienKinect.MainWindow.kinectStream' is assigned but its value is never used C:\Robosapien\Robosapien-master\RobosapienKinect\MainWindow.xaml.cs 50 24 RobosapienKinect


Solution

  • Obsolete methods replaced. Code clean-up & reformat. You can get latest version from https://github.com/fatihboy/Robosapien