一种红外触摸屏多点识别方法及***
技术领域
本发明涉及一种红外触摸屏多点识别方法及***,尤其涉及一种基于密度聚类的红外多点识别方法及***。
背景技术
随着触摸技术的发展,触摸屏作为一种简单方便的人机交互设备得到广泛应用。目前,触摸屏的种类主要包括电阻式触摸屏、电容式触摸屏、表面声波触摸屏、光学触摸屏和红外触摸屏等。其中,红外触摸屏是利用X、Y方向上密布的红外线矩阵来检测并定位用户的触摸操作。红外触摸屏在显示器的前面安装一个电路板外框,电路板在屏幕四边排布红外发射管和红外接收管,一一对应形成横竖交叉的红外线矩阵。用户在触摸屏幕时,手指等触摸物会挡住经过该位置的横竖两条红外线,因而可以判断出触摸点在屏幕上的位置。由于红外触摸屏具有不受电流、电压和静电干扰,适宜恶劣的环境条件等优点,因此红外触摸屏的应用范围较广。
红外触摸屏上触摸点的识别方法经历了从识别一点到识别两点,再到识别更多点的发展历程。多点(超过两点)识别必然会成为红外触摸屏的发展趋势,因为多点触摸不仅可以显示出更炫丽的显示效果,而且可以实现更多的触摸功能。
红外触摸屏的两点识别方法目前已基本成熟,识别过程中的关键步骤是去除鬼点,所述鬼点是指在红外触摸屏上识别出的非真实触摸点。去除鬼点可以采用逻辑判断方法,例如,根据两个(或更多)逻辑屏中,各个对应准触摸点集之间的距离关系,直接筛选真实的触摸点。其理论基础是:真实点在各个逻辑屏的扫描结果中距离偏差小,而鬼点偏差较大。这种去除鬼点方法简单易实现,计算量小,去鬼点能力强。但是,当触摸点多于两点时,不同逻辑屏上特定触摸点的对应关系不易确定,因为当不同逻辑屏上点数相同时,容易排序,但是点数不同时,如边角处某一逻辑屏上点丢失,则较难排序对齐,而且点数自动判定较难。在点数增加时,由于排序不成功而导致的错误识别发生几率也迅速增加。因此,这种方法不适合于红外触摸屏上超过两点的多点识别。
目前市场上已经有部分厂家推出了具有多点(10点)识别功能的红外触摸屏,但是在效果上存在诸多弊端。例如,鬼点多、精度低,而且要求触摸物的面积较大。
发明内容
针对现有技术中存在的缺陷,本发明所要解决的技术问题是提供一种能够提高精度的红外触摸屏多点识别方法及***。
为解决上述技术问题,本发明采用的技术方案如下:
一种红外触摸屏多点识别方法,包括以下步骤:
采集在一次识别过程中的光路数据;
生成与所述红外触摸屏尺寸成预设比例的图像;
建立所述图像的像素与所述红外触摸屏上的光路相关联的属性;
根据所述像素与所述光路相关联的属性以及所述光路数据提取触摸点信息。
如上所述的红外触摸屏多点识别方法,所述建立所述图像的像素与所述光路相关联的属性具体为:
根据所述预设比例和所述光路的走向确定经过每一个像素的光路;
记录经过每一个像素的光路的数量以及经过该像素的光路的位置或序号。
如上所述的红外触摸屏多点识别方法,所述提取触摸点信息的具体步骤可以为:
根据所述像素与所述光路之间相关联的属性以及所述光路数据查找目标点;
设定密度阈值,依次遍历每一个目标点,按照聚类条件对目标点进行聚类,得到至少一个聚类集合;
计算各个聚类集合内目标点的中心坐标和目标点所覆盖的面积,将所述中心坐标作为触摸点的坐标,所述目标点所覆盖的面积作为触摸点的面积。
如上所述的红外触摸屏多点识别方法,所述提取触摸点信息的具体步骤也可以为:
根据所述像素与所述光路之间相关联的属性以及所述光路数据查找目标点;
设定密度阈值,依次遍历每一个目标点,按照聚类条件对目标点进行聚类,得到至少一个聚类集合;
设定面积阈值,依次判断每一个聚类集合所覆盖的面积是否大于所述面积阈值,如果大于,则将该聚类集合作为一个触摸点,否则,舍弃该聚类集合,判断下一个聚类集合,直到判断完所有聚类集合为止;
计算没被舍弃的各个聚类集合内目标点的中心坐标和目标点所覆盖的面积,将所述中心坐标作为触摸点的坐标,所述目标点所覆盖的面积作为触摸点的面积。
如上所述的红外触摸屏多点识别方法,所述查找目标点的方法可以为:
①遍历一个未遍历过的像素;
②遍历一个经过当前像素的未遍历过的光路;
③判断当前光路是否被遮挡,若是,则与当前像素相关联的光路的数量减1,并进入步骤④;否则,直接进入步骤④;
④判断是否遍历完经过当前像素的所有光路,若是,则进入步骤⑤;否则,转至步骤②;
⑤判断与当前像素相关联的光路的数量是否变为0,若是,则将该像素标记为一个目标点,进入步骤⑥;否则,直接进入步骤⑥;
⑥判断所有像素是否处理完毕,若是,则结束;否则,转至步骤①。
如上所述的红外触摸屏多点识别方法,所述查找目标点的方法也可以为:
①根据所述光路数据,遍历每一个被遮挡的光路,将与每一个被遮挡的光路所经过的像素相关联的光路数量减1;
②再次遍历被遮挡的光路经过的一个像素,判断经过该像素的光路的数量是否变为0,若是,则将该像素标记为一个目标点,进入步骤③;否则,直接进入步骤③;
③判断是否处理完被遮挡的光路经过的所有像素,若是,则结束,否则,则转至步骤②。
如上所述的红外触摸屏多点识别方法,所述对目标点进行聚类的方法如下:
①遍历一个未遍历过的目标点;
②判断当前目标点的邻域内的目标点密度是否大于设定的密度阈值,若是,则将该目标点作为一个聚类集合中的一个元素,进入步骤③;否则,舍弃该目标点,该聚类集合完毕,进入步骤③;
③判断目标点是否遍历完毕,若是,则结束;否则,转至步骤①。
如上所述的红外触摸屏多点识别方法,所述方法还包括
根据前一时刻的触摸点的位置与当前时刻触摸点的位置之间的距离跟踪触摸点运动的步骤。
一种红外触摸屏多点识别方法,包括以下步骤:
采集在一次识别过程中的光路数据;
生成与所述红外触摸屏尺寸成预设比例的具有二维矩阵排列性质的数据结构;
建立所述数据结构的数据元素与所述红外触摸屏上的光路相关联的属性;
根据所述数据元素与所述光路相关联的属性以及所述光路数据提取触摸点信息。
如上所述的红外触摸屏多点识别方法,所述数据结构为二维数组,所述数据元素为数组元素。
如上所述的红外触摸屏多点识别方法,所述建立所述数据元素与所述光路相关联的属性具体为:
根据所述预设比例和所述光路的走向确定经过每一个数据元素的光路;
记录经过每一个数据元素的光路的数量以及经过该数据元素的光路的位置或序号。
如上所述的红外触摸屏多点识别方法,所述提取触摸点信息的具体步骤可以为:
根据所述数据元素与所述光路之间相关联的属性以及所述光路数据查找目标点;
设定密度阈值,依次遍历每一个目标点,按照聚类条件对目标点进行聚类,得到至少一个聚类集合;
计算各个聚类集合内目标点的中心坐标和目标点所覆盖的面积,将所述中心坐标作为触摸点的坐标,所述目标点所覆盖的面积作为触摸点的面积。
如上所述的红外触摸屏多点识别方法,所述提取触摸点信息的具体步骤也可以为:
根据所述数据元素与所述光路之间相关联的属性以及所述光路数据查找目标点;
设定密度阈值,依次遍历每一个目标点,按照聚类条件对目标点进行聚类,得到至少一个聚类集合;
设定面积阈值,依次判断每一个聚类集合所覆盖的面积是否大于所述面积阈值,如果大于,则将该聚类集合作为一个触摸点,否则,舍弃该聚类集合,判断下一个聚类集合,直到判断完所有聚类集合为止;
计算没有被舍弃的各个聚类集合内目标点的中心坐标和目标点所覆盖的面积,将所述中心坐标作为触摸点的坐标,所述目标点所覆盖的面积作为触摸点的面积。
如上所述的红外触摸屏多点识别方法,所述查找目标点的方法可以为:
①遍历一个未遍历过的数据元素;
②遍历一个经过当前数据元素的未遍历过的光路;
③判断当前光路是否被遮挡,若是,则与当前数据元素相关联的光路的数量减1,并进入步骤④;否则,直接进入步骤④;
④判断是否遍历完经过当前数据元素的所有光路,若是,则进入步骤⑤;否则,转至步骤②;
⑤判断与当前数据元素相关联的光路的数量是否变为0,若是,则将该数据元素标记为一个目标点,进入步骤⑥;否则,直接进入步骤⑥;
⑥判断所有数据元素是否处理完毕,若是,则结束;否则,转至步骤①。
如上所述的红外触摸屏多点识别方法,所述查找目标点的方法也可以为:
①根据所述光路数据,遍历每一个被遮挡的光路,将与每一个被遮挡的光路所经过的数据元素相关联的光路数量减1;
②再次遍历被遮挡的光路经过的一个数据元素,判断经过该数据元素的光路的数量是否变为0,若是,则将该数据元素标记为一个目标点,进入步骤③;否则,直接进入步骤③;
③判断是否处理完被遮挡的光路经过的所有数据元素,若是,则结束,否则,则转至步骤②。
如上所述的红外触摸屏多点识别方法,所述对目标点进行聚类的方法如下:
①遍历一个未遍历过的目标点;
②判断当前目标点的邻域内的目标点密度是否大于设定的密度阈值,若是,则将该目标点作为一个聚类集合中的一个元素,进入步骤③;否则,舍弃该目标点,该聚类集合完毕,进入步骤③;
③判断目标点是否遍历完毕,若是,则结束;否则,转至步骤①。
如上所述的红外触摸屏多点识别方法,所述方法还包括
根据前一时刻的触摸点的位置与当前时刻触摸点的位置之间的距离跟踪触摸点运动的步骤。
一种红外触摸屏的多点识别***,包括:
用于采集在一次识别过程中的光路数据的数据采集装置;
用于生成与所述红外触摸屏尺寸成预设比例的图像的图像生成装置;
用于建立所述图像的像素与所述红外触摸屏上的光路相关联的属性的属性建立装置;
用于根据所述像素与所述光路相关联的属性以及所述光路数据提取触摸点信息的触摸点信息提取装置。
如上所述的红外触摸屏多点识别***,所述属性建立装置包括:
用于根据所述预设比例和所述光路的走向确定经过每一个像素的光路的光路确定单元;
用于记录经过每一个像素的光路的数量以及经过该像素的光路的位置或序号属性记录单元。
如上所述的红外触摸屏多点识别***,所述触摸点信息提取装置包括:
用于根据所述像素与所述光路之间相关联的属性以及所述光路数据查找目标点的目标点查找单元;
用于按照聚类条件对目标点进行聚类的聚类单元,所述聚类单元设定密度阈值,依次遍历每一个目标点,按照聚类条件对目标点进行聚类,得到至少一个聚类集合;
用于计算触摸点的坐标及触摸点的面积的触摸点计算单元,所述触摸点计算单元计算各个聚类集合内目标点的中心坐标和目标点所覆盖的面积,将所述中心坐标作为触摸点的坐标,所述目标点所覆盖的面积作为触摸点的面积。
如上所述的红外触摸屏多点识别***,所述触摸点信息提取装置包括:
用于根据所述像素与所述光路之间相关联的属性以及所述光路数据查找目标点的目标点查找单元;
用于按照聚类条件对目标点进行聚类的聚类单元;
用于依次判断每一个聚类集合所覆盖的面积是否大于所述面积阈值的面积判断单元,所述面积判断单元设定面积阈值,依次判断每一个聚类集合所覆盖的面积是否大于所述面积阈值的面积判断单元,如果大于,则将该聚类集合作为一个触摸点,否则,舍弃该聚类集合,判断下一个聚类集合,直到判断完所有聚类集合为止;
用于计算触摸点的坐标及触摸点的面积的触摸点计算单元,所述触摸点计算单元计算没有被舍弃的各个聚类集合内目标点的中心坐标和目标点所覆盖的面积,将所述中心坐标作为触摸点的坐标,所述目标点所覆盖的面积作为触摸点的面积。
如上所述的红外触摸屏多点识别***,所述***还包括根据用于根据前一时刻的触摸点的位置与当前时刻触摸点的位置之间的距离跟踪触摸点运动的运动跟踪装置。
一种红外触摸屏的多点识别***,包括
用于采集在一次识别过程中的光路数据的数据采集装置;
用于生成与所述红外触摸屏尺寸成预设比例的具有二维矩阵排列性质的数据结构的数据结构生成装置;
用于建立所述数据结构的数据元素与所述红外触摸屏上的光路相关联的属性的属性建立装置;
用于根据所述数据元素与所述光路相关联的属性以及所述光路数据提取触摸点信息的触摸点信息提取装置。
如上所述的红外触摸屏多点识别***,所述属性建立装置包括:
用于根据所述预设比例和所述光路的走向确定经过每一个数据元素的光路的光路确定单元;
用于记录经过每一个数据元素的光路的数量以及经过该数据元素的光路的位置或序号属性记录单元。
如上所述的红外触摸屏多点识别***,所述触摸点信息提取装置包括:
用于根据所述数据元素与所述光路之间相关联的属性以及所述光路数据查找目标点的目标点查找单元;
用于按照聚类条件对目标点进行聚类的聚类单元,所述聚类单元设定密度阈值,依次遍历每一个目标点,按照聚类条件对目标点进行聚类,得到至少一个聚类集合;
用于计算触摸点的坐标及触摸点的面积的触摸点计算单元,所述触摸点计算单元计算各个聚类集合内目标点的中心坐标和目标点所覆盖的面积,将所述中心坐标作为触摸点的坐标,所述目标点所覆盖的面积作为触摸点的面积。
如上所述的红外触摸屏多点识别***,所述触摸点信息提取装置包括:
用于根据所述数据元素与所述光路之间相关联的属性以及所述光路数据查找目标点的目标点查找单元;
用于按照聚类条件对目标点进行聚类的聚类单元;
用于依次判断每一个聚类集合所覆盖的面积是否大于所述面积阈值的面积判断单元,所述面积判断单元设定面积阈值,依次判断每一个聚类集合所覆盖的面积是否大于所述面积阈值的面积判断单元,如果大于,则将该聚类集合作为一个触摸点,否则,舍弃该聚类集合,判断下一个聚类集合,直到判断完所有聚类集合为止;
用于计算触摸点的坐标及触摸点的面积的触摸点计算单元,所述触摸点计算单元计算没有被舍弃的各个聚类集合内目标点的中心坐标和目标点所覆盖的面积,将所述中心坐标作为触摸点的坐标,所述目标点所覆盖的面积作为触摸点的面积。
如上所述的红外触摸屏多点识别***,所述***还包括用于根据前一时刻的触摸点的位置与当前时刻触摸点的位置之间的距离跟踪触摸点运动的运动跟踪装置。
本发明提供了一种基于密度聚类的红外触摸屏多点识别方法和***,通过建立图像的像素/数据结构的数据元素与光路之间的关联,通过光路数据,改变与图像的像素/数据结构的数据元素相关联的光路的数量,当与某一个图像的像素/数据结构的数据元素相关联的光路数量变为零时,将该图像的像素/数据结构的数据元素标记为目标点,在根据标记的目标点的密度,设定密度阈值,将目标点聚类,聚为一类的目标点即为一个触摸点,将没有聚类的目标点设置为背景,这种从图像像素或数组元素的数量级上判断目标点,能够有效去除鬼点及噪声点,识别精度高,适合于任意多个触摸点的识别。
附图说明
图1是实施例1中红外触摸屏的多点识别***的结构框图;
图2是实施例1中红外触摸屏的多点识别方法的流程图;
图3是实施例1中属性建立装置建立图像的像素与所述红外触摸屏上的光路相关联的属性的方法的流程图;
图4是实施例1中一个像素与经过该像素的光路之间相关联的属性的一种方式;
图5是实施例1中触摸点信息提取装置提取触摸点信息的方法的流程图;
图6是实施例1中目标点查找单元查找目标点的方法的流程图;
图7是实施例1中目标点查找单元查找出的目标点在图像上的分布情况的示意图;
图8是实施例1中聚类单元对目标点进行聚类的方法的流程图;
图9是实施例2中目标点查找单元查找目标点的方法的流程图;
图10是实施例3中触摸点信息提取装置的结构框图;
图11是实施例3中触摸点信息提取装置提取触摸点信息的方法的流程图;
图12是实施例4中红外触摸屏的多点识别***的结构框图。
具体实施方式
下面结合实施例和附图对本发明进行清楚完整地描述。
实施例1
本实施例提供一种红外触摸屏的多点识别***及多点识别方法,如图1所示,该多点识别***包括数据采集装置1、图像生成装置2、属性建立装置3、触摸点信息提取装置4和运动跟踪装置5,其中属性建立装置3包括光路确定单元31和属性记录单元32;触摸点信息提取装置4包括目标点查找单元41、聚类单元42、触摸点计算单元44。
数据采集装置1用于采集在一次识别过程中的光路数据。
图像生成装置2用于生成与所述红外触摸屏尺寸成预设比例的图像。
属性建立装置3用于建立所述图像的像素与所述红外触摸屏上的光路相关联的属性。其中光路确定单元31用于根据所述预设比例和光路的走向确定经过每一个像素的光路;属性记录单元32用于记录经过每一个像素的光路的数量以及经过该像素的光路的位置或序号。
触摸点信息提取装置4用于根据所述像素与所述红外触摸屏上的光路相关联的属性以及所述光路数据提取触摸点信息。其中目标点查找单元41用于根据像素与光路之间相关联的属性以及光路数据查找目标点;聚类单元42用于按照聚类条件对目标点进行聚类,所述聚类单元设定密度阈值,依次遍历每一个目标点,按照聚类条件对目标点进行聚类,得到至少一个聚类集合;触摸点计算单元44用于将每一个聚类集合都作为一个触摸点并计算触摸点的坐标及触摸点的面积;触摸点计算单元44可以计算各个聚类集合内目标点的中心坐标和目标点所覆盖的面积,将中心坐标作为触摸点的坐标,目标点所覆盖的面积作为触摸点的面积。
运动跟踪装置5用于根据前一时刻的触摸点的位置与当前时刻触摸点的位置之间的距离跟踪触摸点运动。
如图2所示,为本实施例所述的***识别多个触摸点的方法的流程图,该方法包括以下步骤:
201、数据采集装置1采集在一次识别过程中的光路数据。
该光路数据包含经过扫描后采集到的红外发射元件和红外接收元件之间遮挡与不遮挡的光路,如遮挡数据可以用1表示,没被遮挡的数据可以用0表示,那么这些光路数据就是“0”和“1”的一系列组合。
202、图像生成装置2生成与所述红外触摸屏尺寸成预设比例的图像,也即生成一幅与红外触摸屏尺寸成一定比例的图像,图像大小和红外触摸屏的比例优选为1∶1,该图像可以是一幅背景为单一颜色的图像,优选地图像的背景颜色为黑色。
203、属性建立装置3用于建立所述图像上的像素与所述红外触摸屏上的光路相关联的属性。
即记录每一个像素,并将经过当前像素的光路作为该像素的属性记录下来,将像素与光路相关联,一个像素可以对应多条光路。如图3,具体建立像素与光路相关联的属性的方法包括如下步骤:
2031、光路确定单元31根据预设比例和光路的走向确定经过每一个像素的光路。
经过每个像素的光路是根据光路的走向确定的,并不一定是实际穿过该像素的光路,因为有些光路可能会由于触摸物的遮挡而不能穿过该像素,只要光路的走向经过该像素即可,所以所述的光路应该包括红外发射元件和红外接收元件之间扫描的所有光路,既包括被触摸物遮挡的光路,也包括没被触摸物遮挡的光路。
2032、属性记录单元32记录经过每一个像素的光路的数量以及经过该像素的光路的位置或序号。
同样,经过每一个像素的光路包括被遮挡的和没有被遮挡的光路,通过记录经过每一个像素的光路的数量以及光路的位置或序号建立像素和光路之间的关联,例如,对于像素(50,50),如果有3条光路经过该像素,这3条光路的序号分别为:第8条、第10条、第12条,那么该像素的属性可以记为图4所示的形式,当然也可以记为其他形式。
204、触摸点提取装置根据所述图像上的像素与所述红外触摸屏上的光路相关联的属性以及所述光路数据提取触摸点信息。
如图5所示,提取触摸点信息的方法可以包括以下步骤:
2041、目标点查找单元41根据所述像素与所述光路之间相关联的属性以及所述光路数据查找目标点。
该目标点查找单元41根据在一次识别过程中的光路数据的遮挡情况,改变像素与光路之间相关联的属性,优选地,改变与像素相关联的光路的数量,当与像素相关联的光路的数量满足一定条件时,将该像素标记为目标点。
如图6,查找目标点具体可以采用如下方法:
①遍历一个未遍历过的像素,实际上是,依次处理图像上的每一个像素;
②遍历一个经过当前像素的未遍历过的光路。
如果经过当前像素的第一条光路没被遍历过,则遍历第一条光路,否则,遍历第二条,如果第二条也被遍历过,则遍历第三条,依次类推。
③判断当前光路是否被遮挡,若是,则与当前像素相关联的光路的数量减1,并进入步骤④,例如,与当前像素相关联的光路为5条,若果当前一条光路被遮挡,那么将与当前像素相关联的光路数减1,也即与当前像素相关联的光路变为4条;否则,直接进入步骤④,也即如果当前光路没被遮挡,则不做处理,直接进入下一步。
④判断是否遍历完经过当前像素的所有光路,若是,则进入步骤⑤;否则,转至步骤②。
即,如果经过一个像素的所有光路的遮挡情况都判断完毕,则进入下一步,否则,按照同样的方法判断下一个像素。
⑤判断与当前像素相关联的光路的数量是否变为0,若是,则将该像素标记为一个目标点,为了便于区分背景颜色和目标点,可以将目标点的颜色标记为与图像的背景颜色不同的颜色,例如可以标记为白色,进入步骤⑥;否则,直接进入步骤⑥。
⑥判断所有像素是否处理完毕,若是,则结束;否则,转至步骤①。
为了更清楚地说明上述查找目标点的方法,可以对上述方法进行更具体的描述:
遍历第一个像素,依次遍历与该像素相关联的光路,也即遍历经过该像素的光路,例如与该像素相关联的光路数为3,判断第一条光路是否被遮挡,如果被遮挡,则与该像素相关联的光路数减1,即与该像素相关联的光路数变为2;继续判断第二条光路是否被遮挡,如果被遮挡,则与该像素相关联的光路数再减1,即与该像素相关联的光路数变为1;继续判断第三条光路是否被遮挡,如果被遮挡,则与该像素相关联的光路数再减1,即与该像素相关联的光路数变为0,这时,将该像素标记为一个目标点,可以标记为白色,然后处理下一个像素。
如果该像素相关联的3条光路判断完毕后,与该像素相关联的光路数不为0,则用同样的方法继续处理第二像素,第三个像素,......,依次类推,直到处理完所有像素为止。
由于触摸物都有一定的面积,一个触摸物可能覆盖多个像素,因此,标记的目标点基本上都聚集在几个不同的区域内,由于噪声的存在,也会有些孤立的目标点分布再图像上,如图7所示,示出了查找出的目标点在图像上的分布情况的示意图,图中白色的点即为目标点,从图中可以看出,除了少数孤立的目标点外,查找出的目标点分别聚集在不同的小区域内。需要说明的是图6只是示意图,实际的目标点的分布情况可能不同。
2042、聚类单元42按照聚类条件对目标点进行聚类,从而得到至少一个聚类集合,该聚类条件优选为目标点的邻域内的密度是否大于设定的阈值,也即设定一个密度阈值,通过目标点的邻域内的目标点密度与密度阈值的比较进行聚类,得到至少一个聚类集合。
如图8,具体聚类方法如下:
①遍历一个未遍历过的目标点,也即如果第一次遍历的是第一个目标点,那么第二次遍历除第一次遍历的目标点之外的其他目标点,每次遍历的目标点都不重复。
②判断当前遍历的目标点的邻域内的目标点密度是否大于预先设定的密度阈值,若是,则将该目标点作为一个聚类集合中的一个元素,进入步骤③;否则,舍弃该目标点,该聚类集合完毕,进入步骤③。
③判断目标点是否遍历完毕,若是,则结束;否则,转至步骤①。
对上述目标点的邻域不做具体限定,可以根据实际情况来确定,可以为当前目标点的4邻域、8邻域、16邻域等,也可以为以该目标点为圆心的一个圆,半径可以为2个或者3个像素,还可以为以该目标点为中心的正方形或者矩形,其边长也根据实际需要来定。
上述所述的聚类集合完毕是指该聚类集合建立完毕,也即不再往该聚类集合中添加新元素,如果后面步骤中还有满足邻域内的目标点密度大于设定的密度阈值的目标点,则将该目标点放入另一个聚类集合。
为了更清楚的说明本实施例的聚类方法,下面做更具体的描述:
首先遍历第一个目标点,设定一个密度阈值,判断该目标点是否满足聚类条件,如果满足,则将该目标点作为第一个聚类集合C1中的一个元素;
继续判断第二个目标点,如果该目标点还满足聚类条件,则将该目标点作为C1中的第二个元素,然后判断第3个、第4个、......、第n个目标点,n为正整数,直到遍历到一个不满足聚类集合的目标点,则舍弃该目标点;
继续遍历下一个没被遍历过的目标点,如果不满足聚类条件,则继续遍历,如果遍历到一个目标点满足聚类条件,则将该目标点作为第二个聚类集合中的第一个元素,继续遍历,建立第二个聚类集合,当再次遍历到一个不满足聚类集合的目标点时,第二个聚类集合结束;
继续遍历,查找第三个聚类集合中的元素,......,直到遍历完所有的目标点。
实际上,每一个聚类集合都是连续满足聚类条件的至少一个目标点的集合,不满足聚类条件的目标点是两个聚类集合的分界点,例如,假设一个共查找到50个目标点,如果前10个都满足聚类条件,则这10个目标点为一个聚类集合中的元素,第11个、12个目标点都不满足聚类条件,第13至25个目标点满足,则第13至25个目标点为第二个聚类集合中的元素,第26个不满足,第27至第50个目标点满足,则第27至第50个目标点为第三个聚类集合中的元素。
需要说明的是,上述聚类集合可以只有一个,这时对应的是单点触摸,只有一个触摸点。
2043、触摸点计算单元44将每一个所述聚类集合都作为一个触摸点,并计算触摸点的坐标及触摸点的面积。
触摸点计算单元44计算各个聚类集合内目标点的中心坐标和目标点所覆盖的面积,将各个聚类集合的中心坐标作为各个触摸点的坐标,将目标点所覆盖的面积作为触摸点的面积,其中中心坐标可以为一个聚类集合中目标点的平均坐标。
205、运动跟踪装置5根据前一时刻的触摸点的位置与当前时刻触摸点的位置之间的距离跟踪触摸点运动。
如果前一时刻触摸点的位置与当前时刻触摸点的位置之间的距离小于一定的阈值,则这两个位置为同一个触摸点不同时刻的轨迹,通过这种方法可以跟踪触摸点的运动。
假设在连续两次识别过程中,第一次识别出5个触摸点,分别为T1、T2、T3、T4、T5,第二次也识别5个触摸点,分别为T1′、T2′、T3′、T4′、T5′。分别计算T1′与T1、T2、T3、T4、T5之间的距离,将与T1′距离最近的点与T1′作为一个运动轨迹上的两个点,即这两点处在一个运动轨迹上,属于同一个触摸物在不同时刻的两个不同位置。采用同样的方式判断T2′、T3′、T4′、T5′。
本实施例提供一种红外触摸屏的多点识别***,该***通过密度聚类的方法处理像素与光路之间相关联的属性,从像素的数量级上识别目标点,然后通过对目标点进行聚类来识别触摸点,可以提高触摸识别的精度。
实施例2
在实施例1中,步骤2041中目标点查找单元41查找目标点的方法是依次遍历每一个像素,根据与该像素相关联的光路的遮挡情况来判断当前像素是否为目标点,实际上,经过触摸点的光路都是被遮挡的,所以为了快速识别出触摸点,可以只判断被遮挡的光路通过的像素,其他像素不需要判断,如图9,具体查找目标点的方法如下:
①根据所述光路数据,遍历每一个被遮挡的光路,将与每一个被遮挡的光路所经过的像素相关联的光路数量减1。
遍历第一条被遮挡的光路,如果该光路经过m个像素,其中m为正整数,将与该m个像素相关联的光路的数量减1,按照这样的方法,处理所有被遮挡的光路及这些被遮挡的光路所经过的像素,将这些光路所经过的像素的光路数量减1。
②再次遍历被遮挡的光路经过的像素,判断经过当前像素的光路的数量是否变为0,若是,则将该像素标记为一个目标点,为了便于区分背景颜色和目标点,将目标点的颜色标记为与背景颜色不同的颜色,例如可以标记为白色,进入步骤③;否则,直接进入步骤③;
经过步骤①的处理后,与被遮挡的光路所经过的像素相关联的光路的数量已经发生变化,然后遍历步骤①中处理过的像素,也即遍历被遮挡的光路所经过的像素,如果与当前像素相关联的光路数量变为0,也即经过该像素的光路数变为0,则将该像素标记为目标点,然后进入步骤③,否则,直接进入步骤③。
实际上,如果当前像素为目标点,则经过该像素的光路应该都被遮挡。
③判断是否处理完被遮挡的光路经过的所有像素,若是,则结束,否则,则转至步骤②。
实施例3
在实施例1和实施例2中,触摸点信息提取装置4在提取触摸点信息时都是通过对识别出的目标点进行聚类,得到若干个聚类集合,将每一个聚类集合作为一个触摸点,在实际应用过程中,即使是根据密度聚类得到一系列聚类集合,这些聚类集合也不一定全是触摸点,可能由于实际触摸点的遮挡,有些面积较小的聚类集合是由于实际触摸点的遮挡产生的,为了进一步减少误判的几率,如图10所示,触摸点信息提取装置4还可以包括一个面积判断单元43,用于依次判断每一个聚类集合所覆盖的面积是否大于设定的面积阈值,该面积判断单元设定面积阈值,依次判断每一个聚类集合所覆盖的面积是否大于所述面积阈值的面积判断单元,如果大于,则将该聚类集合作为一个触摸点,否则,舍弃该聚类集合,判断下一个聚类集合,直到判断完所有聚类集合为止。
如图11,相应地,触摸点信息提取装置4根据图像上的像素与红外触摸屏上的光路相关联的属性以及所述光路数据提取触摸点信息用如下方法代替:
2041’、目标点查找单元41根据所述像素与所述红外触摸屏上的光路之间相关联的属性以及所述光路数据查找目标点,具体目标点的查找方法可以与实施例1相同。
2042’、聚类单元42设定密度阈值,依次遍历每一个目标点,按照聚类条件对目标点进行聚类,得到至少一个聚类集合,具体聚类的方法与实施例1相同。
2043’、面积判断单元43设定一个面积阈值,依次判断每一个聚类集合所覆盖的面积是否大于设定的面积阈值,如果大于,则将该聚类集合作为一个触摸点,否则,舍弃该聚类集合,判断下一个聚类集合,直到判断完所有聚类集合为止。
通过设定一个面积阈值,将每一个聚类集合中的目标点所覆盖的面积与面积阈值进行比较,如果聚类集合中目标点所覆盖的面积小于设定的面积阈值,也即如果聚类集合中的目标点满足聚类条件,但是该聚类集合的面积很小,这样的聚类集合不能作为一个触摸点,这可能是由于真实触摸点的相互遮挡造成的鬼点,应该舍弃,这样可以减少鬼点。
2044’、触摸点计算单元44计算没有被舍弃的各个聚类集合内目标点的中心坐标和目标点所覆盖的面积,将该中心坐标作为触摸点的坐标,该目标点所覆盖的面积作为触摸点的面积。
本实施例通过设置一个聚类集合的面积阈值,将覆盖面积较小的聚类集合作为鬼点去除,进一步提高了触摸精度。
实施例4
本实施例基于实施例1,在实施例1中,红外触摸屏多点识别***执行多点识别的方法时需要生成与红外触摸屏尺寸成比例的图像,然后对图像中的像素进行操作,涉及到对图像像素的数值计算、对图像的卷积等操作,这些操作一般比较费时,作为对实施例1和实施例2的进一步改进,本实施例提供另一种红外触摸屏多点识别***,如图12所示,该多点识别***包括数据采集装置1’、二维数组生成装置2’、属性建立装置3’、触摸点信息提取装置4’和运动跟踪装置5’,其中属性建立装置3’包括光路确定单元31’和属性记录单元32’;触摸点信息提取装置4’包括目标点查找单元41’、聚类单元42’、触摸点计算单元44’。
数据采集装置1’用于采集在一次识别过程中的光路数据。
二维数组生成装置2’用于生成与所述红外触摸屏尺寸成预设比例的二维数组。
属性建立装置3’用于建立所述二维数组的数组元素与所述红外触摸屏上的光路相关联的属性。其中光路确定单元31’用于根据所述预设比例和光路的走向确定经过每一个数组元素的光路;属性记录单元32’用于记录经过每一个数组元素的光路的数量以及经过该数组元素的光路的位置或序号。
触摸点信息提取装置4’用于根据所述数组元素与所述红外触摸屏上的光路相关联的属性以及所述光路数据提取触摸点信息。其中目标点查找单元41’用于根据所述数组元素与所述红外触摸屏上的光路之间相关联的属性以及所述光路数据查找目标点;聚类单元42’用于按照聚类条件对目标点进行聚类;触摸点计算单元44’用于将每一个聚类集合都作为一个触摸点并计算触摸点的坐标及触摸点的面积,触摸点计算单元44’计算各个聚类集合内目标点的中心坐标和目标点所覆盖的面积,将所述中心坐标作为触摸点的坐标,所述目标点所覆盖的面积面积作为触摸点的面积。
运动跟踪装置5’用于根据前一时刻的触摸点的位置与当前时刻触摸点的位置之间的距离跟踪触摸点运动。
本实施例提供的多点识别***执行识别多个触摸点的方法与实施例1、实施例2或实施例3的方法相同,只是将其中的图像生成装置2替换为二维数组生成装置2’,将所有对像素的处理都改为对数组元素的处理,也即将实施例1、实施例2或实施例3中的像素统一都替换为数组元素,具体包括以下步骤:
数据采集装置1’采集在一次识别过程中的光路数据;
二维数组生成装置2’生成与所述红外触摸屏尺寸成预设比例的二维数组。
属性建立装置3’用于建立所述二维数组的数组元素与所述红外触摸屏上的光路相关联的属性。
触摸点信息提取装置4’用于根据所述数组元素与所述红外触摸屏上的光路相关联的属性以及所述光路数据提取触摸点信息。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围,例如,实施例4中的二维数组也可以其他具有二维矩阵排列性质的数据结构,如二维向量。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。