一种基于视频输入的获取隔空手势轨迹的方法_2

文档序号:8904937阅读:来源:国知局
r>[0066] (F1)输入帖数n,n帖图像序列,获取n帖中首帖图像的灰度信息,设为GraylW (j);
[0067](哟获取其他n-1帖图像的灰度信息,设为Gray(i) (j),并判断f油s(Gray(i) (j)-Gray1 (i) (j))<阔值是否成立;
[0068]脚)如果f油s(Gray(i) (_j)-Grayl(;〇 (j)) < 阔值,则Gray(i)(_]?) = 0,否则 Gray(i)(j)保持不变;
[0069] (E4)ZongGray(i) (j) =ZongGray(i) (j)+Gray(i) (j),ZongGray(i) (j)记录叠加 图像对应的各个像素的灰度值;
[0070] (顿判断n帖是否执行完毕,如果否,则返回步骤(F2),如果是,则判断 ZongGray(i) (j) > 255 是否成立,若是,则ZongGray(i) (j) = 255,否则ZongGray(i) (j) =0 ;
[0071] (F6)根据ZongGray(i) (j)的信息生成灰度图;
[0072] (F7)对灰度图进行膨胀;
[0073] (F8)对灰度图进行细化;
[0074] (F9)统计细化后的轨迹的最后白点的坐标X,Y值和统计的点数;
[0075] (F10)记录该n帖处理完成的最后一个白点的坐标;X,Y,即获得当前手势坐标。
[0076] 与现有技术相比,本发明的有益效果是;本发明方法速度快,与现有方法相比较, 降低了时延,缓解了轨迹生成的滞后现象。
【附图说明】
[0077] 图1本发明方法的总体步骤框图。
[0078]图 2 本发明方法中的intGes1:ureTrajecto;ry(intn,BYTE^BG_Buffer[n], doublexxin[],doubleyxin[])函数的执行步骤框图的上部分。
[0079]图 3 本发明方法中的intGes1:ureTrajecto;ry(intn,BYTE^BG_Buffer[n], doublexxin[],doubleyxin[])函数的执行步骤框图的下部分。
[0080]图 4 本发明方法中的voidQirrentCoordinates(intn,BYTE^BG_Buffer[])函 数的执行步骤框图的上部分。
[0081]图 5 本发明方法中的voidQirrentCoordinates(intn,BYTE^BG_Buffer[])函 数的执行步骤框图的下部分。
【具体实施方式】
[0082] 下面结合附图对本发明作进一步详细描述:
[0083] 假设程序一共运行了m帖,要再现该m帖的轨迹;而获取每一次轨迹的点的帖数假 设是n帖,其中地6_8证'61'[11]指的是n帖摄像头捕获的图像数据。
[0084] 其中在实现轨迹时设及到两个函数:
[00化]1)GesturelYajectoir(intn,BYTE*pBG_Buffer[n],doublexxin[],double yxin[])该个最终可W获取该n帖图像的拟合后的白点坐标值和白点数,其中xxin□和 yxin□分别保存的是每次手运动后细化的白点的X,Y坐标
[0086] 2)QirrentCoordinates(n,pBG_Buffer[n])实现每一帖图像的手势坐标X,Y值。
[0087] 总流程如图1所示,具体实现步骤如下:
[008引 (1)输入总帖数m,用摄像头捕获n帖图像的数字序列,并且放到地G_Buffer[n] 中;
[0089] (2)调用函数GestureTrajectory(intn,BYTE*地G_Buffer[n],doublexxin[], doubleyxin[])得到对应手势运动轨迹的白点的坐标集合白点数;
[0090] (3)调用函数QirrentCoordinates(n,pBG_Buffer[n])得到每一帖手势的坐标值 X,Y;
[0091] (4)判断帖数n>=m,如果是,则根据似利用B样条画出轨迹,否则,返回到(1) 继续执行。
[0092] 现有方法是从每个手势图像序列中跟踪得到一个点,所有点组成的位置序列形成 手势轨迹;本发明方法是每次处理多个(n个)手势图像序列,把n个手势图像序列叠加为 一个图,再求该叠加图的"中屯、线",该"中屯、线"就是该n帖手势图像的轨迹。
[009引 关于intGes1:ureTrajecto;ry(intn,BYTE*地G_Buffer[n],doublexxin[], doubleyxin[])函数的说明如下;
[0094] 输入;帖数n,n帖的图像序列
[00巧]输出沿个n帖进行叠加处理后的轨迹点的坐标X,Y
[0096] 其中的n是指每次处理手势运动轨迹的帖数
[0097] 地6_81^'6^11]是指向该n帖的图像序列的指针
[009引 xxin□是指保存该n帖轨迹的细化后的白点集的X坐标
[0099] yxin□是指保存该n帖轨迹的细化后的白点集的X坐标
[0100] 该个函数主要实现画轨迹的,它执行的流程图如图2和图3所示,实现的具体步骤 是:
[0101] (1)获取n帖中首帖图像的灰度信息,假设是Grayl(i)(j)
[010引 似获取其他n-1帖图像的灰度信息假设是Gray(i) (j),并判断f油S佑ray(i) (j)-Grayl(i)a)) <阔值是否成立(阔值设置是38)
[0103] (3)如果f油S(此函数表示求数X的绝对值)(Gray(i) (j)-Grayl(i) (j)) <阔值 则Gray(i) (j) = 0,否则Gray(i) (j)保持不变
[0104] (4)ZongGray(i) (j) =ZongGray(i) (j)+Gray(i) (j)
[01化](5)判断n帖是否执行完毕,如果否,则返回步骤(2),如果是,则判断ZongGray(i) (_]?)> 255,若是,则ZongGray(i) (_]?)= 255,否则ZongGray(i) (_]?)= 0 ;
[0106] (6)根据ZongGray(i) (j)的信息,利用Gr巧Valuetolmage (double ZongGray[] [400])生成灰度图;
[0107] (7)利用如3证3]1巧13]1评6]1拍113]1肖炬¥16*口11]13肖68证'61',;[]11讯;[化11,;[]11:116;[曲1:, intb}ftes化;rLine)对灰度图进行膨胀;
[0108] (8)利用lining炬YTE*pImageBuffer)对灰度图进行细化;
[0109] (9)利用intExtractFittin评oint炬YTE*pImageBuffer,inttempx[],int tempy[])实现获取细化后生成白点的坐标X,Y值,并统计细化后的轨迹的白点的坐标X,Y 值并记下该n帖的白点数。
[0110] 其中ZongGray (i) (j)记录叠加后图像对应的各个像素的灰度值。
[0111] 设及到的其它函数如下:
[0112](1) void Gr巧Valuetolmage (double ZongGray[][400])实现了由得到的灰度信 息来更改新建的灰度文件的头信息,最后生成灰度图像。其中ZongGray[][400]保存的是 该n帖图像处理后相叠加的像素的灰度值信息。
[011引输入;图像叠加处理完后的各个像素点的灰度值
[0114] 输出:由像素的灰度值生成对应的灰度图
[0115] 具体实现步骤:
[0116] ①定义位图文件头、位图信息头和调色板和位图数据信息
[0117] ②新建由灰度值对应的灰度图
[0118] ⑨依次给位图文件头、位图信息头和调色板依次赋值
[0119] ④依次判断图像的灰度值,最后置成二值化即若灰度值是0则为0,否则是255
[0120] ⑥最后将数据信息写入到上面新建的灰度图像
[0121] (2)void
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1