一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

二维码的增强显示的方法和终端设备与流程

2021-11-15 18:53:00 来源:中国专利 TAG:


1.本技术涉及终端技术领域,尤其涉及一种二维码的增强显示的方法和终端设备。


背景技术:

2.受屏幕显示特性限制,在显示不同图像时,终端设备所需要的最佳显示参数并不固定,这一点对于水墨屏而言更加明显,其显示参数如对比度、饱和度、亮度等都需要根据实际情况进行调整。根据实际测试发现,在光线昏暗或扫描设备质量一般的情况下,页面展示的二维码并不能被外部设备轻易识别,例如地铁二维码扫描仪。因此需要对存在二维码的页面进行增强显示的处理。
3.现有技术中,有一些应用仅能对该应用内展示二维码的固定界面进行显示增强,而不具有增强显示功能的应用则不会自动对其页面内的二维码进行增强显示。对于无法自动增强显示二维码的应用,往往需要用户手动调整终端设备的显示参数,以便于二维码识别设备能够识别出二维码。而手动调整显示参数,操作复杂。


技术实现要素:

4.本技术的目的是提供一种二维码的增强显示的方法和终端设备,用以解决现有技术中往往需要用户手动调整终端设备的显示参数来对二维码进行增强显示的问题。
5.第一方面,本技术提供一种二维码的增强显示的方法,所述方法包括:
6.接收第一用户操作事件;
7.基于所述第一用户操作事件,触发对屏幕图像进行二维码检测的操作;
8.若从所述屏幕图像中检测到二维码,则对所述屏幕图像进行增强显示处理。
9.在一些实施例中,所述基于所述第一用户操作事件,触发对屏幕图像进行二维码检测的操作,包括:
10.基于所述第一用户操作事件,设置触发等待时长;
11.计时到所述触发等待时长,则触发对屏幕图像进行二维码检测的操作。
12.在一些实施例中,所述触发对屏幕图像进行二维码检测的操作之前,还包括:
13.确定在计时到所述触发等待时长之前未接收到第二用户操作事件。
14.在一些实施例中,所述触发对屏幕图像进行二维码检测的操作之前,还包括:
15.若在计时到所述触发等待时长之前接收到第二用户操作事件,则放弃执行所述第一用户操作事件触发的对屏幕图像进行二维码检测的操作。
16.在一些实施例中,所述对屏幕图像进行二维码检测,包括:
17.连续n个周期执行以下操作,直至检测到二维码或检测完n个周期,n为正整数:
18.获取最新合成的页面图像作为所述屏幕图像;
19.对所述屏幕图像中是否包含二维码进行检测;
20.其中,若连续n个周期内任一周期检测到二维码,则确定从所述屏幕图像中检测到二维码;
21.若所述n个周期中均未检测到二维码,则确定从所述屏幕图像中未检测到二维码。
22.在一些实施例中,所述触发对屏幕图像进行二维码检测之前,还包括:将当前显示的图像作为所述屏幕图像存入到缓存中;
23.所述对屏幕图像进行二维码检测,具体包括:
24.检测缓存中的屏幕图像是否包含二维码。
25.在一些实施例中,所述触发对屏幕图像进行二维码检测之前,还包括:将当前显示的图像作为所述屏幕图像存入到缓存中;
26.所述对屏幕图像进行二维码检测,具体包括:
27.若当前无待显示图像正在合成或正在接收,则检测缓存中的屏幕图像是否包含二维码;
28.若当前有待显示图像正在合成或正在接收时,则连续n个周期执行以下操作,直至检测到二维码或检测完n个周期,n为正整数:
29.获取最新合成的页面图像作为所述屏幕图像;
30.对所述屏幕图像中是否包含二维码进行检测;
31.其中,若连续n个周期内任一周期检测到二维码,则确定从所述屏幕图像中检测到二维码;
32.若所述n个周期中均未检测到二维码,则确定从所述屏幕图像中未检测到二维码。
33.在一些实施例中,所述对所述屏幕图像进行增强显示处理,包括:
34.调高屏幕图像的对比度,和/或,调高终端设备的亮度。
35.在一些实施例中,所述对所述屏幕图像进行增强显示处理,包括:
36.在所述屏幕图像的界面之上展示用户操作界面;
37.基于所述用户操作界面的确认增强显示的用户操作,调高终端设备的对比度,和/或,调高终端设备的亮度。
38.第二方面,本技术提供一种终端设备,包括:
39.显示器、处理器和存储器;
40.所述显示器用于显示二维码;
41.所述存储器,用于存储所述处理器可执行指令;
42.所述处理器被配置为执行所述指令以实现如上述第一方面中任一项所述的二维码的增强显示的方法。
43.第三方面,本技术提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由终端设备执行时,使得所述终端设备能够执行如上述第一方面中任一项所述的二维码的增强显示的方法。
44.本技术实例中通过对屏幕界面的二维码检测,自动识别屏幕界面中是否存在二维码,并对检测到的二维码图像的显示效果进行自动增强处理,使得在光线昏暗或扫描设备质量一般的情况下,能够提高二维码图像被外部设备识别到的概率。
45.此外,本技术实施例中,在对屏幕图像进行二维码自动检测的过程中设置触发等待时长,能使得在用户频繁快速操作时,并不会频繁的触发对二维码检测的操作,有效的减小系统负载。
46.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变
得显而易见,或者通过实施本技术而了解。本技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
47.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
48.图1为本技术实施例提供的一种终端设备的结构示意图;
49.图2为本技术实施例提供的终端设备的软件结构框图;
50.图3为本技术实施例提供的应用场景示意图;
51.图4为本技术实施例提供的一种二维码的增强显示的方法的流程示意图;
52.图5为本技术实施例提供的第一种触发对屏幕图像进行二维码检测的实施方式的流程示意图;
53.图6为本技术实施例提供的第二种触发对屏幕图像进行二维码检测的实施方式的流程示意图;
54.图7为本技术实施例提供的同步帧检测的流程示意图;
55.图8为本技术实施例提供的异步帧检测的流程示意图;
56.图9为本技术实施例提供的对屏幕图像进行混合帧检测和增强显示处理的流程示意图;
57.图10为本技术实施例提供的用户操作界面图;
58.图11为本技术实施例提供的软件模块图;
59.图12为本技术实施例提供的动作接收器的示意图。
具体实施方式
60.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。其中,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
61.并且,在本技术实施例的描述中,除非另有说明,

