2

使用したいコードの一部が古いクラスを使用しているため、Kinect SDK で問題が発生しました。Windows7のVS2010でx86プログラムとして構築しています。現在の Kinect SDK はバージョン 1.7 です。

私が作業しているファイルはここにあります: リンク

これは、エラーを修正するために特に取り組んでいるコードです。

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

使用されている廃止されたクラスは次のとおりです

これらは、修正で使用することになっているクラス メソッドです。その方法はまだわかりません。

public DepthImagePoint MapSkeletonPointToDepthPoint (
     SkeletonPoint skeletonPoint,
     DepthImageFormat depthImageFormat
)

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

RobosapianKinect フォルダーをビルドしたときに表示されるエラー レポートは次のとおりです。

警告 1 フィールド 'Com.Enterprisecoding.RobosapienKinect.MainWindow.kinectStream' が割り当てられていますが、その値は使用されません C:\Robosapien\Robosapien-master\RobosapienKinect\MainWindow.xaml.cs 50 24 RobosapienKinect

警告 2 'Microsoft.Kinect.DepthImageFrame.MapFromSkeletonPoint(Microsoft.Kinect.SkeletonPoint)' は廃止されました: 'このメソッドは Microsoft.Kinect.CoordinateMapper.MapSkeletonPointToDepthPoint に置き換えられました' C:\Robosapien\Robosapien-master\RobosapienKinect\Viewers\KinectSkeletonViewer. xaml.cs 172 42 ロボサピエンキネクト

警告 3 'Microsoft.Kinect.DepthImageFrame.MapToColorImagePoint(int, int, Microsoft.Kinect.ColorImageFormat)' は廃止されました: 'このメソッドは Microsoft.Kinect.CoordinateMapper.MapDepthPointToColorPoint に置き換えられました' C:\Robosapien-master\RobosapienKinect\Viewers\ KinectSkeletonViewer.xaml.cs 177 50 RobosapienKinect

警告 4 'Microsoft.Kinect.DepthImageFrame.MapFromSkeletonPoint(Microsoft.Kinect.SkeletonPoint)' は廃止されました: 'このメソッドは Microsoft.Kinect.CoordinateMapper.MapSkeletonPointToDepthPoint に置き換えられました' C:\Robosapien-master\RobosapienKinect\Viewers\KinectSkeletonViewer.xaml. cs 172 42 ロボサピエンキネクト

警告 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

警告 6 フィールド 'Com.Enterprisecoding.RobosapienKinect.MainWindow.kinectStream' が割り当てられていますが、その値は使用されません C:\Robosapien\Robosapien-master\RobosapienKinect\MainWindow.xaml.cs 50 24 RobosapienKinect

4

2 に答える 2

3

MapToColorImagePointMapFromSkeletonPointメソッドは時代遅れです。廃止されたメソッドは古く、もう使用されていません。代わりに、ほとんど同じことを行う別のメソッドに置き換えられます。

この場合、MapToColorImagePointは に置き換えられMapDepthPointToColorPointMapFromSkeletonPointは に置き換えられMapSkeletonPointToDepthPointます。古い方法ではなく、これらの方法を使用する必要があります。

スケルトン ポイントを深度ポイントにマッピングするには:

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);
于 2013-03-29T07:11:30.533 に答える
1

廃止されたメソッドは置き換えられました。コードのクリーンアップと再フォーマット。https://github.com/fatihboy/Robosapienから最新バージョンを取得できます。

于 2013-04-23T19:45:05.583 に答える