一种抗干扰的触摸点识别方法及装置 【技术领域】
本发明涉及图像处理领域, 特别涉及一种抗干扰的触摸点识别方法及装置。背景技术 现有触摸技术中, 出现了一种通过摄像头定位的多点触摸装置, 通过摄像头拍摄 图像, 进行图像分析, 可以有效快速的识别多个触摸点。
如公开号为 CN200810065714.5 公开了 “多点及物体触摸屏装置及多点触摸的定 位方法” , 通过触摸面板、 红外 LED、 投影软幕、 红外摄像机、 投影仪、 控制器和计算机执行指 令处理器, 在透明触摸面板四周安装红外 LED, 利用收抑内发射原理包络住所有红外光线, 当有物体触摸面板时, 全反射被破坏, 面板后面的红外摄像头捕捉到这一亮点, 进行触摸点 识别, 然后将这个触摸信号送给控制器, 确定触摸点。其中, 触摸点识别是关键, 但是, 用户 进行操作的时候, 通常会将衣袖或者其他身上的物件碰到触摸面板, 这时, 对拍摄图像进行 分析时, 就常常会将这些衣袖或者其他身上的物件也当作是触摸点, 从而会造成误判。因 此, 提出一种抗干扰的触摸点识别方法是十分必要的。
发明内容
本发明的目的在于克服现有技术的缺点与不足, 提供抗干扰的触摸点识别方法及装置。 本发明的目的是通过下述技术方案实现 : 一种抗干扰的触摸点识别方法, 包括以 下步骤 :
S1 启动摄像头, 拍摄触摸图像 ;
S2 对触摸图像进行二值化处理 ;
S3 根据预设的触摸点面积大小范围, 对触摸图像中的非触摸点亮斑进行初步排 除;
S4 通过判断拍摄图像中亮斑与手指椭圆的相似度, 确定最终的触摸点 ;
为更好的实现本发明, 所述步骤 S2 与步骤 S3 之间可以添加步骤 : 对触摸图像进行 去噪处理 ; 具体可以是利用均值滤波器、 自适应维纳滤波器、 中值滤波器、 形态学噪声滤波 中的一种或多种进行去噪处理。
其中, 所述步骤 S2 中的图像二值化处理, 首先要设定一个灰度阈值, 该灰度阈值 可采用如下方法获得, 通过拍摄有手指触摸时的图像, 获取图像中亮斑 ( 即灰度值最高处 ) 的灰度值, 与图像中背景 ( 即灰度值最低处 ) 的灰度值, 灰度阈值选取在这两个灰度值之 间, 优选这两个灰度值的中间值。设定灰度阈值后, 在图像中, 找出灰度值大于灰度阈值的 像素, 并将其灰度值设置为 255 ; 找出灰度值小于或等于灰度阈值的像素, 并将其灰度值设 置为 0。
所述步骤 S3 中预设的触摸点面积大小范围根据手指大小进行设定。
所述步骤 S4 中, 判断拍摄图像中亮斑与手指椭圆的相似度, 可以包括以下两种方
法:
方法一, 1) 将每个连续的亮斑区域作为一个触摸点区域 ; 2) 对每个触摸点区域求取质心 ; 3) 计算从质心到该触摸点区域边界距离, 得出其中最长的距离 L1 和最短的距离D1 ; 4) 代入公式计算 : S1 = π×L1×D1 ;
5) 根据每个触摸点区域包含的像素点数目, 计算每个触摸点区域的面积 S2 ;
6) 求取步骤 4) 中 S1 与步骤 5) 中 S2 的比值, 即 K = S1/S2 ;
7) 判断 K 值是否满足在设定范围内, 若是, 则认为该触摸点区域为触摸点, 若否, 则认为该触摸点区域不是触摸点。
其中, 所述步骤 1) 包括, 对二值化处理后的图像进行边缘提取, 即提取亮斑区的 边缘 ; 建立形态学结构 ( 例如碟形结构 ) ; 通过上述建立的形态学结构对上述提取到的亮斑 区边缘进行闭运算 ; 对闭合边缘进行填充 ; 最后, 对各个亮斑区进行标记, 例如 : 标记为 1、 2、 3……等, 每个亮斑区作为一个触摸点区域。
所述步骤 7) 中的设定范围优选为 : 1.3 到 0.7
方法二,
1) 将每个连续的亮斑区域作为一个触摸点区域 ;
2) 根据每个触摸点区域包含的像素点数目, 计算每个触摸点区域的面积 S3 ;
3) 对每个触摸点区域进行边界提取 ;
4) 统计边界像素点数目, 计算边界周长 L2 ;
5) 代入公式计算圆形度 : C = (L2)2/S3 ;
6) 判断 C 值是否满足在设定范围内, 若是, 则认为该触摸点区域为触摸点, 若否, 则认为该触摸点区域不是触摸点。
其中, 所述步骤 1) 包括, 对二值化处理后的图像进行边缘提取, 即提取亮斑区的 边缘 ; 建立形态学结构 ( 例如碟形结构 ) ; 通过上述建立的形态学结构对上述提取到的亮斑 区边缘进行闭运算 ; 对闭合边缘进行填充 ; 最后, 对各个亮斑区进行标记, 例如 : 标记为 1、 2、 3……等, 每个亮斑区作为一个触摸点区域。
所述步骤 6) 中的设定范围优选为 : 4π 到 4π+3.
上述方法一跟方法二可以只选一种进行判断拍摄图像中亮斑与手指椭圆的相似 度, 也可以两种方法都采用, 即满足两种方法的判断, 才确认为触摸点。
本发本发明的另一目的在于提供一种抗干扰的触摸点识别装置, 包括
图像拍摄单元, 即摄像头, 用于拍摄触摸图像 ;
图像预处理单元, 用于将拍摄图像进行二值化处理、 通过设定触摸点面积大小范 围, 对触摸图像中的非触摸点亮斑进行初步排除, 还可以进一步包括对拍摄图像进行去噪 处理 ;
相似度判断单元, 用于判断拍摄图像中亮斑与手指椭圆的相似度, 确定最终的触 摸点。
本发明相对现有技术, 具有以下优点 :
与现有技术相比, 本发明能有效的识别真正的触摸点, 避免了非触摸点干扰造成 的误判, 如因衣袖或者其他身上的物件碰到触摸面板而造成的误判, 同时本发明还具有运 算简单、 处理速度快等优点。 附图说明
图 1 是一种抗干扰的触摸点识别方法流程示意图 ;
图 2 是本发明相似度判断方法一的流程示意图 ;
图 3 是本发明相似度判断方法二的流程示意图。 具体实施方式
下面结合实施例及附图, 对本发明作进一步地详细说明, 但本发明的实施方式不 限于此。
本发明提供一种抗干扰的触摸点识别装置, 包括
图像拍摄单元, 即摄像头, 用于拍摄触摸图像 ;
图像预处理单元, 用于将拍摄图像进行二值化处理、 通过设定触摸点面积大小范 围, 对触摸图像中的非触摸点亮斑进行初步排除, 还可以进一步包括对拍摄图像进行去噪 处理 ;
相似度判断单元, 用于判断拍摄图像中亮斑与手指椭圆的相似度, 确定最终的触 如图 1 所示, 本发明一种抗干扰的触摸点识别方法, 包括以下步骤 : S1 启动摄像头, 拍摄触摸图像 ; S2 对触摸图像进行二值化处理 ; S3 根据预设的触摸点面积大小范围, 对触摸图像中的非触摸点亮斑进行初步排摸点。
除; S4 通过判断拍摄图像中亮斑与手指椭圆的相似度, 确定最终的触摸点 ;
为更好的实现本发明, 所述步骤 S2 与步骤 S3 之间可以添加步骤 : 对触摸图像进行 去噪处理 ; 具体可以是利用均值滤波器、 自适应维纳滤波器、 中值滤波器、 形态学噪声滤波 中的一种或多种进行去噪处理。
其中, 所述步骤 S2 中的图像二值化处理, 首先要设定一个灰度阈值, 该灰度阈值 可采用如下方法获得, 通过拍摄有手指触摸时的图像, 获取图像中亮斑 ( 即灰度值最高处 ) 的灰度值, 与图像中背景 ( 即灰度值最低处 ) 的灰度值, 灰度阈值选取在这两个灰度值之 间, 优选这两个灰度值的中间值。设定灰度阈值后, 在图像中, 找出灰度值大于灰度阈值的 像素, 并将其灰度值设置为 255 ; 找出灰度值小于或等于灰度阈值的像素, 并将其灰度值设 置为 0。
所述步骤 S3 中预设的触摸点面积大小范围根据手指大小进行设定, 本实施例中, 2 2 预设的触摸点面积大小范围设定为 : 1cm 到 16cm 。
所述步骤 S4 中, 判断拍摄图像中亮斑与手指椭圆的相似度, 可以包括以下两种方 法:
参见图 2 所示, 方法一,
1) 将每个连续的亮斑区域作为一个触摸点区域 ; 2) 对每个触摸点区域求取质心 ; 3) 计算从质心到该触摸点区域边界距离, 得出其中最长的距离 L1 和最短的距离D1 ; 4) 代入公式计算 : S1 = π×L1×D1 ;
5) 根据每个触摸点区域包含的像素点数目, 计算每个触摸点区域的面积 S2 ;
6) 求取步骤 4) 中 S1 与步骤 5) 中 S2 的比值, 即 K = S1/S2 ;
7) 判断 K 值是否满足在设定范围内, 若是, 则认为该触摸点区域为触摸点, 若否, 则认为该触摸点区域不是触摸点。
其中, 步骤 1) 可以通过对二值化处理后的图像进行形态学分析来实现, 本实施例 中具体为直接调用 MATLAB 现有的 edge 函数实现对二值化处理后的图像进行边缘提取, 即 提取亮斑区的边缘 ; 调用 MATLAB 现有的 strel 函数建立形态学结构 ( 本实施例中采用碟形 结构 ) ; 调用 MATLAB 现有的 imclose 函数, 通过上述建立的形态学结构对上述提取到的亮 斑区边缘进行闭运算 ; 调用 MATLAB 现有的 imfill 函数, 对闭合边缘进行填充 ; 最后, 通过 MATLAB 现有的 label 函数对各个亮斑区进行标记, 例如 : 标记为 1、 2、 3……等, 每个亮斑区 作为一个触摸点区域。
所述步骤 2) 对每个触摸点区域求取质心, 可直接调用 MATLAB 现有的 regionprops 函数对步骤 1) 中的各个触摸点区域求取质心。
所述步骤 3), 通过调用 MATLAB 现有的 boundaries 函数得到触摸点区域的边界的 所有像素坐标, 结合步骤 2) 中得到的触摸点区域的质心坐标, 可以求取到质心坐标到触摸 点区域边界的各个像素坐标的距离, 通过比较分析, 能得到其中最长的距离 L1 和最短的距 离 D1。
所述步骤 4) 中, 代入公式计算 : S1 = π×L1×D1, 得到根据图像中得到的距离数 据, 按照椭圆面积公式计算得到的面积大小。
所述步骤 5) 中, 通过直接调用 MATLAB 现有的 Area 描述子, 根据各个触摸点区域 内包含的像素点数目, 求取各个触摸点区域在图像中的实际面积。
所述步骤 6), 求取步骤 4) 中 S1 与步骤 5) 中 S2 的比值, 即 K = S1/S2。
所述步骤 7) 中的设定范围优选为 : 1.3 到 0.7, 判断 K 值是否满足在设定范围内, 若是, 则认为该触摸点区域为触摸点, 若否, 则认为该触摸点区域不是触摸点。
参见图 3 所示, 方法二,
1) 将每个连续的亮斑区域作为一个触摸点区域 ;
2) 根据每个触摸点区域包含的像素点数目, 计算每个触摸点区域的面积 S3 ;
3) 对每个触摸点区域进行边界提取 ;
4) 统计边界像素点数目, 计算边界周长 L2 ;
5) 代入公式计算圆形度 : C = (L2)2/S3 ;
6) 判断 C 值是否满足在设定范围内, 若是, 则认为该触摸点区域为触摸点, 若否, 则认为该触摸点区域不是触摸点。
其中, 步骤 1) 与方法一中的步骤 1) 相同, 步骤 2) 与方法一中的步骤 5) 相同。
所述步骤 3) 可以通过调用 MATLAB 现有的 boundaries 函数得到触摸点区域的边
界的所有像素坐标。 也可以通过自己编写程序, 通过设定结构元素对图像进行腐蚀, 实现边 界的提取。
所述步骤 4) 中, 可以直接统计步骤 3) 中得到的边界中像素点数目得到边界周长 L2。
所述步骤 5), 代入公式计算圆形度 : C = (L2)2/S3, 其中, 椭圆的圆形度是比较接 近于圆的, 这也是步骤 6) 进行判断的依据。
所述步骤 6) 的设定范围优选为 : 4π 到 4π+3, 判断 C 值是否满足在设定范围内, 若是, 则认为该触摸点区域为触摸点, 若否, 则认为该触摸点区域不是触摸点。
上述方法一跟方法二可以只选一种进行判断拍摄图像中亮斑与手指椭圆的相似 度, 也可以两种方法都采用, 即满足两种方法的判断, 才确认为触摸点。
上述实施例为本发明较佳的实施方式, 但本发明的实施方式并不受所述实施例的 限制, 其他的任何未背离本发明的精神实质与原理下所作的改变、 修饰、 替代、 组合、 简化, 均应为等效的置换方式, 都包含在本发明的保护范围之内。