用kinect统计人数,基于微软的skeleton tracking
来源:互联网 发布:vr制作app软件 编辑:程序博客网 时间:2024/05/18 00:42
private void SensorSkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e) { Skeleton[] skeletons = new Skeleton[0]; using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame()) { if (skeletonFrame == null) { textBox1.Text = "0"; //return 0; } if (skeletonFrame != null) { skeletons = new Skeleton[skeletonFrame.SkeletonArrayLength]; skeletonFrame.CopySkeletonDataTo(skeletons); //Kinect only get the position int noTrac = (from s in skeletons where s.TrackingState == SkeletonTrackingState.PositionOnly select s).Count(); //kinect tracked int getTrac = (from s in skeletons where s.TrackingState == SkeletonTrackingState.Tracked select s).Count(); int numberOfSkeletons = noTrac + getTrac; this.textBox1.Text = numberOfSkeletons.ToString();//output the number in textbox } } using (DrawingContext dc = this.drawingGroup.Open()) { // Draw a transparent background to set the render size dc.DrawRectangle(Brushes.Black, null, new Rect(0.0, 0.0, RenderWidth, RenderHeight)); if (skeletons.Length != 0) { foreach (Skeleton skel in skeletons) { RenderClippedEdges(skel, dc); if (skel.TrackingState == SkeletonTrackingState.Tracked) { this.DrawBonesAndJoints(skel, dc); } else if (skel.TrackingState == SkeletonTrackingState.PositionOnly) { dc.DrawEllipse( this.centerPointBrush, null, this.SkeletonPointToScreen(skel.Position), BodyCenterThickness, BodyCenterThickness); } } } // prevent drawing outside of our render area this.drawingGroup.ClipGeometry = new RectangleGeometry(new Rect(0.0, 0.0, RenderWidth, RenderHeight)); } }
在做一个关于kinect的项目,要检测在kinect前的人数。。。我想用kinect骨骼追踪然后把追踪的数目加起来。问题是,kinect追踪到一个骨骼后是持续追踪这个骨骼的动作,而且最多追踪2个。怎么能在在打开kinect的时候就能得出有多少人?有新的人进来后count会直接增加?小弟是新手。求各位帮帮忙。。。用的是C#
我在kinect skeleton 后面加了个代码
private int GetTotalSkeleton(AllFramesReadyEventArgs e)
{
using (SkeletonFrame skeletonFrameData = e.OpenSkeletonFrame())
{
if (skeletonFrameData == null)
{
return 0;
}
skeletonFrameData.CopySkeletonDataTo(allSkeletons);
//Pessoas nao rastreados
int noTrac = (from s in allSkeletons
where s.TrackingState == SkeletonTrackingState.PositionOnly
select s).Count();
//Pessoas com esqueleto
int comEsq = (from s in allSkeletons
where s.TrackingState == SkeletonTrackingState.Tracked
select s).Count();
int numberOfSkeletons = noTrac + comEsq;
return numberOfSkeletons;
}
}
红字说有错误,return那个把void改成int解决了。。。allSkeletons改成totalskeleton可以吗?这个代码可以实现统计人数吗?
- 用kinect统计人数,基于微软的skeleton tracking
- 基于图像的人数统计
- 基于图像的人数统计
- 基于图像的人数统计方法
- 基于数据库的在线人数,日访问量等统计
- JSP基于session,application的在线人数统计
- 全球微软认证人数统计列表
- 统计男同学的人数
- “在场人数”的统计
- 在线人数的统计方法。
- 在线人数的统计方法
- 如何统计在线的人数
- 统计在线人数的思路
- 统计网站的在线人数
- 在线人数的统计方法
- 关于在线人数的统计
- java 在线人数的统计
- 统计在线人数的逻辑
- Android中定时器的3种实现方法
- sql检测表是否存在,列是否存在,判断类型
- 【Android基础】Activity的启动模式(android:launchMode)
- myeclipse激活
- css-行框
- 用kinect统计人数,基于微软的skeleton tracking
- 11.05
- 利用dom4j解析xml文档,自动遍历节点属性
- CSharp和.net的简单介绍
- 父类引用指向子类对象
- EXT
- Servlet开发基础及MVC设计模式
- 求树的“直径”以及所想到的
- svn - 基本命令