专利名称:一种摄像头模拟重力感应器的方法
技术领域:
本发明涉及一种摄像头模拟重力感应器的方法。
背景技术:
重力感应器(G-sensor),又名加速度传感器,它能够感知到加速力的变化,加速力就是当物体在加速过程中作用在物体上的力,比如晃动、跌落、上升、下降等各种移动变化都能被重力感应器转化为电信号,然后通过微处理器的计算分析后,就能够完成程序设计好的功能。比如手机能根据使用者的甩动方向,前后切换歌曲,放进衣袋的时候也能够计算出使用者的前进步伐。重力感应器的应用越来越广泛,但是因其成本较高,限制了它在一些低端产品如手机、MP3中的推广使用;而且,摄像头模拟重力感应器,必须基于图像进行匹配,而目前多采用基于图像像素灰度值进行匹配,或者对图像先进行预处理,之后再提取图像特征值进行匹配,前者需要处理的信息量大,计算复杂,速度慢,后者无法适应场景不断变化的情况。
发明内容
本发明要解决的技术问题在于克服上述现有技术存在的不足,提供一种摄像头模拟重力感应器的方法,使具备摄像头的产品同时也具备重力感应器的功能,丰富了产品应用;采用了基于图像压缩的快速匹配方法,提高了摄像头模拟重力感应器的精度和速度,降低了功耗。为解决上述技术问题,本发明提供一种摄像头模拟重力感应器的方法,其特征在于,包括以下步骤一摄像头捕获图像;压缩所捕获图像形成一压缩子图,在压缩子图中查找YUV数据中Y分量的SAD最小的匹配块,并记录在压缩子图中的坐标位置,依据获取的坐标位置,确定所捕获图像中对应的区域;在所述区域中查找SAD最小的匹配区域,并记录相对于前一帧图像匹配区域的相对位移;重复以上步骤获取当前帧前η帧图像的位移数据;根据获取的位移数据进行相应动作的判断。本发明的有益技术效果在于由于采用了以上方案,可在具备摄像头的产品中实现重力感应器的功能;而且,在摄像头所捕获的每帧图像进行遍历匹配的过程中,采用了基于图像压缩的快速匹配方法,提高了摄像头模拟重力感应器的精度和速度,降低了功耗。
图1为本发明摄像头模拟重力感应器方法的架构图。图2为本发明中重力感应器模拟模块的结构图。
图3为本发明中数据采集模块的结构图。图4为本发明中数据处理模块的结构图。图5为本发明中动作判断模块的结构图。图6为本发明摄像头模拟重力感应器方法的流程图。
具体实施例方式下面通过具体的实施方式并结合附图对本发明作进一步详细地描述。本实施例通过手机摄像头模拟重力感应器,经压缩摄像头所捕获的图像,计算压缩后每帧图像YUV数据中Y分量SAD值最小的匹配块起始坐标位置,在未压缩原图像中对应该坐标位置相应的区域再次查找SAD值最小的匹配区域,记录该匹配区域相对于前一帧图像匹配区域的相对位移,依此建立手机左右甩动的数学模型,做出相应的动作判断,触发手机MP3歌曲的前后切换。请参阅图1,本发明使用摄像头模拟重力感应器的手机包括摄像头、微处理器以及多媒体播放模块。一重力感应器模拟模块通过微处理器来执行。请同时参阅图2至图5,重力感应器模拟模块包括数据采集模块、数据处理模块以及动作判断模块。数据采集模块用于在摄像头开启后捕获图像。数据处理模块压缩所捕获图像形成一压缩子图,在压缩子图中查找YUV数据中Y分量的SAD(Sum of Absolute Differences,绝对误差和)最小的匹配块,并记录在压缩子图中的坐标位置;所述数据处理模块依据获取的坐标位置,确定所捕获图像中对应的区域;所述数据处理模块在所述区域中查找SAD最小的匹配区域,并记录相对于前一帧图像匹配区域的相对位移。动作判断模块根据获取的位移数据进行相应动作的判断。所述动作判断模块根据获取的位移数据形成数组,建立左甩动作和右甩动作的判定标准。所述动作判断模块判断为左甩动作,则触发切换至前一首歌曲;所述动作判断模块判断为右甩动作,则触发切换至后一首歌曲。所述动作判断模块与一多媒体播放模块相连接,所述多媒体播放模块根据所述动作判断模块的触发来切换播放歌曲。请参阅图6,根据上述构思,本实施例通过摄像头模拟重力感应器,实现左右甩动手机切换MP3歌曲的流程如图6所示,其步骤描述如下1)步骤101,开启摄像头;2)步骤102,捕获图像,图像大小为QCIF(176*144),以下图像大小单位均为像素;3)步骤103,将步骤102中所捕获的图像压缩为原图像1/16大小04*36),步骤 102中原图像16 0*4)个像素点的Y分量平均值,对应于压缩后图像1个像素点的Y分量值;4)步骤104,在步骤103中压缩后图像的子图像(44*36)中采用完全匹配方法,找到其YUV数据中Y分量的SAD最小的匹配块,并记录其在压缩后图像中的左上角起始坐标位置;5)步骤105,根据步骤104中已经找到的在压缩后图像中匹配块的左上角起始坐标位置,确定原图像(176*144)中所对应的(4*4)区域;6)步骤106,在原图像中对应的0*4)区域中,查找SAD最小的匹配区域,并保存该匹配区域相对于前一帧图像匹配区域的相对位移;
7)重复步骤102至步骤106,摄像头不断地捕获图像数据,得到当前帧图像相对于前一帧图像的连续位移数据,步骤107,每次取前10帧(含当前帧)图像的位移数据;8)左甩动作的定义先向左移动或带一定角度逆时针旋转,然后基本上按照原有路径返回;随机取手机向左甩动并返回过程中的X轴位移数据所形成的数组数组1 {23,27,28,32, -4,21,27,15,3, -5,4, -7,-16,-16,8, -35,-30}数组2 {11,15,-14,17,20,22,10,-5,3, _6,-12, -11,6, -9,-11,4, -12}通过分析以上2个数组,我们发现,在手机左甩的过程中,位移数据先是出现比较连续的正数,然后是一段比较连续的负数,其中会有少许数据干扰;分别对数组1和数组2每三个连续的位移数据取平均值,形成新的数组如下数组3 {26,29,19,16,15,21,15,4,1,_3,-6,-13,-8,-14,-19}数组4 {4,6,8,20,17,9,3,-3,-5,-10,-6,-5,-5,-5,-6}从数组3和数组4得出左甩规律位移数据由连续的正数逐渐转变为连续的负数;9)右甩动作的定义先向右移动或带一定角度顺时针旋转,然后基本上按照原有路径返回;随机取手机向右甩动并返回过程中的X轴位移数据所形成的数组数组5 {-22,-14,-10,4, -21, -14, -19, -10,6, _4,12,10,22,19,20,3,16}数组6 {-10, -16,-10,7, -20, -15, -12, -22, —14,6,13,19,24,12,-6,8,12}通过分析以上2个数组,我们发现,在手机右甩的过程中,位移数据先是出现比较连续的负数,然后是一段比较连续的正数,其中会有少许数据干扰;分别对数组5和数组6每三个连续的位移数据取平均值,形成新的数组如下数组7 :{-15,-7,-9,-10, -18, -14, _8,_3,5,6,15,17,20,14,13}数组8 {-12,-6,-8,-9,-16, -16, —16,—10,2,13,19,18,10,5,5}从数组7和数组8得出右甩规律位移数据由连续的负数逐渐转变为连续的正数;10)步骤108,确定手机左甩动作和右甩动作的判断标准;每次取当前帧前10帧(含当前帧)图像的位移数据,其中前5帧数据中有4帧以上(含4帧)数据为正数且均值大于某个正的经验值(例如,正的经验值为1),与此同时后5帧数据中有4帧以上(含4帧)数据为负数且均值小于某个负的经验值(例如,负的经验值为-1),若同时满足以上2个条件,则可判定手机在做左甩动作;前5帧数据中有4帧以上(含4帧)数据为负数且均值小于某个负的经验值(例如,负的经验值为-1),与此同时后5帧数据中有4帧以上(含4帧)数据为正数且均值大于某个正的经验值(例如,正的经验值为1),若同时满足以上2个条件,则可判定手机在做右甩动作;11)步骤109,根据所判定的手机左甩或右甩动作,触发MP3歌曲向前或向后切换播放;其中,上述步骤中,采集多组位移数据,建立数学模型如下
a.每次取当前帧前η帧(含当前帧)图像的位移数据,其中η为大于或等于10的正偶数;b.前η/2帧数据中有80%帧以上(含80%帧)数据为正数且均值大于某个正的经验值,与此同时,后η/2帧数据中有80%帧以上(含80%帧)数据为负数且均值小于某个负的经验值,则可以判断物体在做向左的相对运动或者类似的一种稳定运动趋势;c.前η/2帧数据中有80%帧以上(含80%帧)数据为负数且均值小于某个负的经验值,与此同时,后η/2帧数据中有80%帧以上(含80%帧)数据为正数且均值大于某个正的经验值,则可以判断物体在做向右的相对运动或者类似的与上述b中相反的另一种稳定运动趋势;d.根据建立的数学模型,做出相应的动作判断,触发相应的应用。以上所述仅为本发明的较佳可行实施例,并非限制本发明的保护范围,凡运用本发明说明书及附图内容所做出的等效结构变化,均包含在本发明的保护范围内。
权利要求
1.一种摄像头模拟重力感应器的方法,其特征在于,包括以下步骤 一摄像头捕获图像;压缩所捕获图像形成一压缩子图,在压缩子图中查找YUV数据中Y分量的SAD最小的匹配块,并记录在压缩子图中的坐标位置,依据获取的坐标位置,确定所捕获图像中对应的区域;在所述区域中查找SAD最小的匹配区域,并记录相对于前一帧图像匹配区域的相对位移;重复以上步骤获取当前帧前η帧图像的位移数据; 根据获取的位移数据进行相应动作的判断。
2.如权利要求1所述的方法,其特征在于,η为大于或等于10的正偶数。
3.如权利要求1所述的方法,其特征在于,根据获取的位移数据形成数组,建立动作的判定标准。
4.如权利要求3所述的方法,其特征在于,数组前η/2帧数据中有多数帧数据为正数且均值大于某个正的经验值,与此同时,后η/2帧数据中有多数帧数据为负数且均值小于某个负的经验值,则判断在做第一种运动。
5.如权利要求3所述的方法,其特征在于,数组前η/2帧数据中有多数帧数据为负数且均值小于某个负的经验值,与此同时,后η/2帧数据中有多数帧数据为正数且均值大于某个正的经验值,则判断在做与上述第一种运动相对的第二种运动。
6.如权利要求1所述的方法,其特征在于,所述摄像头设置在电子装置上,所述电子装置包括一用以处理位移数据的微处理器。
全文摘要
一种摄像头模拟重力感应器的方法,包括以下步骤一摄像头捕获图像;压缩所捕获图像形成一压缩子图,在压缩子图中查找YUV数据中Y分量的SAD最小的匹配块,并记录在压缩子图中的坐标位置,依据获取的坐标位置,确定所捕获图像中对应的区域;在所述区域中查找SAD最小的匹配区域,并记录相对于前一帧图像匹配区域的相对位移;重复以上步骤获取当前帧前n帧图像的位移数据;根据获取的位移数据进行相应动作的判断。本发明在具备摄像头的产品中实现了重力感应器的功能。
文档编号H04M1/725GK102457674SQ20101052632
公开日2012年5月16日 申请日期2010年10月27日 优先权日2010年10月27日
发明者田欢 申请人:赛龙通信技术(深圳)有限公司