/

表示或的意思,例如,a/b可以表示a或b;文本中的

和/或

仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,另外,在本技术实施例的描述中,

多个

是指两个或多于两个。
62.以下,术语

第一



第二

仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有

第一



第二

、的特征可以明示或者隐含地包括一个或者更多个该特征,在本技术实施例的描述中,除非另有说明,

多个”的含义是两个或两个以上。
63.相关技术中,有一些应用仅能对该应用内展示二维码的固定界面进行显示增强,而不具有增强显示功能的应用则不会自动对其页面内的二维码进行增强显示。对于无法自
动增强显示二维码的应用,往往需要用户手动调整终端设备的显示参数,以便于二维码识别设备能够识别出二维码。手动调整显示参数,操作复杂。故此,本技术提出一种二维码的增强显示的方法。
64.本技术的发明构思可概括为:本技术实施例中可以基于用户操作事件触发对屏幕界面的二维码检测,通过检测可以自动识别屏幕界面中是否存在二维码,当存在二维码时可以调整终端设备的显示参数实现对二维码的增强显示。由此,本技术实施例中,可以在终端设备系统中实现该方案,使得任何应用可无需单独开发二维码自动增强的方案,对用户而言,本技术中可以自动检测到二维码并进行增强显示,无需用户手动调整显示参数,从而简化用户操作。
65.在介绍完本技术的发明构思之后,下面先对本技术提供的终端设备进行说明。图1示出了一种终端设备100的结构示意图。应该理解的是,图1所示终端设备100仅是一个范例,并且终端设备100可以具有比图1中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
66.图1中示例性示出了根据示例性实施例中终端设备100的硬件配置框图。如图1所示,终端设备100包括:射频(radio frequency,rf)电路110、存储器120、显示单元130、摄像头140、传感器150、音频电路160、无线保真(wireless fidelity,wi

fi)模块170、处理器180、蓝牙模块181、以及电源190等部件。
67.rf电路110可用于在收发信息或通话过程中信号的接收和发送,可以接收基站的下行数据后交给处理器180处理;可以将上行数据发送给基站。通常,rf电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等器件。
68.存储器120可用于存储软件程序及数据。处理器180通过运行存储在存储器120的软件程序或数据,从而执行终端设备100的各种功能以及数据处理。存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。存储器120存储有使得终端设备100能运行的操作系统。本技术中存储器120可以存储操作系统及各种应用程序,还可以存储执行本技术实施例所述方法的程序代码。
69.显示单元130可用于接收输入的数字或字符信息,产生与终端设备100的用户设置以及功能控制有关的信号输入,具体地,显示单元130可以包括设置在终端设备100正面的触摸屏131,可收集用户在其上或附近的触摸操作,例如点击按钮,拖动滚动框等。
70.显示单元130还可用于显示由用户输入的信息或提供给用户的信息以及终端设备100的各种菜单的图形用户界面(graphical user interface,gui)。具体地,显示单元130可以包括设置在终端设备100正面的显示屏132。其中,显示屏132可以采用液晶显示器、发光二极管等形式来配置。显示单元130可以用于显示本技术中包含二维码的界面,如浏览器应用的界面。
71.其中,触摸屏131可以覆盖在显示屏132之上,也可以将触摸屏131与显示屏132集成而实现终端设备100的输入和输出功能,集成后可以简称触摸显示屏。本技术中显示单元130可以显示应用程序以及对应的操作步骤。
72.摄像头140可用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光
元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal

