上一篇文章简单说了一些关于Kinect彩色图像和深度图像的处理。直接处理彩色数据流和深度数据流来写一些应用是比较困难的,所以微软在SDK中已经封装好了骨骼识别模块。虽说是骨骼识别,其实识别出来的是关节,骨骼可以当作两关节的连线。通过该模块,我们可以轻易获取关于人体各个关节的3D位置及其坐标,藉此可以轻松开发出一些需要体感识别的应用。
其实骨骼识别更加简单,通过微软的SDK,我们仅仅要做的就是调用。微软这么做的好处就是开发者可以减少花费在底层、图像处理等方面的时间,专注于自己的应用逻辑,快速开发出有趣或实用的应用。
为了学习骨骼识别,我写了一个仅获取头部位置的一个Demo。为了标记出识别出的头的位置,需要在该坐标位置画点什么,在这里我用了一张滑稽。上一篇显示骨骼图像的colorImage是Image控件,它本身也可以绘图,但效率略低。所以本篇利用Canvas控件。没错,和HTML5中的Canvas画布控件是类似的,我们可以在该画布上绘制彩色图像和滑稽。在窗体上加入画布控件后,为画布加上Image和Ellipse子控件。至于为什么用Ellipse,因为滑稽是圆的……修改过后的代码如下。
<Canvas HorizontalAlignment="Left" Height="480" VerticalAlignment="Top" Width="640">
<Image x:Name="colorImage" HorizontalAlignment="Left" Height="480" VerticalAlignment="Top