资源简介

根据第五章 跌倒检测算法剖析http://blog.csdn.net/baolinq/article/details/52400040,写的跌到检测源码函数,大家可以参考一下,有问题欢迎一起交流学习。本系列其他文章http://blog.csdn.net/baolinq/article/details/52422206

资源截图

代码片段和文件信息

//检测程序
void CBodyBasics::Detection(Joint joints[])
{
static double tin tout;
//double tframe;

//计算每相邻10帧的高度差,从而计算速度,1111222
//大概30帧每秒,那么10帧就是0.33秒,
if (framenumber % 11 == 1) //framenumber是帧序列号,自己定义的
{
tin = static_cast(GetTickCount());
//cout << “tin是“ << tin << endl;
SpineHeightin = joints[JointType_SpineMid].Position.Y;
//cout << “当前帧号为:“ << frmamenumber << endl;
//cout << “当前SpineHeightin的高度为“ << SpineHeightin << “  m“< }
if (!(framenumber % 11))
{
tout = static_cast(GetTickCount());
//cout << frmamenumber << endl;
//cout <<“tout是“<< tout << endl;
//cout << “每10帧计算一次下降的速度“ << endl;
SpineHeightout = joints[JointType_SpineMid].Position.Y;
//cout << “当前帧号为:“ << frmamenumber << endl;
//  cout << “***********************************“ << endl;
//  cout << “当前SpineHeightin的高度为“ << SpineHeightin << “  m“ << endl;
//tframe = (tout - tin) / getTickFrequency();
// cout <ame << endl;
//  cout << getTickFrequency()< //cout << “当前SpineHeightout的高度为“ << SpineHeightout << “  m“ << endl;
//SpineV = (SpineHeightin - SpineHeightout) / tframe;
SpineV = SpineHeightin - SpineHeightout;
//cout << “SpineV是多少??“ << SpineV << endl;
if ((SpineV) > 0.35) //文献中给定的数据是1.35m/s,这个可能要根据实际情况略有调整
{
vDetection = true;
stringstream stream0;
string str str1;
stream0 << SpineV;
stream0 >> str;
str1 = “身体中心向下的速度是: “ + str + “ m/s\r\n“;
//CString cstr =

评论

共有 条评论