oxide

semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给处理器180转换成数字图像信号。
73.终端设备100还可以包括至少一种传感器150,比如加速度传感器151、距离传感器152、指纹传感器153、温度传感器154。终端设备100还可配置有陀螺仪、气压计、湿度计、温度计、红外线传感器、光传感器、运动传感器等其他传感器。
74.音频电路160、扬声器161、麦克风162可提供用户与终端设备100之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出。终端设备100还可配置音量按钮,用于调节声音信号的音量。另一方面,麦克风162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出至rf电路110以发送给比如另一终端设备,或者将音频数据输出至存储器120以便进一步处理。本技术中麦克风162可以获取用户的语音。
75.wi

fi属于短距离无线传输技术,终端设备100可以通过wi

fi模块170帮助用户收发电子邮件、浏览网页和访问流媒体等,它为用户提供了无线的宽带互联网访问。
76.处理器180是终端设备100的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器120内的软件程序,以及调用存储在存储器120内的数据,执行终端设备100的各种功能和处理数据。在一些实施例中,处理器180可包括一个或多个处理单元;处理器180还可以集成应用处理器和基带处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,基带处理器主要处理无线通信。可以理解的是,上述基带处理器也可以不集成到处理器180中。本技术中处理器180可以运行操作系统、应用程序、用户界面显示及触控响应,以及本技术实施例所述的二维码增强显示的方法。另外,处理器180与显示单元130耦接。
77.蓝牙模块181,用于通过蓝牙协议来与其他具有蓝牙模块的蓝牙设备进行信息交互。例如,终端设备100可以通过蓝牙模块181与同样具备蓝牙模块的可穿戴电子设备(例如智能手表)建立蓝牙连接,从而进行数据交互。
78.终端设备100还包括给各个部件供电的电源190(比如电池)。电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电以及功耗等功能。终端设备100还可配置有电源按钮,用于终端设备的开机和关机,以及锁屏等功能。
79.图2是本技术实施例的终端设备100的软件结构框图。
80.分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,可将android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(android runtime)和系统库,以及内核层。
81.应用程序层可以包括一系列应用程序包。
82.如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,wlan,蓝牙,音乐,视频,短信息等应用程序。
83.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
84.如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
85.窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
86.内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿、短信息等。
87.视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信息通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
88.电话管理器用于提供终端设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
89.资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等。
90.通知管理器使应用程序可以在状态栏中显示通知信息(例如短信息的消息摘要,消息内容),可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
91.android runtime包括核心库和虚拟机。android runtime负责安卓系统的调度和管理。
92.核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
93.应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
94.系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:opengl es),2d图形引擎(例如:sgl)等。
95.表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2d和3d图层的融合。
96.媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。
97.三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
98.2d(一种动画方式)图形引擎是2d绘图的绘图引擎。
99.内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
100.下面结合用户输入事件,示例性说明终端设备100软件以及硬件的工作流程。
101.当触摸屏131接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件,然后触发对屏幕图像的二维码检测,以便于确定是否调整终端设备的显示参数。
102.本技术实施例中的终端设备100可以为包括但不限于移动终端、桌面计算机、移动电脑、平板电脑、家用体征数据采集设备(如血压仪)、电视等电子设备。
103.下面对本技术实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本技术实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本技术实施例提供的技术方案。
104.如图3所示示出了本技术实施例提供的应用场景示意图。该应用场景图包括网络301、终端设备302、外部设备303。其中:
105.终端设备302可基于用户操作,获取待展示的页面进行展示,本技术实施例中任何页面都可以作为屏幕图像进行识别。例如,可向网络301发送页面获取请求。网络301基于页面获取请求提供含有二维码的页面给终端设备302显示。
106.终端设备302用于基于用户操作事件的触发,对屏幕图像进行二维码检测操作和二维码增强显示操作。
107.外部设备303用于识别终端设备302提供的二维码图像,包括但不限于地铁二维码扫描仪、公交车二维码扫描仪、医保二维码扫描仪等电子设备。
108.当然,本技术实施例提供的方法并不限于图3所示的应用场景,还可以用于其它可能的应用场景,本技术实施例并不进行限制。对于图3所示的应用场景的各个设备所能实现的功能将在后续的方法实施例中一并进行描述,在此先不过多赘述。
109.为了便于理解本技术实施例提供的二维码的增强显示的方法,下面结合附图对此进行进一步说明。
110.如图4所示,为本技术实施例提供的一种二维码的增强显示的方法的流程示意图,包括以下步骤:
111.步骤401:接收第一用户操作事件;
112.在一些实施例中,用户操作事件包括但不限于以下事件:用户的任何按下、滑动和抬起动作;屏幕显示模式变化,例如屏幕的深色模式、浅色模式,具体的模式可由开发商确定本技术对此不作限定;用户对导航键(返回,主页,最近任务)的点击事件。
113.步骤402:基于第一用户操作事件,触发对屏幕图像进行二维码检测的操作;
114.在一些实施例中,用户对屏幕的操作停止后,受应用设计、网络环境或系统性能等的影响,二维码可能存在一定的显示延迟,为了能够准确的获取屏幕图像,本技术实施例中可执行延时检测。实施时,本技术实施例可以在接收到用户操作事件后,设置触发等待时长t2;计时到触发等待时长t2,则触发对屏幕图像进行二维码检测的操作。
115.当然,在另一实施例中,触发等待时长可以是固定时长也可以根据情况动态调整,例如可以一段时间内检测到二维码的次数和该段时间内用户操作事件总次数的比值自动进行动态调整。比值越接近1,触发等待时长越短;反之,比值越接近0,触发等待时长越长。
116.其中,触发等待时长的值越小,等待时间就越少,触发得频率就会更快。
117.其中,可以在主线程中设置触发等待时长。当然,在另一个实施例中,若接收到上报的用户操作事件,可以开辟子线程,由子线程设置触发等待时长。开辟子线程能够提高多核心cpu(central processing unit,中央处理器)使用率。
118.设置触发等待时长t2之后,到触发进行二维码检测的中间实施方式可根据需要配置。本技术实施例提供以下两种实施方式进行说明。
119.如图5所示,为第一种触发对屏幕图像进行二维码检测的实施方式,其中:
120.步骤501:创建一个子线程,该子线程用于延迟触发二维码检测。
121.步骤502:子线程进入wait(等待)状态(后文简述为状态一)。
122.步骤503:主线程接收到用户操作事件后,触发子线程进入active(活跃)状态(状态二)。
123.其中,主线程接收到用户操作事件后,记录下本次上报的系统时间,同时设置二维码检测信号为true,并对子线程施加notify(通知)信号量,子线程接收到信号量之后进入状态二,主线程通知子线程触发等待时长为t2。
124.步骤504:子线程从主线程获取触发等待时长t2,并设置计时器计时t2时长,然后进入wait状态(状态三)。
125.此时,在一些实施例中,用户操作具有一定的随机性,且有时候一个时间段内用户会频繁操作,故此会频繁产生用户操作事件。主线程检测第一用户操作事件时可能会接收到第二用户操作事件,此时可能会频繁触发对二维码的检测,增大系统的负载。因此本技术实施例中,可过滤部分用户操作事件,避免频繁检测。实施时,可如图5所示在步骤505中:主线程再次接收到用户操作事件。
126.步骤506:主线程记录当前系统时间。
127.步骤507:主线程判断当前系统时间与上次记录的用户操作事件的时间间隔是否小于阈值。若两次用户操作事件的时间间隔大于阈值,说明在计时到触发等待时长期间内未接收到用户操作事件,则在接收到新的用户操作事件之前,会首先计时到触发等待时长,当计时到触发等待时长后,会在步骤508中,子线程进入active状态(状态四)。然后,在步骤509中:子线程触发检测二维码。其中,触发的方式可以实施为由子线程修改mstatus(全局变量)信号量。然后可以实时扫描该mstatus信号量,若mstatus信号量发生变化则说明需要对屏幕图像进行二维码检测。
128.其中,在创建子线程时会设置一个flag(二维码识别二值循环触发标志位),初始值为ox100000。计时到触发等待时长,对flag的值会取反和mode(屏幕当前显示模式)进行逻辑操作,然后会将flag的值赋值到mstatus信号量中,使得mstatus信号量发生变化。例如:mode=0x203,那么和flag结合就是0x100203,下一次就是0x203,再下一次是0x100203,依次循环,每次flag值变化,mstatus信号量就会发生变化,然后触发对屏幕图像进行二维码检测的操作。
129.继续说明两次用户操作事件的时间间隔大于等于阈值,则基于上一次用户操作事件会先完成触发二维码检测,针对新收到的用户操作事件,会执行步骤502,触发子线程进入状态开始对新的用户操作事件所需的触发延迟等待时长进行计时。
130.若两次用户操作事件的时间间隔小于阈值,则子线程处于状态三阶段,会中断触发延迟等待时长的计时,并由子线程在状态三切换到状态一。
131.当然,在另一个实施例中,若两次用户操作事件的时间间隔小于阈值,也可以基于新的用户操作事件,触发子线程重新开始对触发等待时长进行计时。这样,当频繁发生用户操作事件时,会不断的重新计时,子线程会停留在状态三阶段,也可以减少二维码检测的操作。
132.如图6所示,为第二种触发对屏幕图像进行二维码检测的实施方式,其中:
133.步骤601:创建一个子线程,该子线程用于延迟触发二维码检测。
134.步骤602:子线程进入wait(等待)状态(状态一)。
135.步骤603:主线程接收到用户操作事件后,触发子线程进入active(活跃)状态(状态二)。
136.其中,主线程接收到用户操作事件后,记录下本次上报的系统时间,同时设置二维码检测信号为true,并对子线程施加notify(通知)信号量,子线程接收到信号量之后进入状态二,主线程通知子线程触发等待时长为t2。
137.步骤604:子线程从主线程获取触发等待时长t2,并设置计时器计时t2时长,然后进入wait状态(状态三)。
138.此时,在一些实施例中,用户操作具有一定的随机性,且有时候一个时间段内用户会频繁操作,故此会频繁产生用户操作事件。主线程检测第一用户操作事件时可能会接收到第二用户操作事件,此时可能会频繁触发对二维码的检测,增大系统的负载。因此本技术实施例中,可过滤部分用户操作事件,避免频繁检测。实施时,可如图6所示在步骤605中:主线程再次接收到用户操作事件。
139.步骤606:主线程记录当前系统时间。
140.步骤607:判断当前系统时间与上次记录的时间间隔是否小于阈值。
141.若当前系统时间与上次记录的时间间隔小于阈值,说明在计时到触发等待时长之前接收到第二用户操作事件,则在步骤608中设置二维码检测信号为false,并对子线程施加notify信号量唤醒子线程,此时,在步骤610中,子线程进入状态四。然后在步骤611中,子线程读取二维码检测信号为false,则进入状态一,等待被下一用户操作事件唤醒。
142.若当前系统时间与上次记录的时间间隔大于或等于阈值,在步骤609中,主线程设置二维码检测信号为true并对子线程施加notify信号量以唤醒子线程,子线程进入状态四。此时在步骤611中,子线程读取二维码检测信号为true,则在步骤612中,子线程触发检测二维码。其中,触发的方式可以实施为由子线程修改mstatus(全局变量)信号量。然后可以实时扫描该mstatus信号量,若mstatus信号量发生变化则说明需要对屏幕图像进行二维码检测。
143.综上所述,本技术实施例中,可以触发对屏幕图像进行二维码检测的操作之前,确定在计时到所述触发等待时长之前是否接收到第二用户操作事件。若没有收到第二用户操作事件,则可以基于第一用户操作事件触发对屏幕图像的二维码检测,若收到第二用户操作事件,则放弃执行第一用户操作事件触发二维码检测。简言之,若相邻两次操作事件之间的时间间隔较短,则说明用户在频繁操作,那么屏幕展示的页面内容也可能会频繁发生变化,此时可以放弃二维码检测。
144.基于前文的描述,本技术实施例能够通过设置触发等待时长来延迟对屏幕图像进行二维码检测的操作。一方面能够确保能获取到合适的屏幕图像进行检测,另一方面可以缓解频繁触发二维码检测带来的系统负担。
145.在一些实施例中,触发对屏幕图像进行二维码检测的操作之后,可以获取合适的屏幕图像进行检测,本技术实施例中提供了可选的几种检测方式。包括同步帧检测、异步帧检测、混合帧检测等。下面对这几种检测方式进行说明:
146.一、同步帧检测
147.同步帧检测的基本构思是对当前显示的图像进行实时检测。该检测方式尤其适用于页面内容不断变化的情况。为了保证检测的准确性,本技术实施例中在同步帧检测中提供n个检测周期,n为正整数。每个检测周期若检测到当前有屏幕图像正在合成,则等待正在合成的屏幕图像合成完毕,将合成完毕后的图像作为屏幕图像进行二维码检测,若检测到当前没有屏幕图像正在合成,则将当前周期内显示的图像作为屏幕图像进行二维码检测。若连续n个周期内任一周期检测到二维码,则确定从所述图像中检测到二维码,若连续n个周期内均未检测到二维码,则确定未从屏幕图像中检测到二维码。
148.一种可能的实施方式中,同步帧检测的实施方式如图7所示,包括以下步骤:
149.在步骤701中,对检测周期进行计数。
150.在步骤702中确定当前检测周期的计数是否小于等于n若大于n则执行步骤705,若小于等于n,则执行步骤703。
151.在步骤703中,获取最新合成的页面图像作为屏幕图像。
152.如图7所示,可实施为步骤7031中,检测当前是否有图像正在合成,若有则执行步骤7032,若无,则执行步骤7033。
153.在步骤7032中,等待正在合成的图像合成完毕,获取合成完毕后的图像作为屏幕图像。
154.在步骤7033中,获取当前显示的图像作为屏幕图像。
155.在步骤704中,对屏幕图像中是否包含二维码进行检测。若从屏幕图像中检测到二维码,则执行步骤705。若从屏幕图像中未检测到二维码,则返回执行步骤701,以便于更新计数开始下一检测周期的检测。
156.在步骤705中,结束操作。
157.为了进一步理解同步帧检测,下面将举出一个例子进行说明。
158.设延迟n秒后上报检测信号,分别在第n 0秒、第n 1秒、第n 2秒和第n 4秒进行同步帧检测。设初始帧为第0帧,则检测时间点与同步帧的对应关系如表1所示:
159.表1
[0160][0161][0162]
其中,检测时间点的选取综合考虑实时性和功耗水平,以上数据只是举例说明,实际使用时可根据实时性需求改变检测间隔和检测次数。
[0163]
二、异步帧检测
[0164]
异步帧检测的基本构思是监听到mstatus信号量变化后,对缓存的图像进行检测。该检测方式尤其适用于页面内容处于静止状态的情况。为了保证检测的准确性,本技术实施例中在触发对屏幕图像进行二维码检测的操作之前,将当前显示的图像作为屏幕图像存入到缓存中。异步帧检测中触发对屏幕图像进行二维码检测后,检测当前有无屏幕图像正
在合成。若检测到当前没有屏幕图像正在合成,则检测缓存中的屏幕图像是否包含二维码。若检测到当前有屏幕图像正在合成,则将合成完毕后的图像放入缓存中,检测缓存中的屏幕图像是否包含二维码。
[0165]
一种可能的实施方式中,异步帧检测的实施方式如图8所示,包括以下步骤:
[0166]
在步骤801中,获取当前显示的图像作为屏幕图像。
[0167]
在步骤802中,判断缓存buffer中是否有图像。若有,执行步骤803,若无,执行步骤804。
[0168]
在步骤803中,清除缓存中的图像。
[0169]
在步骤804中,将屏幕图像存入缓存中。
[0170]
在步骤805中,触发对屏幕图像进行二维码检测的操作,检测当前是否有屏幕图像正在合成。若有,则执行步骤806,若无,则执行步骤807。
[0171]
在步骤806中,将合成完毕后的图像放入缓存中。
[0172]
在步骤807中,检测缓存中的屏幕图像是否包含二维码。
[0173]
三、混合帧检测
[0174]
顾名思义,混合帧检测是指可能采用异步帧检测也可能采用同步帧检测。实施时,可根据页面图像的情况确定采用何种检测方式。基本构思是页面内容动态变化则适合采用同步帧检测,页面内容几乎不变则适用于异步帧检测。
[0175]
实施时,可以根据当前有无待显示图像正在合成或正在接收来确定是页面内容是动态变化还是不变。
[0176]
为了保证检测的准确性,本技术实施例中触发对屏幕图像进行二维码检测之前,将当前显示的图像作为所述屏幕图像存入到缓存中。在异步帧检测中触发对屏幕图像进行二维码检测时,检测缓存中的屏幕图像是否包含二维码。在同步帧检测中提供n个检测周期,n为正整数。每个检测周期将最新合成的页面图像作为屏幕图像进行二维码检测。若连续n个周期内任一周期检测到二维码,则确定从所述图像中检测到二维码,若连续n个周期内均未检测到二维码,则确定未从屏幕图像中检测到二维码。
[0177]
一种可能的实施方式中,混合帧检测的实施方式如图9所示,包括以下步骤:
[0178]
在步骤904中,获取当前帧图像作为屏幕图像。
[0179]
在步骤905中,将屏幕图像存入缓存buffer中。
[0180]
在步骤906中:查询子线程发出的检测通知。
[0181]
在步骤907中:判断是否被通知对屏幕图像进行二维码检测。若是,执行步骤908,若不是,执行步骤904。
[0182]
步骤908:判断当前有无待显示图像正在合成或正在接收,若无,执行步骤909;若有,执行步骤910。
[0183]
步骤909:执行同步帧检测(具体操作如上述同步帧检测所示)。
[0184]
步骤910:执行异步帧检测(具体操作如上述异步帧检测所示)。
[0185]
基于前文的描述,同步帧检测是最常用的方法,适用于动态图像,对当前显示的图像进行实时检测,实时性高;异步帧检测适用于静止图像,对缓存的图像进行检测。混合帧检测同时满足动态图像和静止图像的检测。通过三种检测方法能够确定当前屏幕图像中是否含有二维码图像。
[0186]
综上所述,经过对屏幕图像进行检测后,可在步骤403中:若从所述屏幕图像中检测到二维码,则对所述屏幕图像进行增强显示处理。
[0187]
在一些实施例中,为了在光线昏暗或扫描设备质量一般的情况下,能够提高外部设备能够识别到页面展示的二维码图像的概率,本技术实施例通过调高屏幕图像的对比度,和/或,调高终端设备的亮度对屏幕图像进行增强显示处理。如图9所示,包括以下具体步骤:
[0188]
步骤911:判断是否检测到二维码图像。若检测到二维码图像,则执行步骤912;若没有检测到二维码图像,则执行步骤914。
[0189]
步骤912:保存原对比度和背光度。
[0190]
步骤913:设置新对比度和背光度。
[0191]
其中,本技术实施例中新对比度和背光度可以设置为最大值。当然,在另一实施例中,也可以按照其他方式进行调节,均适用于本技术实施例,例如将对比度和背光度升高50%。
[0192]
步骤914:恢复原对比度和背光度。
[0193]
在一些实施例中,对屏幕图像进行增强显示处理,还可以在屏幕图像的界面之上展示用户操作界面;基于用户操作界面的确认增强显示的用户操作,调高屏幕图像的对比度,和/或,调高终端设备的亮度。如图10所示,为用户操作界面图。用户可以点击右上方的灯泡形状的按钮来自行调节图像对比度和终端设备的背光度。使用本方法,用户不需要开启其他界面进行操作,只需要在本界面上展示的用户操作界面进行点击按钮就可以,简化了用户的操作。
[0194]
基于前文的描述,本技术实施例可以自动增强二维码页面的显示,也可以允许用户自行调节二维码界面的显示。由此,可以使得在光线昏暗或扫描设备质量一般的情况下,提高外部设备识别到页面展示的二维码图像的概率。
[0195]
如图11所示为本技术实施例提供的软件模块图。本技术实施例的方法在system server(系统服务器)进程中实现,主要的子模块有操作检测模块、核心服务模块、算法识别模块、界面处理模块。
[0196]
其中,操作检测模块含有动作接收器。如图12所示为本技术实施例提供的动作接收器的示意图:
[0197]
动作接收器随用户操作事件的生成而创建,通过以下三种方式接收用户操作:
[0198]
方式1)、用户操作屏幕:使用a1方法监听用户任何按下、滑动和抬起动作,并将这些动作传递给epdmanagerservice(核心服务)。
[0199]
方式2)、用户操作导航键:使用a2方法,监听用户对导航键(返回,主页,最近任务)的点击事件,并将这些事件传递给epdmanagerservice。
[0200]
方式3)、用户切换显示模式:使用a3方法监听屏幕显示模式变化,并将这个事件传递到epdmanagerservice。
[0201]
动作接收上报原则是在android原生功能执行完毕后,将用户事件传递到核心服务epdmanagerservice,这个过程是在主线程中执行的。主线程完成此次用户事件上报并通知子线程,主线程当前进入空闲状态(释放锁),可以开始处理下一个用户事件上报了。
[0202]
动作接收器上报用户操作事件给核心服务模块中的操作处理器,操作处理器用于
接收由动作接收器上报的用户事件,并开辟子线程,设置延迟触发器的唤醒时间,给延迟触发器施加notify信号。
[0203]
延迟触发器用于接收操作处理器传递的信号量,根据触发等待时长决定线程唤醒时机,通知算法识别模块中的信号处理器对二维码检测进行检测。
[0204]
信号处理器可以识别延迟触发器发送的触发检测的信号,并检测同步信号还是异步信号,发送给图像识别器对二维码图像进行检测。
[0205]
图像识别器使用公开成熟算法对二维码图像进行扫描识别,将识别结果的值反馈给信号处理器。同时若检测到二维码图像,则把信号发送给界面处理模块的显示增强器。
[0206]
显示增强器根据图像识别器识别结果,调整终端设备的显示参数。
[0207]
本技术提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本技术总的构思下的几个示例,并不构成本技术保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本技术方案所扩展出的任何其他实施方式都属于本技术的保护范围。
[0208]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0209]
本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0210]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0211]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0212]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献