我正在为我的研究项目开发Kinect。之前我曾经工作过,计算了kinect和关节坐标的关节角度。我想计算正在跟踪的身体的质心。 任何想法将不胜感激,代码片段将非常有帮助。 如果没有社区的帮助,我很多都会遇到堆栈溢出问题,因此无法做到这一点。 在此先感谢 请找到我想要包含此质量函数中心的代码。该功能跟踪骨架。使用kinect计算正在跟踪的身体质量中心?
骨架GetFirstSkeleton(AllFramesReadyEventArgs E) { 使用(SkeletonFrame skeletonFrameData = e.OpenSkeletonFrame()){ 如果 (skeletonFrameData == NULL){ 返回 空; }
skeletonFrameData.CopySkeletonDataTo(allSkeletons);
//get the first tracked skeleton
Skeleton first = (from s in allSkeletons
where s.TrackingState == SkeletonTrackingState.Tracked
select s).FirstOrDefault();
return first;
}
我在我的代码,但使用此代码试图它不是已经习惯于,任何一个可以请帮我包括质量代码中心。
oreach(在skeletonFrame.Skeletons SkeletonData数据){
SkeletonFrame allskeleton = e.SkeletonFrame;
// Count passive and active person up to six in the group
int numberOfSkeletonsT = (from s in allskeleton.Skeletons
where s.TrackingState == SkeletonTrackingState.Tracked select s).Count();
int numberOfSkeletonsP = (from s in allskeleton.Skeletons
where s.TrackingState == SkeletonTrackingState.PositionOnly select s).Count();
// Count passive and active person up to six in the group
int totalSkeletons = numberOfSkeletonsP + numberOfSkeletonsT;
//Console.WriteLine("TotalSkeletons = " + totalSkeletons);
// ========================================= =============
如果(data.TrackingState == SkeletonTrackingState.PositionOnly)
{
的foreach(在data.Joints联合关节)
{
if (joint.Position.Z != 0)
{
double centerofmassX = com.Position.X;
double centerofmassY = com.Position.Y;
double centerofmassZ = com.Position.Z;
Console.WriteLine(centerofmassX + centerofmassY + centerofmassZ);
}
}
感谢您的反馈。我可能听起来是这个案子的新手,但我们如何确定每个人脚上的重量,因为kinect只允许我们跟踪,而不是衡量体重。另一个问题是如何将其包含在我的代码中。请帮助我编写Mass中的这个中心代码片段。先谢谢您的帮助。 – user2823510
@ user2823510检查编辑,你仍然必须编写自己的批量代码,但这应该让你开始 –
嘿Outlaw狐猴,谢谢你提供了一个伟大的洞察力,它应该如何工作来计算质量。 – user2823510