Body joints angle using Kinect
http://stackoverflow.com/questions/12608734/body-joints-angle-using-kinect-checking-time-interval?rq=1http://stackoverflow.com/questions/15989322/calculate-kinect-skeleton-knee-and-elbow-angles-using-existing-joint-angleshttp://channel9.msdn.com/coding4fun/kinect/Kinect-Earth-Movehttp://social.msdn.microsoft.com/Forums/en-US/8516bab7-c28b-4834-82c9-b3ef911cd1f7/using-kinect-to-calculate-angles-between-human-body-joints
public static double myMethodZY(Joint j1, Joint j2, Joint j3)
{
Vector3 a = new Vector3(0, j1.Position.Y- j2.Position.Y, j1.Position.Z- j2.Position.Z);
Vector3 b = new Vector3(0, j3.Position.Y - j2.Position.Y, j3.Position.Z - j2.Position.Z);
a.Normalize();
b.Normalize();
double dotProduct = Vector3.Dot(a,b);
double angle= Math.Acos(dotProduct);
angle = angle * 180 / Math.PI;
//angle = 180 - angle;
return angle;
}
f you are using Kinect SDK to get the skeletal tracking, the you can use this:
/// <summary>/// Return the angle between 3 Joints/// Regresa el ángulo interno dadas 3 Joints/// </summary>/// <param name="j1"></param>/// <param name="j2"></param>/// <param name="j3"></param>/// <returns></returns>publicstaticdoubleAngleBetweenJoints(Joint j1,Joint j2,Joint j3){doubleAngulo=0;double shrhX = j1.Position.X - j2.Position.X;double shrhY = j1.Position.Y - j2.Position.Y;double shrhZ = j1.Position.Z - j2.Position.Z;double hsl = vectorNorm(shrhX, shrhY, shrhZ);double unrhX = j3.Position.X - j2.Position.X;double unrhY = j3.Position.Y - j2.Position.Y;double unrhZ =j3.Position.Z - j2.Position.Z;double hul = vectorNorm(unrhX, unrhY, unrhZ);double mhshu = shrhX * unrhX + shrhY * unrhY + shrhZ * unrhZ;double x = mhshu /(hul * hsl);if(x !=Double.NaN){if(-1<= x && x <=1){double angleRad =Math.Acos(x);Angulo= angleRad *(180.0/Math.PI);}elseAngulo=0;}elseAngulo=0;returnAngulo;}/// <summary>/// Euclidean norm of 3-component Vector/// </summary>/// <param name="x"></param>/// <param name="y"></param>/// <param name="z"></param>/// <returns></returns>privatestaticdouble vectorNorm(double x,double y,double z){returnMath.Sqrt(Math.Pow(x,2)+Math.Pow(y,2)+Math.Pow(z,2));}
This method use 3 joints to get an angle.
Body joints angle using Kinect的更多相关文章
- Kinect开发资源汇总
Kinect开发资源汇总 转自: http://www.sigvc.org/bbs/forum.php?mod=viewthread&tid=254&highlight=kinec ...
- 孙陪你,了解它的权力--Kinect结合的发展Unity3D游戏应用开发
unity3d正在使用kinect三维模型数据控制(它切成脚本) 博主在做项目时须要利用kinect数据控制三维模型中人物的动作.但不是实时控制,而是利用之前获得的骨骼数据,直接控制.无需再利用脚本打 ...
- Kinect 开发 —— 语音识别(下)
使用定向麦克风进行波束追踪 (Beam Tracking for a Directional Microphone) 可以使用这4个麦克风来模拟定向麦克风产生的效果,这个过程称之为波束追踪(beam ...
- Kinect 开发 —— 姿势识别
姿势和手势通常会混淆,但是他们是两个不同的概念.当一个人摆一个姿势时,他会保持身体的位置和样子一段时间.但是手势包含有动作,例如用户通过手势在触摸屏上,放大图片等操作. 通常,游戏者很容易模仿指定姿势 ...
- 使用HTML5开发Kinect体感游戏
一.简介 我们要做的是怎样一款游戏? 在前不久成都TGC2016展会上,我们开发了一款<火影忍者手游>的体感游戏,主要模拟手游章节<九尾袭来 >,用户化身四代,与九尾进行对决, ...
- Kinect开发随笔①——红外扫描仪(Kinect 数据源)
来源于 MVA 的 快速入门:Kinect for Windows v2 开发 的学习随笔 具体内容为上图所示章节内容 章节内全部代码:GitHub地址点我(链接失效,待补档) <Page &l ...
- 新春测 kinect motor
大年30,祝所有开发伙伴新春快乐. 天天FQ, 叹国内学习成本太高 看到一篇台湾 kinect 电机控制, 赞 using Microsoft.Kinect; using System; using ...
- OpenNI结合Unity3D Kinect进行体感游戏开发(转)
OpenNI结合Unity3D Kinect进行体感游戏开发(转) 楼主# 更多 发布于:2012-07-17 16:42 1. 下载安装Unity3D(目前版本为3.4)2. 下载OpenN ...
- kinect学习笔记(四)——各种数据流
一.kinect开发的一个流程图 1.我们可以知道一个简单的框架就是几部分 (1)选择使用的kinect传感器 KinectSensor.KinectSensors[] (2)打开需要的数据流 _ki ...
随机推荐
- 安全运维之:Linux系统账户和登录安全(转)
三.删减系统登录欢迎信息 系统的一些欢迎信息或版本信息,虽然能给系统管理者带来一定的方便,但是这些信息有时候可能被黑客利用,成为攻击服务器的帮凶,为了保证系统的安全,可以修改或删除某些系统文件,需要修 ...
- 跟我开发NSP(网上查询平台):如何选择开发项目
我想通过一个真实的项目开发的全过程,记录一下开发过程的点点滴滴,记录一下过程中的前思后想.这个全过程包括,如何选择项目.如何分析项目.如何组织项目开发.如何设计开发流程.如何设计软件的总体架构.如何建 ...
- uva10820 send a table (nlogn求1-n欧拉函数值模版
//重点就是求1-n的欧拉函数啦,重点是nlogn求法的版 //大概过程类似于筛选法求素数 #include<cstdio> #include<iostream> #inclu ...
- iOS10隐私设置及相应问题
iOS10新添加了10个隐私设置: NSBluetoothPeripheralUsageDescription="App需要您的同意,才能访问蓝牙"; NSCalendarsUsa ...
- Linux 程序启停脚本
start.sh #!/bin/sh java -jar ./program.jar & echo $! > /var/run/program.pid stop.sh #!/bin/sh ...
- Cooley-Tukey算法 (蝶形算法)
Cooley-Tukey算法差别于其它FFT算法的一个重要事实就是N的因子能够随意选取.这样也就能够使用N=rS的Radix-r算法了.最流行的算法都是以r=2或r=4为基的,最简单的DFT不须要不论 ...
- android分割线
http://blog.csdn.net/dekunchenivan/article/details/6640804 在Android布局文件layout中设置水平分割线: <View ...
- SecureCRT 绝佳配色方案
终端有一个好的配色,不仅能保护自己的眼睛,也能给人一个好心情,本配色方案适合任意一种SSH客户端软件. 设置背景颜色 Options => Sessions options => Term ...
- UVA 1623 Enter The Dragon
题意: 一只龙,在每个不下雨的日子都可以喝干一个湖里的水,当湖满时,再向这个湖里下雨就会溢出.给出下雨的顺序,求龙喝水的序列. 分析: 记录每个湖上次满水的日子,和不下雨的日子.下雨时,查找当前湖上次 ...
- 二、fragment使用
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/8881711 我们都知道,Android上的界面展示都是通过Activity实现的, ...