本发明涉及触控技术领域,尤其涉及一种基于爬山算法的触控屏抗干扰方法、触控装置及移动终端。
背景技术:
电容触控屏是在显示器表面的人机互动输入装置,因性能优异获得广泛应用。使用感应电容原理获取按压、划线等互动信息故称电容触控屏。电容触控屏获取的原始数据是行列坐标的交叉点触摸信息,行列坐标的密度一般是人手指3倍以上防止触摸遗漏。当一个或者多个手指触摸时会产生以手指为中心的一个或者多个辐射状数据簇团,通过软件处理识别触摸的坐标,处理器根据触摸的坐标完成人机互动过程。当显示器、充电器、水等外部干扰时数据簇团发生畸变,软件将无法正常识别触摸的坐标,产生漏报、错报等错误,人机互动过程无法顺利进行。
技术实现要素:
本发明的目的在于针对上述现有技术中因为干扰而导致无法进行触控识别的问题,提出一种基于爬山算法的触控屏抗干扰方法、触控装置及移动终端,能够有效对抗干扰,提高触控识别的精度和准确性。
一种基于爬山算法的触控屏抗干扰方法,包括:
设置标准数据模板,并计算标准数据梯度值百分比;
采集实时触摸数据,判断所述实时触摸数据是否有效;
如果有效,计算所述实时触摸数据的梯度值百分比;
根据所述标准数据梯度值百分比和实时触摸数据的梯度值百分比,判断所述实时触摸数据中是否存在畸变数据;
如果存在畸变数据,则计算所述实时触摸数据的畸变率;
如果所述实时触摸数据的畸变率小于预设畸变阈值,则根据标准数据梯度值百分比和实时触摸数据的梯度值百分比的比较结果,选取基准数据;
以所述基准数据开始向相邻数据进行查找,获得畸变数据;
对所述畸变数据进行修正,获得修正数据值;
对所述修正数据值进行检验。
进一步地,所述标准数据模板为包含多个标准数据值的数据簇团,所述标准数据模板满足如下预设条件:
每一个标准数据值均大于或等于预设有效值;
标准数据值由中心向边缘呈递减规律,或者由边缘向中心呈递增规律。
进一步地,根据以下公式计算标准数据梯度值百分比:
其中,tn为标准数据梯度值百分比,d为标准数据模板中的标准数据值,n=1,2,3,...n。
进一步地,所述实时触摸数据为包括多个实时数据值的数据簇团;
判断所述实时触摸数据是否有效,包括:
判断所述多个实时数据值是否均大于或等于预设有效值,如果是,则确定所述实时触摸数据有效。
进一步地,所述实时触摸数据的梯度值百分比通过以下公式进行计算:
其中,atn为实时触摸数据的梯度值百分比,ad为实时触摸数据中的实时数据值,n=1,2,3,...n。
进一步地,根据所述标准数据梯度值百分比和实时触摸数据的梯度值百分比,判断所述实时触摸数据中是否存在畸变数据,包括:
计算相应的标准数据梯度值百分比和相应的实时触摸数据的梯度值百分比之间差值的绝对值,如果有差值的绝对值大于预设误差阈值,则确定所述实时触摸数据中是否存在畸变数据。
进一步地,所述预设误差阈值为10%。
进一步地,所述实时触摸数据的畸变率通过以下公式进行计算:
其中,q为实时触摸数据的畸变率,m为大于预设误差阈值的绝对值的个数,n为标准数据梯度值百分比的数量。
进一步地,所述预设畸变阈值为60%。
进一步地,如果所述实时触摸数据的畸变率大于或等于预设畸变阈值,则丢弃所述实时触摸数据。
进一步地,根据标准数据梯度值百分比和实时触摸数据的梯度值百分比的比较结果,选取基准数据,包括:
选取标准数据梯度值百分比和实时触摸数据的梯度值百分比之间差值的绝对值最小的相关数据作为基准数据。
进一步地,以所述基准数据开始向相邻数据进行查找,获得畸变数据,包括:
以所述基准数据开始依次计算相邻实时触摸数据的梯度值百分比与标准数据梯度值百分比之间差值的绝对值,直到有差值的绝对值大于所述预设误差阈值,则确定相关的实时数据值为畸变数据。
进一步地,所述修正数据值通过以下公式进行计算:
adn修正=adn+1×tn;
其中,adn修正为修正后的修正数据值。
进一步地,对所述修正数据值进行检验,包括:
采用修正数据值代替畸变数据,计算修正数据梯度值百分比;
计算所述修正数据梯度值百分比和标准数据梯度值百分比之间的差值的绝对值,如果所述差值的绝对值小于或等于所述预设误差阈值,则所述修正数据通过检验。
一种触控装置,包括触控屏、触控ic、处理器以及存储器,所述存储器用于存储多条指令;
所述触控ic用于读取所述指令并执行:
设置标准数据模板,并计算标准数据梯度值百分比;
采集实时触摸数据,判断所述实时触摸数据是否有效;
如果有效,计算所述实时触摸数据的梯度值百分比;
根据所述标准数据梯度值百分比和实时触摸数据的梯度值百分比,判断所述实时触摸数据中是否存在畸变数据;
如果存在畸变数据,则计算所述实时触摸数据的畸变率;
如果所述实时触摸数据的畸变率小于预设畸变阈值,则根据标准数据梯度值百分比和实时触摸数据的梯度值百分比的比较结果,选取基准数据;
以所述基准数据开始向相邻数据进行查找,获得畸变数据;
对所述畸变数据进行修正,获得修正数据值;
对所述修正数据值进行检验。
一种移动终端,包括上述的触控装置。
本发明提供的基于爬山算法的触控屏抗干扰方法、触控装置及移动终端,采用数据间梯度百分比表示数据相关性,按照已知的规律查找受干扰的畸变数据并进行修正,提高触控识别的正确性和成功率,查找畸变数据时不需要遍历所有数据,有效节约计算流程。
附图说明
图1为本发明提供的基于爬山算法的触控屏抗干扰方法一种实施例的流程图。
图2为本发明提供的触控装置一种实施例的结构示意图。
图3为本发明提供的基于爬山算法的触控屏抗干扰方法一种应用场景的触摸位置示意图。
图4为本发明提供的基于爬山算法的触控屏抗干扰方法一种应用场景下的标准数据模板示意图。
图5为本发明提供的基于爬山算法的触控屏抗干扰方法一种应用场景下的实时触摸数据示意图。
图6为本发明提供的基于爬山算法的触控屏抗干扰方法一种应用场景下的修正后的实时触摸数据示意图。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例一
参考图1,本实施例提供一种基于爬山算法的触控屏抗干扰方法,包括:
步骤s101,设置标准数据模板,并计算标准数据梯度值百分比;
步骤s102,采集实时触摸数据,判断所述实时触摸数据是否有效;
步骤s103,如果有效,计算所述实时触摸数据的梯度值百分比;
步骤s104,根据所述标准数据梯度值百分比和实时触摸数据的梯度值百分比,判断所述实时触摸数据中是否存在畸变数据;
步骤s105,如果存在畸变数据,则计算所述实时触摸数据的畸变率;
步骤s106,如果所述实时触摸数据的畸变率小于预设畸变阈值,则根据标准数据梯度值百分比和实时触摸数据的梯度值百分比的比较结果,选取基准数据;
步骤s107,以所述基准数据开始向相邻数据进行查找,获得畸变数据;
步骤s108,对所述畸变数据进行修正,获得修正数据值;
步骤s109,对所述修正数据值进行检验。
具体地,执行步骤s101,采集正常按压时的数据作为标准数据模板,标准数据模板为包含多个标准数据值的数据簇团,标准数据模板满足如下预设条件:
每一个标准数据值均大于或等于预设有效值;
标准数据值由中心向边缘呈递减规律,或者由边缘向中心呈递增规律。
作为一种优选的实施方式,该预设有效值为100。
进一步地,根据以下公式计算标准数据梯度值百分比:
其中,tn为标准数据梯度值百分比,d为标准数据模板中的标准数据值,n=1,2,3,...n。
标准数据模板中包含n+1个标准数据值,计算获得n个标准数据梯度值百分比。
进一步地,执行步骤s102,采集实时触摸数据,所述实时触摸数据为包括多个实时数据值的数据簇团。
判断所述实时触摸数据是否有效,包括:
判断所述多个实时数据值是否均大于或等于预设有效值,如果是,则确定所述实时触摸数据有效。
作为一种优选的实施方式,该预设有效值为100。
进一步地,执行步骤s103,如果实时触摸数据有效,则通过以下公式计算实时触摸数据的梯度值百分比:
其中,atn为实时触摸数据的梯度值百分比,ad为实时触摸数据中的实时数据值,n=1,2,3,...n。
实时触摸数据中包含n+1个实时数据值,计算获得n个实时触摸数据梯度值百分比。
如果该实时触摸数据无效,则丢弃该组数据。
进一步地,执行步骤s104,根据所述标准数据梯度值百分比和实时触摸数据的梯度值百分比,判断所述实时触摸数据中是否存在畸变数据,包括:
计算相应的标准数据梯度值百分比和相应的实时触摸数据的梯度值百分比之间差值的绝对值,如果有差值的绝对值大于预设误差阈值,则确定所述实时触摸数据中是否存在畸变数据。
作为一种优选的实施方式,所述预设误差阈值为10%。
如果没有差值的绝对值大于预设误差阈值,则该实施触摸数据没有受到干扰。
执行步骤s105,如果存在畸变数据,则计算畸变率,所述实时触摸数据的畸变率通过以下公式进行计算:
其中,q为实时触摸数据的畸变率,m为大于预设误差阈值的绝对值的个数,n为标准数据梯度值百分比的数量。
进一步地,执行步骤s106,如果所述实时触摸数据的畸变率小于预设畸变阈值,根据标准数据梯度值百分比和实时触摸数据的梯度值百分比的比较结果,选取基准数据,包括:
选取标准数据梯度值百分比和实时触摸数据的梯度值百分比之间差值的绝对值最小的相关数据作为基准数据。
作为一种优选的实施方式,所述预设畸变阈值为60%。
进一步地,如果所述实时触摸数据的畸变率大于或等于预设畸变阈值,则没有修正意义,丢弃该组实时触摸数据。
进一步地,执行步骤s107,以所述基准数据开始向相邻数据进行查找,获得畸变数据,包括:
以所述基准数据开始依次计算相邻实时触摸数据的梯度值百分比与标准数据梯度值百分比之间差值的绝对值,直到有差值的绝对值大于所述预设误差阈值,则确定相关的实时数据值为畸变数据。
执行步骤s108,对畸变数据进行修正,修正数据值通过以下公式进行计算:
adn修正=adn+1×tn;
其中,adn修正为修正后的修正数据值。
执行步骤s109,对所述修正数据值进行检验,包括:
采用修正数据值代替畸变数据,计算修正数据梯度值百分比;
计算所述修正数据梯度值百分比和标准数据梯度值百分比之间的差值的绝对值,如果所述差值的绝对值小于或等于所述预设误差阈值,则所述修正数据通过检验。
本实施例提供的基于爬山算法的触控屏抗干扰方法,采用数据间梯度百分比表示数据相关性,按照已知的规律查找受干扰的畸变数据并进行修正,提高触控识别的正确性和成功率,查找畸变数据时不需要遍历所有数据,有效节约计算流程。
实施例二
参考图2,本实施例提供一种触控装置,包括触控屏201、触控ic202、处理器203以及存储器204,存储器204用于存储多条指令;
触控ic202用于读取所述指令并执行:
设置标准数据模板,并计算标准数据梯度值百分比;
采集实时触摸数据,判断所述实时触摸数据是否有效;
如果有效,计算所述实时触摸数据的梯度值百分比;
根据所述标准数据梯度值百分比和实时触摸数据的梯度值百分比,判断所述实时触摸数据中是否存在畸变数据;
如果存在畸变数据,则计算所述实时触摸数据的畸变率;
如果所述实时触摸数据的畸变率小于预设畸变阈值,则根据标准数据梯度值百分比和实时触摸数据的梯度值百分比的比较结果,选取基准数据;
以所述基准数据开始向相邻数据进行查找,获得畸变数据;
对所述畸变数据进行修正,获得修正数据值;
对所述修正数据值进行检验。
标准数据模板为包含多个标准数据值的数据簇团,所述标准数据模板满足如下预设条件:
每一个标准数据值均大于或等于预设有效值;
标准数据值由中心向边缘呈递减规律,或者由边缘向中心呈递增规律。
进一步地,触控ic202还用于执行:根据以下公式计算标准数据梯度值百分比:
其中,tn为标准数据梯度值百分比,d为标准数据模板中的标准数据值,n=1,2,3,...n。
实时触摸数据为包括多个实时数据值的数据簇团;
进一步地,触控ic202还用于执行:
判断所述多个实时数据值是否均大于或等于预设有效值,如果是,则确定所述实时触摸数据有效。
进一步地,触控ic202还用于执行:通过以下公式计算所述实时触摸数据的梯度值百分比:
其中,atn为实时触摸数据的梯度值百分比,ad为实时触摸数据中的实时数据值,n=1,2,3,...n。
进一步地,触控ic202还用于执行:
计算相应的标准数据梯度值百分比和相应的实时触摸数据的梯度值百分比之间的差值的绝对值,如果有差值的绝对值大于预设误差阈值,则确定所述实时触摸数据中是否存在畸变数据。
作为一种优选的实施方式,预设误差阈值为10%。
进一步地,触控ic202还用于执行:通过以下公式计算所述实时触摸数据的畸变率:
其中,q为实时触摸数据的畸变率,m为大于预设误差阈值的绝对值的个数,n为标准数据梯度值百分比的数量。
作为一种优选的实施方式,预设畸变阈值为60%。
进一步地,触控ic202还用于执行:如果所述实时触摸数据的畸变率大于或等于预设畸变阈值,则丢弃所述实时触摸数据。
进一步地,触控ic202还用于执行:
选取标准数据梯度值百分比和实时触摸数据的梯度值百分比之间差值的绝对值最小的相关数据作为基准数据。
进一步地,触控ic202还用于执行:
以所述基准数据开始依次计算相邻实时触摸数据的梯度值百分比与标准数据梯度值百分比之间的差值的绝对值,直到有差值的绝对值小于所述预设误差阈值,则确定相关的实时数据值为畸变数据。
进一步地,触控ic202还用于执行:通过以下公式计算所述修正数据值:
adn修正=adn+1×tn;
其中,adn修正为修正后的修正数据值。
进一步地,触控ic202还用于执行:
采用修正数据值代替畸变数据,计算修正数据梯度值百分比;
计算所述修正数据梯度值百分比和标准数据梯度值百分比之间的差值的绝对值,如果所述差值的绝对值小于或等于所述预设误差阈值,则所述修正数据通过检验。
通过修正和检验后的实时触摸数据上报至处理器203,以进行下一步操作。
本实施例提供的触控装置,采用数据间梯度百分比表示数据相关性,按照已知的规律查找受干扰的畸变数据并进行修正,提高触控识别的正确性和成功率,查找畸变数据时不需要遍历所有数据,有效节约计算流程。
实施例三
一种移动终端,包括上述的触控装置。
本实施例提供的移动终端,包括但不限于手机、平板电脑、显示器、笔记本电脑等任何具有显示功能的产品或部件。
实施例四
本实施例提供具体应用场景对本发明提供的基于爬山算法的触控屏抗干扰方法做进一步地说明。
参考图3,图3为一个6×8点的电容触摸屏感应点的示意图,椭圆部分为手指按压部分。
图4为标准数据模板,包括8个标准数据值:
d1=100≥100;
d2=150≥100
d3=250≥100
d4=450≥100
d5=450≥100
d6=250≥100
d7=150≥100
d8=100≥100
每一个标准数据值都大于或等于预设有效值100,且从d1到d4为递增,d5到d8为递减,因此该组标准数据模板满足要求。
计算标准数据梯度值百分比:
图5为实时触摸数据,包括8个实时数据值:
ad1=108≥100
ad2=325≥100
ad3=255≥100
ad4=460≥100
ad5=465≥100
ad6=245≥100
ad7=155≥100
ad8=105≥100
每一个实时数据值都大于或等于预设有效值100,因此该组实时触摸数据有效。
计算实时触摸数据的梯度值百分比:
计算标准数据梯度值百分比和实时触摸数据的梯度值百分比的差值的绝对值,判断实时触摸数据中是否存在畸变数据:
|δt1|=|t1-at1|=|66.67%-33.23%|=33.44%>10%;
|δt2|=|t2-at2|=|60%-127.45%|=67.45%>10%
|δt3|=|t3-at3|=|55.56%-55.43%|=0.13%≤10%
|δt4|=|t4-at4|=|100%-98.92%|=1.08%≤10%
|δt5|=|t5-at5|=|180%-189.78%|=9.78%≤10%
|δt6|=|t6-at6|=|166.67%-158.06%|=8.61%≤10%
|δt7|=|t7-at7|=|150%-147.62%|=2.38%≤10%
其中,|δt1|、|δt2|大于10%,因此该组数据中存在畸变数据。
计算畸变率:
畸变率小于60%,因此该组数据具有修正意义,可以进行修正。
去除干扰时要以畸变最小的数据作为基准数据,与标准数据模板误差越小,则原始数据畸变越小,本实施例中|δt3|为0.13%,为最小误差,而|δt3|与ad3和ad4相关,取任意一个都行,本实施例中取ad4作为基准数据,分别向左和向右查找畸变数据:
|δt3|=|t3-at3|=|55.56%-55.43%|=0.13%≤10%
误差小于10%,因此实时数据值ad3没有畸变。
|δt2|=|t2-at2|=|60%-127.45%|=67.45%>10%
误差大于10%,因此确定实时数据值ad2发生畸变。
对畸变数据进行修正:
ad2修正=ad3×t2=255×60%=153
对修正值进行检验:
|δt2修正|=|t2-at2修正|=|60%-60%|=0≤10%,误差小于10%,通过检验。
|δt1|=|t1-at1|=|66.67%-70.59%|=3.92%≤10%,误差小于10%,通过检验。
校准后的实时触摸数据如图6所示:
ad1=108≥100
ad2=153≥100
ad3=255≥100
ad4=460≥100
ad5=465≥100
ad6=245≥100
ad7=155≥100
ad8=105≥100
校准后的实时触摸数据的梯度值百分比:
校准后的实时触摸数据的梯度值百分比与标准数据梯度值百分比差值的绝对值:
|δt1|=|t1-at1|=|66.67%-70.59%|=3.92%≤10%;
|δt2|=|t2-at2|=|60%-60%|=0%≤10%
|δt3|=|t3-at3|=|55.56%-55.43%|=0.13%≤10%
|δt4|=|t4-at4|=|100%-98.92%|=1.08%≤10%
|δt5|=|t5-at5|=|180%-189.78%|=9.78%≤10%
|δt6|=|t6-at6|=|166.67%-158.06%|=8.61%≤10%
|δt7|=|t7-at7|=|150%-147.62%|=2.38%≤10%
误差均小于10%,处理干扰成功。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。