如何在Kinect交互样本中使用ViewModel传递骨骼数据
本文关键字:ViewModel 数据 Kinect 交互 样本 | 更新日期: 2023-09-27 18:06:54
我正在使用最新的SDK(1.7),并希望在其中一个示例中进行一些更改。
我有一个名为kinectattractwinwindow的项目,我想从骨骼,深度或彩色图像的数据,但我无法弄清楚如何在视图和视图模型之间传递这些数据。例如,在这个homecreenviewmodel中,我想用这个homecreenview绘制一个骨架。或者如何使用相同的项目架构显示深度或颜色数据?
如何以适当的方式去做?你有什么建议给我吗?
我已经更新了我的HomeView和ViewModel但我得到一个NullReferenceException在这里:
'this.RGBImage.DisplayImage.Source =
BitmapSource.Create(colorFrame.Width,
colorFrame.Height,
96,
96,
PixelFormats.Bgr32,
null,
pixels,
stride);'
首先要确保你的对象RGBImage
和它的属性DisplayImage
不是null
。我使用WriteableBitmap来显示我的RGB值,因为它创建了一个WriteableBitmap对象,并将像素重写为它,以便性能更好。你可以在这里找到更多关于WriteableBitmap的信息。
你可以这样使用-
WriteableBitmap wBitmap = new WriteableBitmap(colorFrame.Width,
colorFrame.Height,
// Standard DPI
96, 96,
// Current format for the ColorImageFormat
PixelFormats.Bgr32,
// BitmapPalette
null);
为对象写入新像素-
wBitmap.WritePixels(
// Represents the size of our image
new Int32Rect(0, 0, colorFrame.Width, colorFrame.Height),
// Our image data
_pixelData,
// How much bytes are there in a single row?
colorFrame.Width * colorFrame.BytesPerPixel,
// Offset for the buffer, where does he need to start
0);
指定给你的图像控件-
this.RGBImage.DisplayImage.Source = wBitmap;
<<p> 骨骼数据/strong> 你可以做骨骼跟踪完全相同的颜色数据,你Enable()
流,处理数据进来的SkeletonFrameReady
和保存所有的数据在属性在你的ViewModel
。通过这样做,它使您能够对这些属性进行数据绑定。