天天看点

kinect_试衣间(1)

kinect_试衣间(1)

之前在网上看到的kinect-试衣间效果非常酷炫,于是就想尝试一下,虽然知道很难,很难。。。但是学到一点皮毛对于自己还是好的,于是我的大方向确定好了。

由于不熟悉模型,我只能从简单的弄起,目前衣服模型时从网上随便一张衣服照片上用ps扣的,暂时就先用衣服的照片来代替衣服模型吧,看了下效果,人体定位和控制依附于大小还是有问题,这两个问题是第一次尝试产生出来的,现在就说说我第一次做的东西了。

我用的是kinect的多元帧中的骨骼帧和彩色帧,彩色帧用于显示衣服照片穿在身上的效果,骨骼帧用于找到放衣服的控件在屏幕上的点的坐标。

关于怎么显示彩色帧,我就不多说了,前面博客里面有,现在讲解骨骼帧用于确定控件的位置,以及动态的改变空间的位置,目前对于c#高级界面编程我还是有点不熟悉,所以在网上开始搜了搜,用image控件的margin属性来动态的改变控件的位置,通过不断的赋值来动态改变image控件的位置,因为身体的骨骼点在屏幕上是不断的变化的,所以有必要改变image控件的位置,不然image控件就只能在一个默认位置,从而衣服照片也不动。

下面是关键位置的代码,在骨骼帧中,确定身体骨骼点的位置后,将其转化为屏幕坐标,进而将这个点的坐标重新赋给image控件,改变image控件的位置。

if(headpoint.TrackingState==TrackingState.Tracked){
                                        Point headpoint1 = getjointpointscreen(headpoint);
                                        suit = new BitmapImage();
                                        suit.BeginInit();
                                        suit.UriSource = new Uri(@"D:\c++课程\试衣间(1)\试衣间\下载.png",UriKind.RelativeOrAbsolute);
                                        Thickness mov = new Thickness();
                                        mov.Right = headpoint1.X;
                                        mov.Bottom = headpoint1.Y;
                                        newsuit.Margin = mov;
                                        newsuit.Source = suit;
                                        suit.EndInit();
                                    }
           

骨骼帧中我只用头部点的左边来控制image控件的位置,由于是第一次的尝试,我就做的简单点了,我知道要想精确控制image控件必须多用几个点的坐标,所以我的image控件定位有问题,另外还要想想控制image控件的大小问题。

下面是运行效果

kinect_试衣间(1)