视频会议频道精装上线,新视角,新视界!
快速搜索:

虚拟触摸屏实现原理

2011年08月23日 08:28   来源:电子元件技术   字体【

3 实现原理

由于摄像头价格便宜,易于获得,于是将系统结构图中的一维图像采集装置由摄像头来替代,由其拍摄的二维图像中的一维图像数据来识别二维显示屏幕上的位置坐标。由于摄像头镜片与虚拟触摸屏垂直,当用户进行手指触摸操作时,手指的运动平面与虚拟触摸屏平行,因此手指在虚拟触摸屏上的运动轨迹一直显示在摄像头所拍摄图像的某条确定直线上。手指在二维显示屏幕平面上的运动,转换为手指点在摄像头拍摄的两幅图像的某条确定直线上的移动。左右摄像头拍摄的两幅图像中直线上的点和二维显示屏平面中的某点存在一一对应的关系。如图3所示,问题即转换为根据两幅图像中手指移动直线上的点的位置来唯一确定用户手指触摸的二维平面上的点坐标。其实质为由两个一维坐标点和一些初始角度值来唯一确定二维平面内的一点坐标。

图3 原理示意图

图3 原理示意图

下面以左边摄像头为例说明转换过程,右边摄像头类似。

假设虚拟触摸屏是如图4所示的矩形区域,以左下角为原点,建立二维坐标平面x、y。左边摄像头c1位于虚拟触摸屏左上角某处,其视角范围应包含整个矩阵区域,将c1与矩形的4个顶点连接构成摄像头拍摄各点的光线方向,以经过左下角和右上角顶点的光线方向为腰,c1为顶点作一个等腰三角形,底为虚线所示的(u1,u2)。当手指在矩形区域内任意一点触摸时,其在摄像头所拍摄的图像中均表现为虚线上的一点,手指在二维虚拟触摸屏上的移动投影到图像上不会超过这条虚线(u1,u2)范围,这是算法关注的兴趣区域,区域以外的部分不需要处理。因此以u1为原点沿着虚线方向建立一维坐标x1,右边摄像头拍摄图像中的一维坐标x2类似设立。

图4 坐标设置示意图

图4 坐标设置示意图

具体实施中,为准确识别手指位置,将虚拟触摸屏划分为n×n 的棋盘格,如图5 所示,由于摄像头离棋盘格距离较远,且每个棋盘格足够小,于是可以假设在棋盘格内,摄像头拍摄的光线是平行的,以简化点位置的转换。

图5 虚拟触摸屏划分为棋盘格及棋盘格内平行投影示意图

图5 虚拟触摸屏划分为棋盘格及棋盘格内平行投影示意图

该设计数据处理装置综合应用的识别算法包括:初始定位算法、手指识别算法、手指定位算法、点击判定算法等。

3.1 初始定位
初始定位时,用户在虚拟触摸屏n×n 的棋盘格的每个顶点上均触摸一次,以确定每个棋盘格在摄像头拍摄图像一维坐标上的位置范围,即建立每个棋盘格编号及其投影的起始位置和终止位置坐标的对照表。例如:(i,x11,x12,x21,x22)记录的是第i个棋盘格在x1坐标轴上的起始位置为x11,终点位置为x12,在x2坐标轴上的起始位置为x21,终点位置为x22。

图6 斜率计算示意图

图6 斜率计算示意图

同时初始设置时可以根据虚拟触摸屏的长宽和每个棋盘格在图像上的投影确定摄像头拍摄的每个棋盘格平行光的斜率。放大图5 中的棋盘格s,得到图6。假设摄像头c1以斜率k平行拍摄由顶点v1、v2、v3、v4组成的棋盘格s,其边(v4,v3)的长度为a,在图像平面上的投影(v3,v5)的长度为a′,其边(v1,v4)的长度为b,在图像平面的投影(v1,v5)的长度为b′。已知虚拟触摸屏的长宽,每个棋盘格的长a 和宽b 分别为其1/n,a′、b′可从拍摄的图像上获得,于是从摄像头拍摄该棋盘格的平行光的斜率k 可由下式获得:

斜率K

将每个棋盘格的平行光的斜率构造一张斜率表,例如:(i,k)表示摄像头拍摄第i 个棋盘格的平行光的斜率。

另外,初始设置时可以确定手指触摸投影到图像上的直线的位置。如果在该直线上识别出手指,则认为用户进行了触摸操作。该直线实际上就是一维图像采集装置需要采集的一维数据。虽然使用二维图像采集装置摄像头来拍摄二维图像,但只使用其中的一维图像数据,即这条直线上的图像数据。

本文导航
[快捷]ST-7600C
[快捷]ST-7600C
价格:面议
[丰信达]FII8000
[丰信达]FII8000
价格:面议
[亿普]92A
[亿普]92A
价格:22800元
返回首页      发给朋友
aopen
NEC 2012巡展
产品关注排行