【技术实现步骤摘要】
一种基于视频输入的获取隔空手势轨迹的方法
本专利技术属于计算机人机交互界面领域,具体涉及一种基于视频输入的获取隔空手势轨迹的方法。
技术介绍
在像平面上,每帧手势有一个重心位置,当手运动时,各帧手势重心位置形成一个轨迹,该轨迹就是手势轨迹。目前获取手势轨迹主要方法是采用卡尔曼滤波器或粒子滤波器等跟踪器跟踪每帧手势重心位置,进而得到手势轨迹。该方法存在的主要问题是:它们需要逐帧处理,所以速度慢,延迟严重,影响手势轨迹的实用性。
技术实现思路
本专利技术的目的在于解决上述现有技术中存在的难题,提供一种基于视频输入的获取隔空手势轨迹的方法,利用摄像头输入用户手势,获取手势重心位置在像平面上形成的二维轨迹。本专利技术是通过以下技术方案实现的:一种基于视频输入的获取隔空手势轨迹的方法,包括:(1)输入总帧数m,用摄像头捕获n帧图像的数字序列,并且放到n帧摄像头捕获的图像数据pBG_Buffer[n]中;(2)获取对应手势运动轨迹的白点的坐标集合白点数;(3)获取每一帧手势的坐标值X,Y;(4)判断帧数n>=m,当捕获帧数m的值与总帧数相等时,满足n>=m,此时则根据(2)利用B样条画出轨迹,然后转入步骤(5);否则,返回到(1)继续执行,重新捕获n帧图像并累计总帧数;(5)结束;所述步骤(2)是这样实现的:(21)获取n帧中首帧图像的灰度信息,设为Gray1(i)(j);(22)获取其他n-1帧图像的灰度信息,设为Gray(i)(j),并判断fabs(Gray(i)(j)-Gray1(i)(j))<阈值是否成立;(23)如果fabs(Gray(i)(j ...
【技术保护点】
一种基于视频输入的获取隔空手势轨迹的方法,其特征在于:所述方法包括:(1)输入总帧数m,用摄像头捕获n帧图像的数字序列,并且放到n帧摄像头捕获的图像数据pBG_Buffer[n]中;(2)获取对应手势运动轨迹的白点的坐标集合白点数;(3)获取每一帧手势的坐标值X,Y;(4)判断帧数n>=m,如果是,则根据(2)利用B样条画出轨迹,然后转入步骤(5);否则,返回到(1)继续执行;(5)结束。
【技术特征摘要】
1.一种基于视频输入的获取隔空手势轨迹的方法,其特征在于:所述方法包括:(1)输入总帧数m,用摄像头捕获n帧图像的数字序列,并且放到n帧摄像头捕获的图像数据pBG_Buffer[n]中;(2)获取对应手势运动轨迹的白点的坐标集合白点数;(3)获取每一帧手势的坐标值X,Y;(4)判断帧数n>=m,如果是,即捕获帧数m的值与总帧数相等,则根据(2)利用B样条画出轨迹,然后转入步骤(5);否则,返回到(1)继续执行,重新捕获n帧图像并累计总帧数;(5)结束;所述步骤(2)是这样实现的:(21)获取n帧中首帧图像的灰度信息,设为Gray1(i)(j);(22)获取其他n-1帧图像的灰度信息,设为Gray(i)(j),并判断fabs(Gray(i)(j)-Gray1(i)(j))<阈值是否成立;(23)如果fabs(Gray(i)(j)-Gray1(i)(j))<阈值则Gray(i)(j)=0,否则Gray(i)(j)保持不变;(24)ZongGray(i)(j)=ZongGray(i)(j)+Gray(i)(j),ZongGray(i)(j)记录叠加后图像对应的各个像素的灰度值;(25)判断n帧是否执行完毕,如果否,则返回步骤(22),如果是,则判断ZongGray(i)(j)>255是否成立,若是,则ZongGray(i)(j)=255,否则ZongGray(i)(j)=0;(26)根据ZongGray(i)(j)的信息生成灰度图;(27)对所述灰度图进行膨胀;(28)对灰度图进行细化;(29)获取细化后生成白点的坐标X,Y值,并统计细化后的轨迹的白点的坐标X,Y值,并记下这n帧的白点数,然后进行B样条拟合。2.根据权利要求1所述的基于视频输入的获取隔空手势轨迹的方法,其特征在于:所述步骤(26)是这样实现的:(A1)输入图像叠加处理完后的各个像素点的灰度值,定义位图文件头、位图信息头和调色板和位图数据信息;(A2)新建由灰度值对应的灰度图;(A3)依次对位图文件头、位图信息头和调色板进行赋值;(A4)依次判断图像的灰度值,最后置成二值化,即若灰度值是0则为0,否则是255;(A5)将经过(A4)处理后的各个像素点的灰度值写入到(A2)所建的灰度图中。3.根据权利要求2所述的基于视频输入的获取隔空手势轨迹的方法,其特征在于:所述步骤(27)是这样实现的:(B1)输入指向图像序列的指针,宽,高,一行所占的字节数获得图像的首地址和图像的高和宽;(B2)开辟一块内存缓冲区;(B3)定义一个一维数组:intB[9]={1,0,1,0,0,0,1,0,1};(B4)为防越界,不处理最左边、最右边、最上边和最下边四边的像素,从第2行第2列开始,将指向的目标图像的像素的值赋值给目标点像素点,检查这个像素点,利用结构元素数组判断该像素点的前一点、后一点、上一点、下一点这四点中是否有相交点,如果有,则将检查的像素点的灰度值赋值为0,否则保持不变,或者定义不同形状的结构元素来进行膨胀,即检查结构元素中为1所对应的像素点是否与物体相交不为空,如果是,则保留该点,否则置为255;(B5)循环步骤(B4),直到处理完原图的全部像素点;(B6)将经过(B5)处理后的结果暂存在内存缓冲区中;(B7)将结果从内存缓冲区复制到原图的数据区。4.根据权利要求3所述的基于视频输入的获取隔空手势轨迹的方法,其特征在于:所述(28)是这样实现的:(C1)输入指向图像序列的指针pImageBuffer,获取图像的首地址及图像的高和宽、5×5相邻区域像素值S模板;(C2)开辟一块内存缓冲区,并初始化为0;(C3)如果当前像素值小于255则跳过该像素;(C4)如果当前像素为255,则是手势轨迹,则定义一个5×5的结构元素,计算5×5的结构元素中各个位置上的值,为防越界,不处理外围的2行、2列像素,从第3行第3列开始判断,将S模板中心覆盖在待判断的像素上,如果S模板所覆盖的位置下,像素小于255,则为背景,...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。