一种图像缩放与旋转判别方法 技术领域 本发明涉及图像分析、 机器视觉与模式识别领域, 特别是多点触摸图像缩放与旋 转判别方法。
背景技术 随着机器智能化的发展, 人们要求与机器交互更加自然, 要求能够更加直接建立 起现实模拟世界与虚拟数字世界之间的桥梁。基于机器视觉的多点触摸技术, 由于其表达 的自然性和实时性等优点, 在学术研究和工业实践中得到大力发展。基于单触摸点的产品 已实现产品化, 而基于多点触摸技术的产品由于存在种种困难, 一直难于产品化。 其困难主 要基于两方面 : 一是技术困难 ; 虽然模式识别与机器视觉在这些年的到长足发展, 但对一 些现实问题, 哪怕是人类能够非常简单解决的问题, 机器仍无法做出正确的判断 ; 另一方面 是人自身表达方式的不确定性 ; 机器由于其智能化程度低, 不能正确理解同一问题的多种 表达方式, 也不能容忍某种具体操作的多变性。
正是基于以上原因, 多点触摸技术在实际中都要求专业人员进行操作, 或者对初 学者进行一段时间的培训, 待其熟悉和规范操作流程之后才能正式交付使用, 然而这样却 阻碍了产品市场推广。 在一种文化中, 某一描述的表达方式实质上都能达成共识, 如图片放 大操作, 当两手指定位在图片上, 并且两手指的距离越来越远时, 人都能理解其意是将图片 放大 ; 再如图片旋转, 当两触摸点相向而行并表现出一定弧度时, 人都能理解其意是将图片 旋转。然而机器却不能实时地做出正确的分析判断, 因为机器是基于精确计算的程序处理 过程。 当操作者放大或缩小与旋转动作较为接近时, 机器则不能正确理解操作者意图, 进而 执行错误的操作。采用高深的图像处理与模式识别技术当然能很好地解决这个问题, 但是 实时性往往无法得到保证, 然而这类产品的一个主要特点就是实时性, 所以开发一种简便、 实时性强、 鲁棒性强的新技术将具有广泛的应用市场。
针对图像放大缩小与旋转, 目前采用的方法主要是通过计算当前帧中两触摸点与 起始帧中两触摸点连线的夹角来判定, 如起始帧中两触摸点 A0 和 B0, 两触摸点的连线用 lab 表示, 当前帧中相应于 A0 与 B0 的两触摸点为 A1 和 B1, A0 与 A1 之间的连线用 la 表示, B0 与 B1 之间的连线用 lb 表示, 则若直线 la 与 lab 所形成的夹角 ( ∠ 1) 与直线 lb 与 lab 所形成的夹 角 ( ∠ 2) 在给定范围之内, 则判别为缩放操作, 若不在给定范围内则认定为旋转操作, 如图 1 所示。但是这种设定具有不稳定性, 由于人操作的随意性, 角 1 与角 2 可能会出现一个处 于设定阈值之内, 另一个处于设定阈值之外, 则机器该如何执行操作?此外, 如若角 1 与角 2 都与设定阈值相等, 假设都为 45 度, 那此时到底是旋转还是缩放, 机器也无法给出正确的 操作。所以, 完全基于角度判别的方法具有不稳定性。
发明内容 本发明的目的是解决人机交互中基于机器视觉技术的图像误操作问题, 通过图像 分析技术对当前帧与起始帧中触摸点进行分析, 公开一种简便、 实时性强、 鲁棒性极强的图
像缩放与旋转判别方法, 从而让机器理解操作者想要执行的真实操作, 进而执行相应的动 作。
为实现上述目的, 本发明提出的技术方案提供一种图像缩放与旋转判别方法, 其 包括以下步骤 :
A1、 初始化图像采集装置, 获取图像 ;
A2、 处理图像, 获取并确定初始帧中, 一个或多个触摸点的初始位置 ;
A3、 连续获取图像, 采用跟踪与图像分析技术获取当前帧中各个触摸点的位置, 所 述当前帧中各个触摸点相应于初始帧中各个触摸点 ;
A4、 通过判别当前帧中各个触摸点的位置与初始帧中各个触摸点位置, 判别对图 像实现的操作 ;
其中, 步骤 A4 中的判别方法如下 :
1) 设起始帧中两触摸点为 Ai 与 Bi, 当前帧中相应于 Ai 的触摸点为 Ac, 相应于 Bi 的 触摸点为 Bc, Ai 与 Ac 的连线记为 la, Bi 与 Bc 的连线记为 lb ;
2) 以 Ai 与 Bi 的连线为直径形成一圆形区域 Si, 并记 Si 的中心为 Ci, 半径为 R, 判 断 Ac、 Bc 与 Si 的位置关系 ;
3) 若 Ac、 Bc 中有任一触摸点处于 Si 中, 即下式成立 : 或式中 dij 表示两点 i 与 j 之间的距离, R 为 Si 的半径 ; 则认为是旋转操作 ;
4) 若 Ac、 Bc 中无任一触摸点处于 Si 中, 则通过圆心 Ci 分别作直线 la 与 lb 的垂线, 分别得到位于 Si 内的交点 Pa 和 Pb ;
5) 以 Ai 与 Ac 为对角线, 作矩形 Ra ; 以 Bi 与 Bc 为对角线, 作矩形 Rb ;
6) 判断 Pa 与 Pb 是否处于 Ra 和 Rb 中, 若有任意一点处于相对应的矩形中, 则判定 为旋转操作, 否则为缩放操作。
进一步地, 对获取的图像进行去噪、 二值化、 增强后, 对触摸点区域进行重心归一 化处理, 以重心坐标表示触摸点。
步骤 6) 中的判定方法为 : 记,
其中 min{A, B} 表示取 A, B 中最小值, max{A, B} 表示取 A, B 中最大值。 ① ② XRb_min < Xb < XRb_max 且 且若以上两条件有任一成立, 则判为旋转操作 ; 若二者均不成立, 则判为缩放操作。
与现有技术相比, 本发明有益效果在于 :
本发明主要解决人机交互中基于视觉技术的多点触摸图像操作问题, 该系统中通 过两手指接触触摸屏对图像进行旋转和缩放操作。 传统解决方案主要采用角度来判定该执 行何种操作, 但由于两方面的原因致使机器不能正确理解 : 一是技术本身限制, 因为机器是通过精确计算来处理问题的, 对于模糊性的操作, 机器无能为力 ; 二是操作者操作不规范, 致使机器不能正确理解。 鉴于以上原因, 本发明创造性地通过引入一圆形区域, 进而计算当 前帧中触摸点与圆形区域的关系来确定用户实际执行的操作, 该方法只需简单的数学计算 便能得到正确的结果, 具有高实时性、 强鲁棒性、 易操作等优势。本发明能广泛应用于接触 式与非接触式人机交互设备中, 特别是实时性要求极高的场合。 附图说明
图1: 现有技术图片放大缩小与旋转操作判定示意图 ;
图2: 图像旋转操作示意图 ( 有一触摸点位于圆形区域中 ) ;
图3: 图像旋转操作示意图 ( 两触摸点都处于圆形区域中 ) ;
图4: 图像缩放操作 ( 两触摸点均位于圆形区域外 ) ;
图5: 图像旋转操作 ( 两触摸点交叉处于圆形区域外 ) ;
图6: 图像缩放操作 ( 无任一垂足位于各自矩形区域中 ) ;
图7: 图像旋转操作 ( 两垂足都位于各自矩形中 )。 具体实施方式
下面对本发明加以详细说明, 应指出的是, 所描述的实施例旨在便于对本发明的 理解, 而对其不起任何限定作用。
本发明实现方法需要的硬件为图像采集设备、 计算机、 红外光源及一块触摸屏。
本发明中的红外光源用于产生红外光场, 红外光场均匀覆盖在触摸屏上方, 图像 采集器为红外摄像头, 置于触摸屏后方, 以 64 帧 / 每秒获取灰度图像。当有手指接触到触 摸屏时, 触摸点处光线被反射, 致使获取的红外图像中, 在触摸点处生成具有较高灰度值的 亮点, 所获取的图像送入计算机进行去噪、 二值化、 增强后, 对触摸点区域进行重心归一化 处理, 以重心坐标表示触摸点。
其包括以下步骤 :
A1、 初始化图像采集装置, 获取图像 ;
A2、 处理图像, 获取并确定初始帧中, 一个或多个触摸点的初始位置 ;
A3、 连续获取图像, 采用跟踪与图像分析技术获取当前帧中各个触摸点的位置, 所 述当前帧中各个触摸点相应于初始帧中各个触摸点 ;
A4、 通过判别当前帧中各个触摸点的位置与初始帧中各个触摸点位置, 判别对图 像实现的操作 ;
其中, 步骤 A4 中的判别方法如下 :
1) 设起始帧中两触摸点为 Ai 与 Bi, 当前帧中相应于 Ai 的触摸点为 Ac, 相应于 Bi 的 触摸点为 Bc, Ai 与 Ac 的连线记为 la, Bi 与 Bc 的连线记为 lb ;
2) 以 Ai 与 Bi 的连线为直径形成一圆形区域 Si, 并记 Si 的中心为 Ci, 半径为 R, 判 断 Ac、 Bc 与 Si 的位置关系 ;
3) 若 Ac、 Bc 中有任一触摸点处于 Si 中, 即下式成立 :
或 式中 dij 表示两点 i 与 j 之间的距离, R 为 Sj 的半径 ; 则认为是旋转操作 ;4) 若 Ac、 Bc 中无任一触摸点处于 Si 中, 则通过圆心 Ci 分别作直线 la 与 lb 的垂线, 分别得到位于 Si 内的交点 Pa 和 Pb ;
5) 以 Ai 与 Ac 为对角线, 作矩形 Ra ; 以 Bi 与 Bc 为对角线, 作矩形 Rb ;
6) 判断 Pa 与 Pb 是否处于 Ra 和 Rb 中, 若有任意一点处于相对应的矩形中, 则判定 为旋转操作, 否则为缩放操作。
进一步地, 对获取的图像进行去噪、 二值化、 增强后, 对触摸点区域进行重心归一 化处理, 以重心坐标表示触摸点。
步骤 6) 中的判定方法为 : 记,
其中 min{A, B} 表示取 A, B 中最小值, max{A, B} 表示取 A, B 中最大值。 ① ② XRb_min < Xb < XRb_max 且 且若以上两条件有任一成立, 则判为旋转操作 ; 若二者均不成立, 则判为缩放操作。
实施例 1
如图 2 至图 7 所示, 当检测到触摸屏上有两触摸点时, 便生成一圆形区域, 记起始 帧中两触摸点为 A0(400, 300) 与 B0(600, 300), 其所形成的圆形区域记 S 为, 圆心记为 C, 半 径记为 R, 假设在第 K 帧中相对于 A0 与 B0 的两触摸点分别为 A1(300, 150) 与 B1(800, 400)。
步骤 1 : 判断 A1、 B1 是否有任一点处于 S 中, 判断方法是分别求圆心 C 与 A1、 B1 之 间的欧式距离
经判断可知执行步骤 2 ;步骤 2 : 记连接 A0、 A1 的直线为 la, 记连接 B0、 B1 的直线为 lb, 过 C 分别作直线 la 与 lb 的垂线, 分别交于 la 的延长线点 Pa(430, 346) 和 lb 的延长线点 Pb(520, 260), 执行步骤 3 ;
步骤 3 : 根据 A0、 A1 作矩形 RA, 根据 B0、 B1 作矩形 RB, 通过下式判断 Pa、 Pb 是否处于 矩形 RA 与 RB 中 ;
若 Pa 处于 RA 中, 则 若 Pb 处于 RB 中, 则式中, X k、 Yk 分别表示点 K 的横坐标和纵坐标值。经计算, Pa、 Pb 均不处于矩形 RA 与 RB 中, 所以可以确定该操作为缩放操作。
实施例 2
当检测到触摸屏上有两触摸点时, 便生成一圆形区域, 记起始帧中两触摸点为 A0(400, 300) 与 B0(600, 300), 其所形成的圆形区域记 S 为, 圆心记为 C, 半径记为 R, 假设在 第 K 帧中相对于 A0 与 B0 的两触摸点分别为 A1(600, 150) 与 B1(450, 500)。
步骤 1 : 判断 A1、 B1 是否有任一点处于 S 中, 判断方法是分别求圆心 C 与 A1、 B1 之6102073405 A CN 102073410说经判断可知明书执行步骤 2 ;5/5 页间的欧式距离
步骤 2 : 记连接 A0、 A1 的直线为 la, 记连接 B0、 B1 的直线为 lb, 过 C 分别作直线 la 与 lb 的垂线, 分别交 la 于点 Pa(564, 348)、 交 lb 于点 Pb(464, 252), 执行步骤 3 ;
步骤 3 : 根据 A0、 A1 作矩形 RA, 根据 B0、 B1 作矩形 RB, 通过下式判断 Pa、 Pb 是否处于 矩形 RA 与 RB 中 ;
若 Pa 处于 RA 中, 则 若 Pb 处于 RB 中, 则式中, Xk、 Yk 分别表示点 K 的横坐标和纵坐标值。经计算, Pa、 Pb 均处于矩形 RA 与 RB 中, 所以可以确定该操作为旋转操作。