一种摄像头条件下获取远程手势轨迹的方法

文档序号:8527845阅读:498来源:国知局
一种摄像头条件下获取远程手势轨迹的方法
【技术领域】
[0001] 本发明属于计算机人机交互界面领域,具体涉及一种摄像头条件下获取远程手势 轨迹的方法。
【背景技术】
[0002] 在像平面上,每帧手势有一个重心位置,当手运动时,各帧手势重心位置形成一个 轨迹,该轨迹就是手势轨迹。目前获取手势轨迹主要方法是采用卡尔曼滤波器或粒子滤波 器等跟踪器跟踪每帧手势重心位置,进而得到手势轨迹。该方法存在的主要问题是:它们需 要逐帧处理,所以速度慢,延迟严重,影响手势轨迹的实用性。因此,人手在运动过程中,连 续的手势质心点形成手势运动轨迹曲线。现有算法主要是利用跟踪器逐帧跟踪手势质心得 到手势运动轨迹,算法速度慢,时间延迟。

【发明内容】

[0003] 本发明的目的在于解决上述现有技术中存在的难题,提供一种摄像头条件下获取 远程手势轨迹的方法,利用摄像头捕获人手运动图像,获得平滑的手势运动轨迹曲线。
[0004] 本发明是通过以下技术方案实现的:
[0005] 一种摄像头条件下获取远程手势轨迹的方法,包括:
[0006] (1).通过摄像头获得n帧bmp图像,以及图像的宽度、高度、存放数据的指针;
[0007] (2).依次对n帧图像进行处理,获得手势图像的质心坐标;
[0008] (3).输出步骤⑵得到的n帧手势图像的n帧质心坐标,然后将n帧质心坐标经 过三次B样条拟合得到三次B样条拟合函数;
[0009] (5).通过三次B样条拟合函数,画出n帧图像的轨迹曲线。
[0010] 所述步骤(2)是这样实现的:
[0011] (21)获得图像的历史帧数n、n帧图像序列的首地址、图像的宽度和高度;
[0012] (22)对图像进行处理,将手势图像从背景图像中分割出来;
[0013] (23)对分割出的手势图像去噪处理;
[0014] (24)对手势图像进行腐蚀、膨胀形态学处理;
[0015] (25)获得手势图像的质心坐标并将质心坐标存放在数组CentroidCurve[n];
[0016] (26)循环步骤(22)-(26),直到处理完n帧图像序列;
[0017] (27)返回n帧图像的手势轨迹坐标CentroidCurve []。
[0018] 所述步骤(22)是这样实现的:
[0019] (A1)、获得图像的首地址和图像的高度、宽度及每行字节数;
[0020] (A2)、遍历图像上每个像素点,求出像素点的b、g、r分量;
[0021] (A3)、根据手势的肤色模型,判断图像中每个像素的r、g、b分量,若满足r>95&&g > 40&&b > 20&&abs(r-g) > 15&&r > g&&r > b条件,则判断为肤色,将像素点置为手势颜 色,否则判断为非肤色,将像素点置为背景色;
[0022] (A4)循环步骤(A2)到(A3),直到处理完图像的全部像素点。
[0023] 所述步骤(23)采用8邻域去噪处理方法实现去噪处理。
[0024] 所述步骤(23)是这样实现的:
[0025] (B1)获得图像的首地址和图像的高度、宽度及每行字节数;
[0026] (B2)为防越界,不处理最左边、最右边、最上边和最下边四边的像素,从第2彳丁第2 列开始,遍历图像的像素点;
[0027] (B3)求出像素点的b、g、r分量,判断像素点是背景色还是分割的手势颜色,如果 是手势颜色,则计算该像素点的上、下、左、右、左上、左下、右上、右下八个方向的像素点对 应的b、g、r分量;
[0028] (B4)判断八个邻域中,如果有大于或等于4个点是白点,则认为此点是噪声点,并 将该点置为背景色;
[0029] (B5)循环步骤(B3)~(B4),直到处理完原图的全部像素点。
[0030] 所述步骤(24)中的腐蚀处理如下:
[0031] (C1)获得图像的首地址和图像的高度、宽度及每行字节数;
[0032] (C2)开辟一块内存缓冲区;
[0033] (C3)定义一个一维数组B[9]:
[0034] B[9] = {1,0,1,
[0035] 0,0,0,
[0036] 1,0,1}
[0037] (C4)为防越界,不处理最左边、最右边、最上边和最下边四边的像素,从第2彳丁第2 列开始,将指向的目标图像的像素的值赋值给目标点像素点,检查这个像素点,利用结构元 素数组判断该像素点的前一点、后一点、上一点、下一点这四点中是否有背景点,有则将检 查的像素点的灰度值赋值为255,否则保持不变;
[0038] (C5)循环步骤(C4),直到处理完原图的全部像素点;
[0039] (C6)将结果暂存在内存缓冲区中;
[0040] (C7)将结果从内存复制到原图的数据区。
[0041] 所述步骤(24)中的膨胀处理是这样实现的:
[0042]01)获得图像的首地址和图像的高度、宽度及每行字节数;
[0043]02)开辟一块内存缓冲区;
[0044] (D3)定义一个一维数组:
[0045] B[9] = {1,0,1,
[0046] 0,0,0,
[0047] 1,0,1}
[0048] (D4)为防越界,不处理最左边、最右边、最上边和最下边四边的像素,从第2彳丁第2 列开始,将指向的目标图像的像素的值赋值给目标点像素点,检查这个像素点,利用结构元 素数组判断该像素点的前一点、后一点、上一点、下一点这四点中是否有相交点,有则将检 查的像素点的灰度值赋值为〇,否则保持不变;
[0049] (D5)循环步骤(D4),直到处理完原图的全部像素点;
[0050] (D6)将结果暂存在内存缓冲区中;
[0051] (D7)将结果从内存复制到原图的数据区。
[0052] 所述步骤(25)中获得手势图像的质心坐标是这样实现的:
[0053] (E1)获得图像的首地址和图像的高度、宽度及每行字节数;
[0054] (E2)遍历图像,求得所有手势点的x、y值之和并分别统计手势点的个数;
[0055] (E3)将手势点x、y值的和,除以手势点个数得到质心坐标。
[0056] 与现有技术相比,本发明的有益效果是:现有技术主要利用跟踪器逐帧跟踪手势 质心,根据手势质心序列形成手势轨迹。本发明在获得手势质心序列的基础上利用三次B 样条对手势质心序列进行拟合,得到平滑的手势运动轨迹。
【附图说明】
[0057] 图1本发明方法的步骤框图。
【具体实施方式】
[0058] 下面结合附图对本发明作进一步详细描述:
[0059] 如图1所示,本发明方法包括:
[0060] 1.通过摄像头获得n帧bmp图像,及图像的宽度、高度、存放数据的指针。
[0061] 2.对n帧图像依次进行如下处理:
[0062] {
[0063] (1)利用肤色模型(即 r > 95&&g > 40&&b > 20&&abs(r-g) > 15&&r > g&&r > b),提取手势图像(某像素点满足肤色模型,则认为是手势,否则认为是背景),二值化处 理,即将肤色像素点置成一种颜色(如红色),背景像素点置成另一种颜色(如白色),颜色 改变是通过像素点对应的r、g和b分量来进行设置的;
[0064] (2)对提取出的手势图像(手势图像是指从背景提取出的手势,手势区域置成红 色,背景区域置成白色)进行8邻域去噪处理得到去噪处理后的手势图像。
[0065] (3)对所述去噪处理后的手势图像进行腐蚀、膨胀形态学处理。
[
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1