CN112306344B - 一种数据处理方法及移动终端 - Google Patents
一种数据处理方法及移动终端 Download PDFInfo
- Publication number
- CN112306344B CN112306344B CN202011121031.4A CN202011121031A CN112306344B CN 112306344 B CN112306344 B CN 112306344B CN 202011121031 A CN202011121031 A CN 202011121031A CN 112306344 B CN112306344 B CN 112306344B
- Authority
- CN
- China
- Prior art keywords
- image
- window
- data
- angle
- navigation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 27
- 239000011159 matrix material Substances 0.000 claims abstract description 199
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000012545 processing Methods 0.000 claims description 61
- 238000004590 computer program Methods 0.000 claims description 12
- 230000001960 triggered effect Effects 0.000 claims description 11
- 230000000007 visual effect Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 14
- 238000009877 rendering Methods 0.000 description 14
- 230000000694 effects Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 239000012634 fragment Substances 0.000 description 4
- 238000003384 imaging method Methods 0.000 description 4
- 238000007667 floating Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005057 finger movement Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/80—Geometric correction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请实施例提供一种数据处理方法及移动终端,涉及智慧城市技术领域。该方法包括:CPU根据确定数据展示界面的第一窗口和第二窗口的大小和位置;复制图像数据得到第一图像数据和第二图像数据;第一GPU将第一图像数据渲染为大视角下的第一图像并显示;第二GPU根据第二图像数据生成小视角下的第二图像并显示;第三GPU确定导航图像,在第一窗口内显示导航图像;CPU获取用户基于导航图像在第一窗口上的控制操作,并转换为三维空间下的角度,根据角度更新第二窗口对应的第二投影矩阵;第二GPU和第三GPU分别根据第二投影矩阵更新第二图像以及导航图像。本申请实施例提高用户的操作效率和对图像数据的理解效率,降低移动终端的耗电量。
Description
技术领域
本申请涉及智慧城市技术领域,具体涉及一种数据处理方法及移动终端。
背景技术
在传统的视频监控中,主要是2D平面图片的展示,但是随着计算机技术的崛起,鱼眼图像在监控行业中的优势越发明显。传统的平面摄像头中只能监控一个方位的场景,但鱼眼摄像头由于拥有更广的视角,能监控到视野更加广阔,这样原本需要多个平面摄像头监控的场地,现在只需要一个鱼眼摄像头就可以解决,大大节约了硬件成本。
由于鱼眼摄像头拥有更广的视角,所拍摄得到的鱼眼图像(图像数据)往往具有很大的畸变,且拍摄得到的鱼眼图像通常通过圆形来展示,不太好理解,需要专业技术人员才能看懂,导致鱼眼图像的应用不能很好地推广开来。
发明内容
本申请实施例提供一种数据处理方法及移动终端,可提高移动终端对图像数据的处理效率,降低了移动终端的耗电量,提高用户操作效率,提升用户体验。
本申请实施例提供了一种数据处理方法,适用于移动终端,所述移动终端包括中央处理器、存储器以及第一图形处理器、第二图形处理器、第三图形处理器;所述数据处理方法包括:
所述中央处理器根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置;
所述中央处理器复制图像数据得到第一图像数据和第二图像数据,并传输所述第一图像数据至所述第一图形处理器、传输所述第二图像数据至所述第二图形处理器;
所述第一图形处理器将所述第一图像数据渲染为大视角下的第一图像,并通过数据展示界面的第一窗口展示所述第一图像;
所述第二图形处理器根据第二投影矩阵和所述第二图像数据生成小视角下的第二图像,并通过所述第二窗口展示所述第二图像;
所述第三图形处理器根据所述第二投影矩阵确定导航图像,以通过所述第一窗口突出显示所述导航图像,所述导航图像表示所述第二图像在所述第一图像中的位置;
所述中央处理器获取用户基于所述导航图像在第一窗口上的控制操作;
所述中央处理器将所述控制操作转换为三维空间下的角度;
所述中央处理器根据所述角度更新所述第二窗口对应的第二投影矩阵,并将所述第二投影矩阵传输至所述第二图形处理器以及所述第三图形处理器;
所述第二图形处理器根据所述第二投影矩阵和所述第二图像数据更新小视角下的第二图像,并通过所述第二窗口更新展示所述第二图像;
所述第三图形处理器根据所述第二投影矩阵更新导航图像,以通过所述第一窗口突出显示更新后的导航图像。
本申请实施例还提供了一种移动终端,所述移动终端包括:一个或多个中央处理器;存储器;第一图形处理器、第二图形处理器、第三图形处理器,以及一个或多个计算机程序,其中所述中央处理器和所述存储器、所述图形处理器相连接,所述一个或多个计算机程序被存储于所述存储器中,并配置为由所述中央处理器和所述图形处理器执行上述所述的数据处理方法。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现上述所述的数据处理方法中的步骤。
本申请实施例通过移动终端的中央处理器和图形处理器,将图像数据进行处理并在数据展示界面的第一窗口和第二窗口进行展示,具体的,中央处理器根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置,首先根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置,确定的第一窗口和第二窗口的大小和位置考虑了用户的历史操作数据,使得第一窗口和第二窗口的大小和位置的确定符合用户操作习惯,提高用户的操作效率;接着中央处理器复制图像数据得到第一图像数据和第二图像数据,并将第一图像数据传输至第一图形处理器,将第二图像数据传输至第二图形处理器;第一图形处理器将第一图像数据渲染为大视角下的第一图像,并通过第一窗口展示第一图像;第二图形处理器根据第二投影矩阵,以及第二图像数据生成小视角下的第二图像,并通过第二窗口展示第二图像,如此利用图形处理器来对图像数据进行处理,得到不同视角下的图像,降低移动终端的耗电量,提高对图像数据处理的效率;第三图形处理器根据第二投影矩阵确定导航图像,并通过第一窗口突出显示导航图像,一方面,利用图形处理器进行处理,提高对图像数据处理的效率,降低移动终端的耗电量,另一方面,根据导航图像使得用户可以很清晰的知道第二窗口内显示的第二图像,处于第一窗口内显示的第一图像中的哪个位置,以建立不同视角下的图像之间的关联关系,进一步提高对图像数据内容的理解效率,提高用户定位图像数据中所关注区域的速度,提升用户体验。得到导航图像后,中央处理器获取用户基于导航图像在第一窗口上的控制操作,将控制操作转换为三维空间下的角度,根据角度更新第二窗口对应的第二投影矩阵,如此,将用户基于导航图像在第一窗口上的控制操作转换为三维空间下的角度,并根据角度更新第二投影矩阵,以通过将第一窗口上的控制操作转换为对第二窗口对应的第二投影矩阵的操作。得到第二投影矩阵后,将第二投影矩阵传输至第二图形处理器和第三图形处理器,第二图形处理器根据第二投影矩阵和第二图像数据更新小视角下的第二图像,并通过第二窗口更新显示第二图像;再根据第二投影矩阵更新导航图像,以更新第二图像在第一图像中的位置,如此,根据用户基于导航图像在第一窗口上的控制操作,来更新第二投影矩阵,从而更新第二图像,既而更新导航图像,达到根据用户基于导航图像在第一窗口上的控制操作,来实时更新第二图像在第一图像中的位置,实时调整用户所观看的区域,引导用户快速找到所关注区域,提高用户定位图像数据中所关注区域的速度,提升用户体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的数据展示系统的场景示意图;
图1b是本申请实施例提供的移动终端的结构示意图;
图2是本申请实施例提供的图像数据展示方法的流程示意图;
图3是本申请实施例提供的图像数据展示方法的子流程示意图;
图4a至图4b是本申请实施例提供的初始界面的示意图;
图5a是本申请实施例提供的初始界面的界面操作效果示意图;
图5b是本申请实施例提供的初始界面的划分效果示意图;
图6是本申请实施例提供的填充初始界面后得到的数据展示界面的示意图;
图7是本申请实施例提供的鱼眼摄像头直接采集的图像数据的示意图;
图8是本申请实施例提供的透视投影的成像原理示意图;
图9是本申请实施例提供的大视角的场景示意图;
图10是本申请实施例提供的小视角的场景示意图;
图11是本申请实施例提供的数据展示界面展示图像的示意图;
图12是本申请实施例提供的确定控制点在第一窗口上所处角度的示意图;
图13是本申请实施例提供的确定第二虚拟相机朝向的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种数据处理方法、移动终端和存储介质。该移动终端包括但不限于智能手机、平板电脑、笔记本电脑、智能机器人、可穿戴设备、车载终端,等等。
本申请实施例中的第一图像和第二图像,可以是对普通摄像头(各种平面摄像头等)采集的图像数据进行处理后得到的不同视角下的图像,还可以是对鱼眼摄像头采集的图像数据进行处理后得到的不同视角下的图像。因为鱼眼摄像头采集的图像数据不容易理解,因此,本申请实施例中将以对鱼眼摄像头采集的图像数据进行处理为例进行说明;普通摄像头采集的图像数据的处理一致,将不再赘述。
请参阅图1a,是本申请实施例提供的数据展示系统的场景示意图。该数据展示系统包括鱼眼摄像头和移动终端。鱼眼摄像头的数量可以为一个或多个,移动终端也可以为一个或者多个,鱼眼摄像头与移动终端可以直接连接,也可以通过网络连接。如图1a实施例中的鱼眼摄像头与移动终端通过网络连接。
鱼眼摄像头可进行拍摄,以得到初始图像数据,其中,初始图像数据指的是鱼眼摄像头所拍摄的图像,并将拍摄的初始图像数据发送至移动终端;移动终端接收鱼眼摄像头拍摄的初始图像数据,将初始图像数据保存在存储器中。在一种情况下,直接将初始图像数据作为鱼眼摄像头采集的图像数据,接收图像数据并保存至存储器中,在另一情况下,对初始图像数据校正处理,以得到鱼眼摄像头采集的图像数据,并保存至存储器中。最后通过处理器和图形处理器对图像数据进行相应处理并进行数据展示。其中,校正处理的目的是为了降低或者消除初始图像数据中的畸变。
具体地,移动终端12中包括处理器101,处理器101是该移动终端的控制中心。其中,处理器101包括一个或者一个以上处理核心的中央处理器(central processing unit,CPU),和至少一个图形处理器(Graphics Processing Unit,GPU)。至少一个图形处理器与中央处理器连接。图形处理器包括第一图形处理器(第一GPU)、第二图形处理器(第二GPU)、第三图形处理器(第三GPU)。移动终端12中还包括一个或一个以上计算机可读存储介质的存储器102,存储器102与中央处理器连接。需要注意的是,现有技术中,移动终端中要么没有图形处理器,要么有一个图形处理器。本申请实施例将移动终端的硬件进行了改进,提供了至少三个图形处理器,可以并行执行,大幅提高数据处理的效率,且利用图形处理器对数据进行处理,相对于CPU对数据进行处理,大幅提高了数据处理的效率和准确率,大大降低了移动终端的耗电量。其中,本申请实施例中的三个图形处理器可以是一个硬件上可并行执行的三个相同/不同的模块单元,也可以是三个相同/不同的硬件。
其中,中央处理器利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器102内的软件程序(计算机程序)和/或模块,以及调用存储在存储器102内的数据,如图像数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。可选的,中央处理器可包括一个或多个处理核心;优选的,中央处理器可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解地是,上述调制解调处理器也可以不集成到中央处理器中。图形处理器,主要实现对中央处理器传递过来的数据进行加速处理,如渲染等。
存储器102可用于存储软件程序(计算机程序)以及模块,处理器101通过运行存储在存储器102的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器102可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据移动终端的使用所创建的数据、鱼眼摄像头采集的图像数据等。此外,存储器102可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器102还可以包括存储器控制器,以提供处理器101对存储器102的访问。
如图1b所示,移动终端中除了包括处理器101和存储器102之外,还可以包括:射频(Radio Frequency,RF)电路103、电源104、输入单元105、以及显示单元106等部件。本领域技术人员可以理解,图中示出的移动终端结构并不构成对移动终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路103可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器101处理;另外,将涉及上行的数据发送给基站。通常,RF电路103包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路103还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobilecommunication)、通用分组无线服务(GPRS,General Packet Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband CodeDivision Multiple Access)、长期演进(LTE,Long Term Evolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
移动终端还包括给各个部件供电的电源104(比如电池),优选的,电源104可以通过电源管理系统与处理器101逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源104还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该移动终端还可包括输入单元105,该输入单元105可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体地实施例中,输入单元105可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器101,并能接收处理器101发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元105还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
该移动终端还可包括显示单元106,该显示单元106可用于显示由用户输入的信息或提供给用户的信息以及移动终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元106可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器101以确定触摸事件的类型,随后处理器101根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
尽管未示出,移动终端还可以包括摄像头(需要注意的是,该处的摄像头与下文所述的虚拟相机不同,该处的摄像头指的是硬件)、蓝牙模块等,在此不再赘述。具体在本实施例中,移动终端中的处理器101会按照对应的指令,将一个或一个以上的计算机程序的进程对应的可执行文件加载到存储器102中,并由处理器101来运行存储在存储器102中的计算机程序,从而实现下文中所述的任一数据处理方法中的步骤。因此,也可以实现下文中所述的任一数据处理方法所能实现的有益效果,具体请参看下文中的数据处理方法对应的描述。
图2是本申请实施例提供的数据处理方法的流程示意图。该数据处理方法运行于移动终端中,该数据处理方法包括如下步骤:
201,中央处理器根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置。
其中,历史操作数据可以是用户在数据展示界面上的历史操作数据,还可以是用户在数据展示界面所对应的初始界面上的历史操作数据。为了更好的确定用户操作习惯,降低已确定的数据展示界面上的已有控件对用户操作习惯的影响,以数据展示界面所对应的初始界面上的历史操作数据为准,本申请实施例以初始界面上的历史操作数据为例进行说明。
可根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置,可以理解地,确定的第一窗口和第二窗口的大小和位置考虑了用户的历史操作数据,使得第一窗口和第二窗口的大小和位置的确定符合用户操作习惯,提高用户在数据展示界面上的操作效率。
在一实施例中,根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置的步骤,包括步骤301~305,如图3所示。
301,生成数据展示界面对应的初始界面。
初始界面是与数据展示界面相同尺寸的界面。
具体地,生成数据展示界面对应的初始界面的步骤,包括:获取数据展示界面的显示尺寸;根据数据展示界面的显示尺寸确定初始界面的显示尺寸;根据初始界面的显示尺寸生成数据展示界面的初始界面。
在一些情况下,当数据展示界面存在无效操作区域时,具体地,生成数据展示界面对应的初始界面的步骤,包括:获取数据展示界面中有效操作区域的尺寸和位置,以及数据显示界面的显示尺寸;根据数据展示界面的显示尺寸确定初始界面的显示尺寸;根据初始界面的显示尺寸生成数据展示界面的初始界面;根据有效操作区域的尺寸和位置,确定初始界面内用于采集历史操作数据的有效采集区域的尺寸和位置。其中,无效操作区域指的是数据展示界面上即使操作也不响应该操作的区域。
其中,所生成的初始界面可以为空白界面,如图4a所示;或者所生成的初始界面为包括均匀分布有相同操作单位区域的界面,如图4b所示。其中,单位区域是指初始界面(UI)中可以被操作的最小区域。
302,通过初始界面接收当前用户的历史操作数据。
用户可在初始界面上进行操作,通过初始界面接收当前用户的历史操作数据。其中,历史操作数据可以是预设时间内的操作数据。
303,根据初始界面中各单位区域内被触发的历史操作数据,将初始界面划分为至少两个操作热度不同的显示区域。
初始界面中各单位区域可通过用户手指来触发,也可通过鼠标或激光笔等具有指针的输入设备来触发。触发各单位区域的操作可以是点击操作、双击操作以及长按操作中的至少一种。用户在对初始界面中的各单位区域进行操作后,移动终端即可整合分析所有操作数据以得到历史操作数据。例如,移动终端屏幕上显示的初始界面为空白界面,用户使用鼠标在该空白界面中的任意区域进行点击操作后,移动终端可基于该点击操作分析得到对应的操作数据,如操作位置,若用户在预设时间内持续或间断对该空白界面进行操作,则移动终端可获取到该预设时间内初始界面被触发的历史操作数据,如包括操作次数、操作位置等数据。
得到历史操作数据后,将初始界面划分为至少两个操作热度不同的显示区域。其中,显示区域是指显示界面中相对独立的界面子区域;操作热度是指显示区域被操作的程度,不同显示区域的操作热度可按单位时间内被操作的操作次数计算,也可按操作次数占比计算,例如,20%、80%等。
根据历史操作数据中的操作位置和需独立显示的展示窗口的窗口数量来划分显示区域,根据历史操作数据中的操作次数来确定显示区域的操作热度。如图5a所示,初始界面被触发的操作位置体现为各个圆点的位置,该位置可以换算成初始界面上的坐标信息,如此,各个圆点的位置即为历史操作的操作坐标。假设需显示的展示窗口的窗口数量为三个,则将初始界面划分为3个显示区域,该3个显示区域的位置和大小由历史操作数据中的操作位置来确定。初始界面被触发的操作次数体现为圆点的总数量。如图5b所示,初始界面划分为3个独立显示的显示区域。其中,区域(1)中包括7个被触发的圆点,区域(2)包括3个被触发的圆点,区域(3)包括1个被触发的圆点,对应的操作热度大小关系为:区域(1)大于区域(2),区域(2)>区域(3)。
304,根据图像数据展示功能中的各展示窗口的历史操作频率数据,将各展示窗口标记为操作需求度不同的展示窗口,展示窗口包括第一窗口和第二窗口。
历史操作频率数据是指各展示窗口在预设时长内被操作的频率数,例如,过去24小时内使用次数为5。操作需求度是指各展示窗口需要被操作的程度,不同展示窗口的操作需求度可按单位时间内被操作的操作次数计算,也可按操作次数占比计算,例如20%、80%等。其中,展示窗口包括第一窗口和第二窗口。
移动终端获取图像数据展示中各展示窗口的历史操作频率数据,并根据该历史操作频率数据,将各展示窗口标记为操作需求度不同的展示窗口,确定操作需求度的依据为各展示窗口的历史操作频率数据,历史操作频率数据中的数值越大,表示操作需求度越高,历史操作频率数据中的数值越小,表示操作需求度越低。根据历史操作频率数据,对各展示窗口标记上其专属的操作需求度,便可根据该操作需求度确定各展示窗口在显示界面中所属的显示区域,进而将展示窗口填充至其所属的显示区域,得到对应的数据展示界面。
如独立显示的展示窗口的数量为两个:一个第一窗口和一个第二窗口,第一窗口的操作需求度高于第二窗口。如独立显示的展示窗口的数量为三个:一个第一窗口和两个第二窗口,两个第二窗口分别为第二窗口一和第二窗口二,第一窗口操作需求度高于第二窗口,第二窗口一的操作需求度高于第二窗口二等。需要注意的是,虽然有两个第二窗口,那该两个第二窗口是独立的,所以实质上独立显示的展示窗口的数量为三个。该两个第二窗口后文中都用于显示小视角下的第二图像。
305,根据操作热度和操作需求度的对应关系,在初始界面对应的不同操作热度的显示区域内显示对应操作需求度的展示窗口,得到数据展示界面。
预先设置操作热度和操作需求度的对应关系,并获取预先设置的对应关系。本申请实施例中操作热度和操作需求度的对应关系是高操作热度对高操作需求度、低操作热度对低操作需求度的对应关系。在初始界面对应的不同显示区域内填充对应操作需求度的展示窗口,并显示对应的展示窗口,得到数据展示界面。需要注意的是,该处的数据展示界面上并没有展示任何图像。
请参看图6,为本申请实施例提供的不同显示区域内填充不同展示窗口的界面示意图。该初始界面中显示区域的数量为三个,该三个显示区域的操作热度大小关系为:区域(1)大于区域(2),区域(2)>区域(3)。同时,若各展示窗口的操作需求度大小关系为:第一窗口大于第二窗口一,第二窗口一大于第二窗口二。根据操作热度和操作需求度的对应关系,将第一窗口填充至区域(1),将第二窗口一填充至区域(2),将第二窗口二填充至区域(3)。图6所示的界面,即为初始界面填充后对应的展示界面。其中,本申请实施例中涉及的是在第二窗口上的控制操作,需要注意的是,在第一窗口上也可以进行控制操作。
根据操作热度和操作需求度的对应关系,在初始界面对应的不同操作热度的显示区域内显示对应操作需求度的展示窗口,展示窗口的确定考虑了操作热度和操作需求度,使得展示窗口符合用户操作习惯,提高界面操作效率。
202,中央处理器复制图像数据得到第一图像数据和第二图像数据,并传输第一图像数据至第一图形处理器、传输第二图像数据至第二图形处理器。
中央处理器先从存储器中获取图像数据,获取图像数据后,将图像数据复制至两份,分别得到第一图像数据和第二图像数据。将第一图像数据传输至第一图形处理器,以使第一图形处理器对第一图像数据进行处理;将第二图像数据传输至第二图像处理器,以使第二图形处理器对第二图像数据进行处理。
图像数据以鱼眼摄像头采集的图像数据为例,鱼眼摄像头拍摄角度为类似半球形,得到的图像通过类似圆形等来表示,如若鱼眼摄像头的视角为180度,则拍摄角度刚好为半球,得到的图像以圆形呈现在二维平面上。
图7为本申请实施例提供的鱼眼摄像头直接采集得到的初始图像数据的示意图,中间的圆形区域即为鱼眼摄像头拍摄得到的初始图像。图7中鱼眼摄像头朝向天空,所拍摄得到的图像包括天空以及鱼眼摄像头所处位置周围的建筑物、树木等。
203,第一图形处理器将第一图像数据渲染为大视角下的第一图像,并通过数据展示界面的第一窗口展示第一图像。
具体地,第一图形处理器将第一图像数据渲染为大视角下的第一图像的步骤,包括:第一图形处理器根据第一投影矩阵和第一图像模型将第一图像数据渲染为大视角下的第一图像。
需要注意的是,本申请涉及的图像模型等都指的是在虚拟场景中的图像模型。在虚拟场景中,通常需要构建物体坐标系,并在物体坐标系中建立模型(俗称建模)。本申请实施例中建立的第一图像模型为球形;在其他情况下,可根据具体使用场景对应不同形状的图像模型,如长方体,第一图像可以是长方体某个面上对应的图像等。以第一图像模型为球形为例进行说明,可以简单理解为第一图像模型是按照经度分为n个圆,每个圆上分配m个点所形成的球形,如n=180,m=30等。需要注意的是,n越大,m越大,所形成的球形越圆。
建立好模型后,可构建投影矩阵。在虚拟场景中,物体(或者模型,在模型上进行纹理贴图后即显示为物体)所在的坐标系称为物体坐标系,相机坐标系是以相机的聚焦中心为原点建立的三维坐标系,还对应有一个世界坐标系。虚拟相机、物体等都处于世界坐标系下。世界坐标系里面的虚拟相机、物体、模型,虚拟相机的广角、仰角、镜头到近平面和远平面的距离等的关系都体现在投影矩阵中。
如图8所示,为本申请实施例提供的透视投影的成像原理图。其中,虚拟相机的镜头到近平面11的距离,即点0和点1之间的距离,虚拟相机的镜头到远平面12的距离,即点0和点2之间的距离。虚拟相机的位置点可简单理解为0点在世界坐标系中的坐标。
第一投影矩阵可通过如下方式确定:获取设置的第一虚拟相机的初始参数,该初始参数包括第一虚拟相机的位置、欧拉角、第一虚拟相机的镜头到投影面(也可称为近平面)的距离、第一虚拟相机的镜头到远平面的距离等;根据第一虚拟相机的初始参数确定第一投影矩阵。如根据第一虚拟相机的初始参数,利用数学库来确定第一投影矩阵,如将第一虚拟相机的初始参数,输入至GLM(OpenGL Mathematics)数据库的对应函数中,利用该函数计算第一投影矩阵。需要注意的是,根据所设置的第一虚拟相机的初始参数确定的第一投影矩阵,也可以理解为初始第一投影矩阵。在本申请实施例中,由于初始第一投影矩阵一直都没有改变,因此第一投影矩阵即为初始第一投影矩阵。
确定了第一图像模型和第一投影矩阵后,根据第一投影矩阵和第一图像模型将第一图像数据进行处理,得到大视角下的第一图像。具体地,CPU获取第一投影矩阵和第一图像模型;CPU将第一投影矩阵和第一图像模型发送至第一图形处理器中;第一图形处理器根据第一投影矩阵和第一图像模型,将第一图像数据渲染为大视角下的第一图像。例如,将第一图像模型中的顶点发送至顶点着色器中,将第一图像模型中的纹理坐标发送至片元着色器中,并根据第一图像数据确定纹理坐标所对应的纹理单元,利用第一图形处理器进行渲染,得到大视角下的第一图像。
其中,大视角指的是进行渲染后,视野内至少可以看到完整的图像数据的视角。可以简单理解,大视角是将第一虚拟相机放置于第一图像模型外侧的较远处,从而视野内所看到的第一图像模型所对应的完整平面图像的视角。大视角本质上就是把第一图像模型放入至第一虚拟相机的视锥体内所对应的视角。在大视角中,第一虚拟相机位于第一图像模型的外侧。
如图9所示,第一虚拟相机21位于第一图像模型20的外侧,视锥体即为近平面22和远平面23之间的梯形区域,第一图像模型20完全处于视锥体中。该步骤中得到大视角下的第一图像,便于用户从整体上对图像数据的内容进行理解。
第一图形处理器处理得到大视角下的第一图像后,通过数据展示界面的第一窗口展示第一图像。
204,第二图形处理器根据第二投影矩阵和第二图像数据生成小视角下的第二图像,并通过第二窗口展示第二图像。
具体地,第二图形处理器根据第二投影矩阵和第二图像模型,以及第二图像数据生成小视角下的第二图像,并在第二窗口展示第二图像,其中,第二投影矩阵与第一投影矩阵不相同,第二图像模型和第一图形模型相同。在本申请实施例中,可直接获取第一图像模型,作为第二图像模型。
其中,与第一投影矩阵一样,第二投影矩阵也存在初始第二投影矩阵,即第二投影矩阵的初始值。如在刷新/打开数据展示界面时,所对应的即为初始第二投影矩阵。初始第二投影矩阵可通过如下方式确定:获取设置的第二虚拟相机的初始参数,该初始参数包括第二虚拟相机的位置、欧拉角、第二虚拟相机的镜头到近平面的距离、第二虚拟相机的镜头到远平面的距离等;根据第二虚拟相机的初始参数确定初始第二投影矩阵。该初始第二投影矩阵也可预先进行设定。其中,初始第一投影矩阵和初始第二投影矩阵不相同。第二投影矩阵的值并不一定是初始值,因为会根据用户可在第二窗口或者第一窗口上进行控制操作改变该第二投影矩阵的值。
其中,根据第二投影矩阵和第二图像模型,以及第二图像数据生成小视角下的第二图像的步骤,包括:CPU获取第二图像模型;CPU将第二图像模型传输至第二图形处理器中;第二图形处理器根据第二投影矩阵和第二图像模型,以及第二图像数据生成小视角下的第二图像。具体地,CPU将第二图像模型中的顶点传输至顶点着色器中,将第二图像模型中的纹理坐标拷贝至片元着色器中,并根据第二图像数据确定纹理坐标所对应的纹理单元,利用第二图形处理器进行渲染,生成小视角下的第二图像。
其中,小视角指的是进行渲染后,视野内可以看到局部的图像数据的视角。可以简单理解,小视角是将第二虚拟相机放置于第二图像模型内部,从而视野内所看到的第二图像模型投影后所对应的局部平面图像的视角。
如图10所示,第二虚拟相机31位于第二图像模型30的内部,视锥体即为近平面32和远平面33之间的梯形区域,第二图像模型30的部分处于视锥体中,处于视锥体的部分即为下文中的目标导航区域。其中,第二图像模型30和第一图像模型20相同,在该图中,第一图像模型20和第二图像模型30只是示意而已。
该步骤中得到小视角下的第二图像,以便于用户从局部上(小视角上)对图像数据的内容进行理解,提高对图像数据内容的理解效率。
如图11所示,为本申请实施例提供的数据展示界面的示意图。数据展示界面40上包括位于数据展示界面左侧的一个第一窗口41和位于第一窗口41右侧的两个第二窗口42。在第一窗口41中的第一显示控件上展示的是第一图像。可参看图7,展示的第一图像与图像数据相对应/一致。若在数据展示界面上,仅有一个第二窗口42,那么在该第二窗口内展示一个小视角下的第二图像。若在数据展示界面上,包括多个第二窗口42,则在多个第二窗口上展示不同小视角下的第二图像。多个第二窗口中,每个第二窗口42所对应的小视角不同,所展示的第二图像也显示为不同的图像。
以上步骤中,实现在数据展示界面上的第一窗口展示大视角下的第一图像,在第二窗口展示小视角下的第二图像,如此以得到图像数据在不同视角下的平面图像,可从不同视角来理解图像数据,便于用户对图像数据内容的理解,提高对图像数据内容的理解效率。
205,第三图形处理器根据第二投影矩阵确定导航图像,以通过第一窗口突出显示导航图像,导航图像表示第二图像在第一图像中的位置。
由于第一图像和第二图像是通过同一个图像模型(第一图像模型和第二图像模型相同)投影在大视角、小视角下,且使用相同的纹理(图像数据)贴图得到的。通过大视角下的第一图像从整体上理解图像数据,通过小视角下的第二图像从局部上理解图像数据,实现图像数据的细节展示。在对数据展示界面的窗口(包括第一窗口和第二窗口)进行控制操作时,小视角下的第二图像一直在不停的变化。且第二图像模型是球形,360度,没有边界,因此,在对第一窗口/第二窗口进行控制操作的过程中,所看到的第二图像很容易出现重复,即出现转圈圈的情况。因此,用户在对窗口进行控制时,需要知道当前第二窗口上显示的第二图像对应于第一图像中的哪个部分,以提高用户定位所关注区域的速度。本申请实施例中通过导航图像来表示第二图像在第一图像中的位置。
具体地,导航图像可通过如下步骤进行确定:根据第二投影矩阵确定第二图像在第一图像对应的第一图像模型内的三维导航区域;处理三维导航区域,以得到导航图像,并在第一窗口内突出显示导航图像。
首先,根据根据第二投影矩阵确定第二图像在第一图像对应的第一图像模型内的三维导航区域。
具体地,根据第二投影矩阵和第一图像模型确定第二图像在第一图像对应的第一图像模型内的三维导航区域。
可以理解地,上述根据投影矩阵(分别为第一投影矩阵和第二投影矩阵)和图像模型(分别为第一图像模型和第二图像模型)来确定的第一图像或者第二图像,是通过透视投影的成像原理所得到的图像。如图8所示,图像模型中在近平面11和远平面12之间的点投影,可以在我们视野内被看到。
根据透视投影的成像原理,我们视野可以看到的部分,其实就是图像模型上的顶点乘以投影矩阵后,落在近平面上的顶点,经过归一化、裁剪、以及纹理贴图最终展现出来的效果。因此,若想确定第二图像对应第一图像模型内的三维导航区域,则可通过逆向思维将问题转换为:确定第一图像模型上的哪些顶点可投影至第二投影矩阵的近平面上,确定这些顶点后,将这些顶点所对应的区域作为三维导航区域,对三维导航区域对应的纹理坐标突出指定显示。进一步的,若想确定第一图像模型上的哪些顶点可投影至第二投影矩阵的近平面上,可通过第二投影矩阵和第一图像模型来确定。
具体地,根据第二投影矩阵和第一图像模型确定第二图像对应第一图像模型内的三维导航区域的步骤,包括:CPU获取第一图像模型;将第一图像模型发送至第三GPU;第三GPU根据第二投影矩阵和第一图像模型,从第一图像模型的顶点中,确定投影至第二投影矩阵对应近平面中的导航顶点;将导航顶点所对应的区域作为第二图像对应第一图像模型内的三维导航区域。导航顶点所对应的区域理解为导航顶点所在的区域。
导航顶点理解为第一图像模型中的,可以投影至第二投影矩阵的近平面中的顶点,这些顶点经过渲染后得到导航图像,该导航图像表示第二图像位于第一图像中的位置。具体地,第三GPU根据第二投影矩阵和第一图像模型,从第一图像模型的顶点中,确定投影至第二投影矩阵对应近平面中的导航顶点的步骤,具体包括以下步骤:第三GPU根据第二投影矩阵,确定第一图像模型的顶点投影后的坐标,如将第一图像模型中的顶点乘以第二投影矩阵后,得到每个顶点投影后的坐标;第三GPU根据第一图像模型的顶点投影后的坐标来确定投影至第二投影矩阵对应近平面中的导航顶点。其中,第三GPU根据第一图像模型的顶点投影后的坐标来确定投影至第二投影矩阵对应近平面中的导航顶点的步骤,包括:第三GPU检测每个顶点投影后的坐标是否在第二投影矩阵对应近平面的范围内;若是,则将顶点确定为导航顶点;若否,则将顶点确定为非导航顶点。其中,导航顶点投影到第二投影矩阵的近平面之后可被用户看到,而非导航顶点投影后不可被用户看到。
具体地,若第一图像模型按照经度分为180个圆,每个圆上分配30个点,则顶点数量为180*30。第三GPU将所有顶点坐标作为一个矩阵,利用第二投影矩阵和该顶点的顶点坐标矩阵进行相乘,以确定该顶点投影后的坐标,若投影后的坐标在第二投影矩阵对应的近平面的范围内,则确定为导航顶点,否则,确定该顶点为非导航顶点。可以理解地,第二投影矩阵确定后,第二投影矩阵所对应的近平面的范围也是确定的。若投影后坐标(x1,y1,z1)中的x1和y1的坐标在[-1,1]的范围内,即-1≤x1≤1,且-1≤y1≤1,则确定投影后的坐标在第二投影矩阵对应的近平面的范围内。确定了导航顶点后,将导航顶点所对应的区域作为第二图像对应第一图像模型内的三维导航区域。需要注意的是,这里不需要判断z1投影后的坐标,因此近平面是二维的,所有的z轴坐标是相等的。z1投影后的坐标后续会用来做景深,以实现近大远小的效果。
可以简单理解,在第一图像模型外侧,利用第一投影矩阵与第一图像模型的顶点相乘,经过裁剪渲染等后为第一图像;在第二图像模型内部,利用第二投影矩阵与第二图像模型的顶点相乘,经过裁剪渲染等后为第二图像;那么利用内部的第二投影矩阵和第一图像模型相乘之后,就可以得出第一图像模型中的哪些顶点可投影至第二投影矩阵的近平面上,将所得到的顶点作为导航顶点。
需要注意的是,以上根据第二投影矩阵和第一图像模型确定第二图像对应第一图像模型内的三维导航区域是通过第三GPU来实现的。第三GPU使用矩阵的方式计算第一图像模型的顶点投影后的坐标,大大提高了处理速度,且减少移动终端的耗电量。可以理解地,若使用CPU来计算,则需要CPU遍历第一图像转换模型中的每个顶点,即遍历的顶点数量为180*30,每遍历一个顶点时,根据第二投影矩阵和该顶点,计算顶点投影后的坐标,大大降低了处理速度,且导致移动终端耗电量大。另一方面,计算第一图像模型的顶点投影后的坐标,若采用CPU计算,则CPU浮点运算效率不高,导致误差较大;而GPU专门用来处理浮点运算,效率高,如此大大提高了处理的准确度。可以理解地,在GPU的第三GPU的片元着色器中,可以同时把第一图像模型的顶点和纹理坐标一起传递进来,把第二投影矩阵传递进来,判断第一图像模型的顶点是否是导航顶点(然后直接调整透明度的值),去掉了利用CPU判断顶点是否为导航顶点时复杂的浮点运算操作,提高了处理的效率,减少移动终端的耗电量。
确定了三维导航区域之后,第三图形处理器处理三维导航区域,得到导航图像,以在第一窗口内突出显示导航图像。
具体地,第三GPU确定了导航顶点后,确定导航顶点所对应的纹理坐标;第三GPU根据纹理坐标通过预设方式处理三维导航区域,以在第一窗口内突出显示导航图像。导航图像,表示第二图像在第一图像内的位置。
需要注意的是,若采用CPU来处理,则CPU确定了导航顶点和导航顶点所对应的纹理坐标后,还需将纹理坐标拷贝至GPU中的第三GPU中,以使GPU根据所述纹理坐标处理三维导航区域,以在第一窗口内突出显示所述三维导航区域。而采用本申请实施例中的方案,第三GPU确定导航顶点和对应的纹理坐标,无需将纹理坐标进行拷贝,节约了CPU到GPU拷贝的大量时间,进一步提高了处理效率,进一步减少移动终端的耗电量。
第三GPU根据纹理坐标通过预设方式处理三维导航区域,得到导航图像,并在第一窗口内突出显示导航图像的步骤,包括:第三GPU获取三维导航区域预设纹理和第一预设透明度,该三维导航区域预设纹理包括预设颜色或者预设图片;第三GPU根据三维导航区域预设纹理、第一预设透明度、纹理坐标渲染三维导航区域,得到导航图像,并在第一窗口内突出显示导航图像。具体地,将纹理坐标所对应的纹理设置为三维导航区域预设纹理,并设置纹理坐标所对应的纹理的透明度为第一预设透明度;第三GPU根据所设置的纹理渲染三维导航区域。如此,将三维导航区域渲染为三维导航区域预设纹理,且显示的透明度为第一预设透明度,达到突出显示导航图像的目的,以突出显示第二图像在第一图像中的位置。
进一步地,将三维导航区域之外的区域作为非三维导航区域,具体地,第三GPU根据纹理坐标通过预设方式处理三维导航区域,得到导航图像,并在第一窗口内突出显示导航图像的步骤,包括:
获取三维导航区域预设纹理、第一预设透明度,以及第二预设透明度,其中,第二预设透明度小于第一预设透明度,三维导航区域预设纹理为预设颜色或者预设图片;第三GPU根据三维导航区域预设纹理、第一预设透明度和纹理坐标渲染三维导航区域,得到导航图像,并在第一窗口内突出显示导航图像;第三GPU将非三维导航区域渲染为第二预设透明度。其中,第三GPU根据三维导航区域预设纹理、第一预设透明度和纹理坐标渲染三维导航区域,具体包括:将纹理坐标所对应的纹理设置为三维导航区域预设纹理,并设置纹理坐标所对应的纹理的透明度为第一预设透明度,第三GPU根据所设置的纹理渲染三维导航区域,以将三维导航区域渲染为三维导航区域预设纹理,且显示的透明度为第一预设透明度。
可以理解地,为了突出显示导航图像,渲染后得到的导航图像会显示于第一图像之上。为了不遮挡第一图像中非三维导航区域所对应的区域,以提高显示效果,将第二预设透明度设置为0.8以下,如可设置第二预设透明度为0。为了突出显示导航图像,可将第一预设透明度设置为(0,1)之间,为了不会将第一图像中导航图像所对应的区域完全覆盖,以提高用户体验,可设置第一预设透明度为0.8。其中,预设颜色可以设置为红色,以突出显示导航图像。
如图11中的左图所示,渲染后得到的导航图像43和渲染后的非三维导航区域位于第一图像之上,且当前第一预设透明度不为1,通过导航图像43还可以看到位于导航图像43之下的第一图像对应的部分区域。位于导航图像43之下的第一图像对应的部分区域,与第二图像一致。由于第二预设透明度为0,因此,渲染后的非三维导航区域是透明的,并不能被人眼看到。
在其他的一些情况下,将三维导航区域之外的区域作为非三维导航区域,具体地,第三GPU根据纹理坐标通过预设方式处理三维导航区域,得到导航图像,以在第一窗口内突出显示导航图像的步骤,包括:
第三GPU获取三维导航区域预设纹理、第一预设透明度,以及非三维导航区域预设纹理、第二预设透明度,其中,第二预设透明度小于第一预设透明度,三维导航区域预设纹理为第一预设颜色或者第一预设图片,非三维导航区域预设纹理为第二预设颜色或者第二预设图片;第三GPU根据三维导航区域预设纹理、第一预设透明度、纹理坐标渲染三维导航区域,得到导航图像,并在第一窗口内突出显示导航图像;第三GPU根据非三维导航区域预设纹理、第二预设透明度渲染非三维导航区域。
其中,第三GPU根据三维导航区域预设纹理、第一预设透明度、纹理坐标渲染三维导航区域,包括:第三GPU将纹理坐标所对应的纹理设置为三维导航区域预设纹理,并设置纹理坐标所对应的纹理的透明度为第一预设透明度;根据所设置的纹理渲染三维导航区域,以将三维导航区域渲染为三维导航区域预设纹理,且显示的透明度为第一预设透明度。第三GPU根据非三维导航区域预设纹理、第二预设透明度渲染非三维导航区域,包括:将非三维导航区域所对应的纹理设置为非三维导航区域预设纹理,并设置非三维导航区域所对应的纹理的透明度为第二预设透明度;根据所设置的纹理渲染非三维导航区域,以将非三维导航区域渲染为非三维导航区域预设纹理,且显示的透明度为第二预设透明度。其中,第一预设透明度、第二预设透明度的设置可参看上文中的描述;三维导航区域预设纹理和非三维导航区域预设纹理可相同,也可不同。将导航图像突出显示,将非三维导航区域也利用非三维导航区域预设纹理进行渲染,并设置为第二预设透明度。
上述实施例中区分三维导航区域和非三维导航区域,进一步突出显示导航图像,提高用户体验。
需要注意的是,第三GPU根据纹理坐标通过预设方式处理三维导航区域,得到导航图像,以在第一窗口内突出显示导航图像的步骤的实现场景可以有多个。
如一个实现场景为,在第一窗口中只存在一个显示控件,通过该显示控件既可以显示导航图像(和渲染后的非三维导航区域),也可以显示第一图像。该显示控件中包括两个纹理单元:第一纹理单元和第二纹理单元。具体地,在数据展示界面的第一窗口展示第一图像的步骤之前,还包括:获取第一窗口的显示控件中的第一纹理单元和第二纹理单元;将第二纹理单元设置于第一纹理单元之上。如此,在数据展示界面第一窗口展示第一图像的步骤,包括:在第一窗口的显示控件中的第一纹理单元内展示第一图像。在第一窗口内突出显示导航图像的步骤,包括:在第一窗口的显示控件中的第二纹理单元内突出显示导航图像(和渲染后的非三维导航区域)。需要注意的是,在该种情况下,在执行通过预设方式处理所述三维导航区域,得到导航图像,并在第一窗口显示控件中的第二纹理单元内突出展示导航图像的步骤的同时,还会同步执行根据第一投影矩阵和第一图像模型将所述第一图像数据渲染为大视角下的第一图像,并在第一窗口显示控件中的第一纹理单元内展示第一图像的步骤。可以理解地,因为第一图像和导航图像是在一个显示控件中进行显示的,因此第一图像和导航图像(和非三维导航区域)会同时被渲染出来,如果仅渲染导航图像(和非三维导航区域),那么在第一窗口中将不会显示第一图像,如此达不到本申请的目的。
如另一种实现场景为,在第一窗口中存在两个显示控件,如包括第一显示控件和第二显示控件。第一显示控件用于显示第一图像,第二显示控件用于显示导航图像(和处理后的非三维导航区域)。具体地,在数据展示界面的第一窗口展示第一图像的步骤之前,还包括:获取第一窗口中的第一显示控件和第二显示控件;将第二显示控件设置于第一显示控件之上。如此,在数据展示界面第一窗口展示第一图像的步骤,包括:在数据展示界面第一窗口的第一显示控件中展示第一图像。在第一窗口内突出显示导航图像的步骤,包括:在第一窗口的第二显示控件中突出显示导航图像(和渲染后的非三维导航区域)。如此,通过两个显示控件分别来显示第一图像以及导航图像(和渲染后的非三维导航区域),分开处理,提高处理效率。如在处理三维导航区域时,只需要渲染第二显示控件上显示的内容即可,无需渲染第一显示控件上显示的内容,减少了移动终端的消耗,提高了处理效率和速度。
通过将导航图像进行突出显示,根据导航图像使得用户可以很清晰的知道第二窗口内显示的第二图像,处于第一窗口内显示的第一图像中的哪个位置,以建立不同视角下的图像之间的关联关系,进一步提高对图像数据内容的理解效率,且便于用户调整所观看的区域,便于引导用户快速找到所关注区域,提高用户定位图像数据中所关注区域的速度,提升用户体验。此外,通过第二窗口显示的第二图像,也实现了图像数据的细节展示。
至此,通过数据展示界面的第一窗口展示了第一图像、位于第一图像之上的导航图像,通过数据展示界面的第二窗口展示了第二图像。
206,中央处理器获取用户基于导航图像在第一窗口上的控制操作。
由于导航图像表示第二图像对应于第一图像中的位置,用户可以在数据展示界面的第一窗口中,基于导航图像进行控制操作。该控制操作可以通过用户在第一窗口的导航图像上进行滑动触摸操作来实现,还可以通过其他的方式来实现。在此,先简单描述一下控制操作所带来的效果:用户在第一窗口的导航图像上触摸滑动后,会导致第二窗口的第二投影矩阵发生变化,进而导致第二图像发生变化,从而导致第一窗口的导航图像也发生变化。所以看起来好像是直接控制第一窗口上的导航图像一样。
本申请实施例中以通过滑动触摸操作来实现控制操作为例进行说明。
其中,第一窗口的滑动触摸操作所对应的控制操作的事件包括滑动事件、单击事件等。点击事件用来停止通过第二窗口的控制操作所引入的加速器,可以理解地,在第一窗口上的控制操作不涉及加速器的相关处理。滑动事件用于控制在手指滑动过程中的各种情况。滑动事件包括BeginDrag、DragMove、EndDrag、DragCancle等事件。BeginDrag与touchesBegan对应,理解为手指按下事件;DragMove与touchesMoved对应,理解为手指移动事件;EndDrag与touchesEnded对应,理解为手指抬起事件;DragCancle与touchesCancelled对应,理解为意外中断事件,比如打电话引起的意外中断。
需要注意的是,本申请实施例中的获取用户基于导航图像在第一窗口上的控制操作是在控制操作未结束时进行的。即用户在第一窗口滑动的过程中获取用户的控制操作,当用户的控制操作结束后,结束流程,不再按照本申请实施例中的相应步骤来执行。
207,中央处理器将控制操作转换为三维空间下的角度。
对于移动终端来说,屏幕对应有一个坐标轴,高度方向(竖直方向)对应y轴,宽度方向(水平方向)对应x轴。因此,在滑动触摸操作时所对应的位置坐标一般包括x轴坐标和y轴坐标,屏幕上的x轴坐标和y轴坐标是物理坐标。(0,0)一般在屏幕的左上角,移动终端屏幕的坐标轴中不包括z轴。
在图像模型中,因为openGL中模型的旋转只能绕基轴进行,基轴包括第一基轴、第二基轴、第三基轴,在本申请实施例中,分别对应三维坐标系中的X轴、Y轴和Z轴。即在openGL中引入Z轴,(0,0,0)对应第一窗口的第一图像的正中央或者第二窗口的正中央。物体旋转围绕物体坐标系的基轴旋转,在本申请实施例中,以物体坐标系为右手坐标系,物体坐标系的基轴和世界坐标系的基轴重合为例进行说明。
通过用户基于导航图像在第一窗口上的控制操作如何来确定第二投影矩阵,这是本申请实施例中确定第二投影矩阵的一个核心所在,即是把用户在移动终端屏幕上的手势滑动的控制操作转换为对应的角度;再将对应的角度发送至第二窗口,第二窗口根据接收到的角度来确定第二投影矩阵。其中,角度包括第二图像模型在第三基轴Z轴上的旋转角度和第二投影矩阵对应的第二虚拟相机在第一基轴X轴上的俯仰角度。
具体地,将控制操作转换为三维空间下的角度的步骤,包括:获取第一窗口中第一图像对应的中心点的中心坐标;获取控制操作所对应的控制点的控制坐标;根据中心坐标和控制坐标将控制操作转换为三维空间下的角度。
根据图11和上文中的描述可知,第一图像是将第一图像数据作为纹理单元,整个贴到一半的球体上所得到的大视角下的图像,该第一图像从视觉上看也是通过圆形展示在二维平面上。由于在openGL中将第一窗口中的第一图像的正中央对应作为三维坐标轴的原点,为了方便将控制操作转换为角度,在屏幕所对应的二维坐标系中以第一窗口中的第一图像的中心作为中心点。可以理解地,一般情况下,第一图像的中心点即为第一窗口的中心点,但也会存在并非是第一窗口的中心点的情况,因此该处并不是获取第一窗口的中心点,而是获取第一图像的中心点。
中心坐标和控制坐标都是在屏幕所对应的二维坐标系下的以左上角为原点的坐标。中心坐标可预先计算出来,设第一窗口对应的宽度为windows_width,第一窗口对应的高度为windows_height,若第一图像的中心点为第一窗口的中心点,则中心坐标为(windows_width/2,windows_height/2);若第一图像的中心点不为第一窗口的中心点,中心坐标还需根据第一图像的像素值确定,或者根据其他方式计算出来。
根据中心坐标和控制坐标将控制操作转换为三维空间下的角度,即实现将二维坐标系下的坐标转换为三维空间下的角度,以实现通过控制操作来控制第二图像,达到改变第一图像中导航图像的显示的效果。
如何根据手势滑动的控制点对应的控制坐标和中心点对应的中心坐标来确定对应的角度,这是本申请实施例中将控制操作转换为三维空间下的角度的核心所在。
对于第二图像模型在第三基轴Z轴上的旋转角度来说,具体地,根据中心坐标和控制坐标将控制操作转换为三维空间下的角度的步骤,包括:根据中心坐标和控制坐标确定控制点与中心点所形成的直线在第一窗口上所处的角度;将该角度作为控制操作对应于第二图像模型的旋转角度。
如图12所示,为本申请实施例提供的确定控制点在第一窗口上所处的角度的示意图。图中的A点为中心点,A点的坐标为(x0,y0),B点为控制点,B点的坐标为(x,y)。由于第一图像显示为圆形,将第一图像看作时钟,0点或者12点方向所对应的角度为0度或者360度,3点方向所对应的角度为90度,6点方向所对应的角度为180度,9点方向所对应的角度为270度。
控制点与中心点所形成的直线在第一窗口上所处的角度,理解为,在第一图像中,控制点与中心点所形成的直线与0点方向(或者0度方向)所对应的直线之间的角度。具体地,根据中心坐标和控制坐标确定控制点与中心点所形成的直线在第一窗口上所处的角度的步骤,包括:根据中心坐标和控制坐标确定控制点所在的象限;根据象限、中心坐标和控制坐标确定控制点与中心点所形成的直线在第一窗口上所处的角度。
其中,0到90度为第一象限,90度到180度为第二象限,180到270度为第三象限,270度到360度为第四象限。根据中心坐标和控制坐标确定控制点所在的象限。例如,若x>x0,y<y0,则确定控制点在第一象限,控制点与中心点所形成的直线在第一窗口上所处的角度为控制点与中心点所形成的直线与0点方向所对应直线之间的角度,用arctan(|x-x0|/|y-y0|)来表示,也可以用cos角表示或sin角表示等。例如,若x<x0,y>y0,则确定控制点在第三象限,控制点与中心点所形成的直线在第一窗口上所处的角度为控制点与中心点所形成的直线与6点方向(180度方向)所对应的直线之间的角度arctan(x-x0|/|y-y0|),和6点方向(180度方向)所对应的直线与0点方向所对应的直线之间的角度之和,即arctan(|x-x0|/|y-y0|)+180°。在其他象限的计算方式类似,如在第四现象,则控制点与中心点所形成的直线在第一窗口上所处的角度为arctan(|x-x0|/|y-y0|)+270°。
如图12所示,控制点在第二象限,则控制点与中心点所形成的直线在第一窗口的角度为控制点与中心点所形成的直线与3点方向(90度方向)之间的角度,和3点方向(90度方向)所对应的直线与0点方向所对应的直线之间的角度之和,即arctan(|x-x0|/|y-y0|)+90°。
将控制点与中心点所形成的直线在第一窗口上所处的角度作为控制操作对应于第二图像模型的旋转角度。控制点与中心点所形成的直线在第一窗口上所处的角度为绝对角度;roll、yaw以及pitch等都表示绝对角度,因此本申请实施例中采用roll、yaw以及pitch来表示对应的绝对角度。pitch表示围绕Y轴旋转,也叫做偏航角;yaw表示围绕X轴旋转,也叫俯仰角;roll表示围绕Z轴旋转,也叫翻滚角。用户在第二窗口上的控制操作本质上改变了翻滚角roll、俯仰角yaw,而偏航角pitch一直是固定的,没有变动,默认偏航角pitch为90度,保证第二虚拟相机一直面向Z轴所指的方向。其中,控制操作对应于第二图像模型的旋转角度用roll来表示。
可以理解地,第二图像模型是球形,球形旋转一圈对应的是360度,而第一图像也显示为圆形,控制操作绕着第一图像的中心点滑动一圈,也刚好为360度。另一方面,物体坐标系采用的是右手坐标系,控制操作绕着第一图像的中心点滑动一圈,即相当于绕着物体坐标系三维空间中的Z轴旋转一圈。因此,将控制点与中心点所形成的直线在第一窗口上所处的角度作为控制操作对应于第二图像模型的旋转角度,以将用户基于二维平面上(第一窗口上)的控制操作转换为对应于第二图像模型的旋转角度,也即第二图像模型在第三基轴Z轴上的旋转角度。
对于第二投影矩阵对应的第二虚拟相机在第一基轴X轴上的俯仰角度来说,具体地,根据中心坐标和控制坐标将控制操作转换为三维空间下的角度的步骤,包括:获取第二图像所对应的半径,以及第二虚拟相机所对应的最大俯仰角度;根据中心坐标和控制坐标确定控制点到中心点的控制距离;根据半径和最大俯仰角度确定控制操作的控制距离对应于第二虚拟相机的俯仰角度。
其中,第二图像所对应的半径即为第一图像模型或第二图像模型所对应的球形的半径,用r表示。俯仰角度包括仰角和俯角,仰角即是把第二虚拟相机向上偏移,俯角即是把第二虚拟相机向下偏移。其中,仰角的最大值为90°-δ/2,最小值为0。欧拉角一般预设为30度,欧拉角为视锥体上表面与第二虚拟相机的镜头之间的直线,和视锥体下表面与第二虚拟相机的镜头之间的直线组成的夹角。俯角的最大值和最小值与仰角的最大值和最小值一致,只是方向不同。即俯仰角的最大俯仰角度max为90°-δ/2,最小俯仰角度min为0。
根据中心点对应的中心坐标和控制点对应的控制坐标确定控制点到中心点的控制距离,如已知中心点对应的中心坐标为(x0,y0),控制点对应的控制坐标为(x,y),则控制点到中心点的控制距离m为
根据半径和最大俯仰角度确定控制操作的控制距离对应于第二虚拟相机的俯仰角度的步骤,包括:最大俯仰角度乘以控制距离,再除以半径,以得到控制操作的控制距离对应于第二虚拟相机的俯仰角度。具体地,如公式(1)所示:
其中,a表示控制距离m对应于第二虚拟相机的俯仰角度,即第二虚拟相机在第一基轴X轴上的俯仰角度,max为最大俯仰角度,r为半径,δ为欧拉角。计算出来的控制距离m对应于第二虚拟相机的俯仰角度a是一个绝对角度。
确定了控制距离对应于第二虚拟相机的俯仰角度后,还需要确定俯仰角度的方向。可根据控制坐标和中心坐标来确定第二虚拟相机的俯仰角度的方向。若(x-x0)为负,则确定俯仰角度的方向向下,即俯角;若(x-x0)为正,则确定俯仰角度的方向向上,即仰角。
需要注意的是,上述计算出来的角度,包括第二图像模型在第三基轴Z轴上的旋转角度和第二投影矩阵对应的第二虚拟相机在第一基轴X轴上的俯仰角度,是基于导航图像的控制操作所得,是在第一窗口上得到的。然而第二投影矩阵对应的是第二窗口的投影矩阵。因此,需要将计算出来的角度,发送至第二窗口,以使得第二窗口根据角度更新对应的第二投影矩阵。
208,中央处理器根据角度更新第二窗口对应的第二投影矩阵,并将第二投影矩阵传输至第二图形处理器以及第三图形处理器。
其中,投影矩阵(包括第一投影矩阵和第二投影矩阵)对应为MVP矩阵,其中,MVP=prespective*view*model。model矩阵(也称为模型矩阵)对应的是第二图像模型的操作矩阵,主要操作第二图像模型在X、Y、Z轴上的旋转。view矩阵(也称为视角矩阵)主要对应的是第二虚拟相机的位置、朝向等,prespective矩阵(也称为透视矩阵)对应的是第二虚拟相机的欧拉角、近平面、远平面等信息。
如何将角度对应到第二投影矩阵呢,这也是本申请实施例中确定第二投影矩阵的核心所在:当用户基于导航图像在第一窗口上进行控制操作时,控制操作对应于第二图像模型在第三基轴Z轴上的旋转角度,对应调整的是model矩阵;第二虚拟相机在第一基轴X轴上的俯仰角度,对应调整的是view矩阵。
具体地,根据角度更新第二窗口对应的第二投影矩阵的步骤,包括:根据控制操作对应于第二图像模型的旋转角度更新model矩阵;根据控制操作对应于第二虚拟相机的俯仰角度更新view矩阵;根据model矩阵、view矩阵和prespective矩阵更新第二窗口对应的第二投影矩阵。其中,prespective矩阵没有发生变化。
那么如何根据控制操作对应于第二图像模型的旋转角度更新模型矩阵呢。通过上文中的描述,控制操作对应于第二图像模型的旋转角度用roll来表示,该控制操作对应于第二图像模型的旋转角度是个绝对角度。因此,可将旋转角度roll转换为弧度,再调用rotate函数进行旋转,以得到model矩阵。如model=glm::rotate(glm::radians(roll),glm::vec3(0.0f,0.0f,1.0f))*model,其中,glm::radians表示弧度计算函数。
那么如何根据控制操作对应于第二虚拟相机的俯仰角度更新view矩阵呢。通常一个虚拟相机的位置由以下三个参数确定:camera_pos:虚拟相机的位置点;camera_front:虚拟相机的朝向;camera_up:垂直于虚拟相机的朝向。在数据展示界面上初始化后,未在窗口上进行控制操作之前,camera_pos、camera_front、camera_up都对应有一个初始值。其中,camera_pos保持初始值不改变,如将camera_pos设置于第二图像模型内部的正中心。当用户基于导航图像在第一窗口上进行控制操作后,会导致camera_front发生改变,camera_front发生改变,camera_up也会改变,则view矩阵发生改变。
具体地,根据控制操作对应于第二虚拟相机的俯仰角度更新view矩阵的步骤,包括:将控制操作对应于第二虚拟相机的俯仰角度作为第二虚拟相机的俯仰角,并获取第二虚拟相机的偏航角;根据偏航角和俯仰角更新第二虚拟相机的朝向向量;根据朝向向量更新view矩阵。
如图13所示,为本申请实施例提供的确定第二虚拟相机朝向的示意图。其中,C点为第二虚拟相机的位置camera_pos,CD为第二虚拟相机的朝向camera_front,其中,D点的坐标为(x,y,z)。需要注意是,第二虚拟相机的朝向camera_front在CD这条射线上,CD的长度可以是任意值。为方便计算,假设CD长度为1,且已知偏航角pitch、俯仰角yaw。可按照公式(2)、公式(3)、公式(4)来计算D点的坐标,从而得到第二虚拟相机的朝向camera_front的值:
x=CD×cos(yaw)×cos(pitch) (2)
y=CD×sin(yaw) (3)
z=CD×cos(yaw)×sin(pitch) (4)
计算出第二虚拟相机的朝向camera_front后,可进一步计算camera_up的值。
由于camera_front和camera_up可确定一个平面,而控制操作对应绕y轴上下仰,因此(0,1,0)的点一定在camera_front和camera_up确定的平面上。可设置一个过渡向量up_help以来帮助计算camera_up的值。设up_help为(0,1,0)。
利用过渡向量up_help和计算出的第二虚拟相机的朝向camera_front,以得到第二虚拟相机的右向量right,具体地,将过渡向量up_help和计算出的第二虚拟相机的朝向向量camera_front进行叉乘,再进行归一化,以得到右向量right,根据叉乘的原理,得到的右向量right垂直于第二虚拟相机的朝向camera_front。如glm::vec3 right=glm::normalize(glm::cross(up_help,camera_front)),其中,glm::cross表示叉乘。再利用右向量right和计算出的第二虚拟相机的朝向向量camera_front来得到camera_up的值,具体地,将第二虚拟相机的朝向向量camera_front和右向量right进行叉乘,再进行归一化,以得到camera_up的值。如camera_up=glm::normalize(glm::cross(camera_front,right))。根据叉乘的原理,得到的camera_up垂直于第二虚拟相机的朝向camera_front。
得到camera_pos、camera_front、camera_up之后,利用camera_pos、camera_front、camera_up来确定view矩阵。具体地,调用lookAt函数来实现,view=glm::lookAt(camera_pos,camera_front,camera_up),即可得到view矩阵。
至此,得到了更新后的view矩阵、更新后的model矩阵,根据更新后的view矩阵、更新后的model矩阵和prespective矩阵生成第二投影矩阵,以更新第二窗口对应的第二投影矩阵。如此,将用户基于导航图像在第一窗口上的控制操作转换为角度,并根据角度更新第二窗口对应的第二投影矩阵,以通过控制操作更新第二投影矩阵。
上述根据用户在第一窗口上的控制操作更新第二窗口对应的第二投影矩阵的过程中,分别对应有两个线程,一个线程是主线程ui线程,以用于捕捉手势,如捕捉BeginDrag、DragMove、EndDrag、DragCancle等滑动事件,并根据手势滑动确定所对应的角度。另一个线程是gl线程,刷新频率为一秒60帧。gl线程根据角度生成第二投影矩阵,以更新第二窗口所对应的第二投影矩阵。
更新第二投影矩阵后,将第二投影矩阵传输至第二GPU,以及第三GPU,以使得第二GPU和第三GPU根据第二投影矩阵分别进行不同的处理。
209,第二图形处理器根据第二投影矩阵和第二图像数据更新小视角下的第二图像,并通过第二窗口更新展示第二图像。
具体地,根据第二投影矩阵和第二图像模型,以及第二图像数据更新小视角下的第二图像。其中,包括:CPU获取第二图像模型;CPU将第二图像模型传输至第二GPU中;第二GPU根据第二投影矩阵和第二图像模型,以及第二图像数据更新小视角下的第二图像。具体地,CPU将第二图像模型中的顶点传输至顶点着色器中,将第二图像模型中的纹理坐标拷贝至片元着色器中,并根据第二图像数据确定纹理坐标所对应的纹理单元,利用第二GPU进行渲染,更新小视角下的第二图像。
具体地,请参看上文中的根据第二投影矩阵和第二图像数据生成小视角下的第二图像的步骤对应的描述,在此不再赘述。
210,第三图形处理器根据第二投影矩阵更新导航图像,以通过第一窗口突出显示更新后的导航图像。
具体地,第三图形处理器根据第二投影矩阵更新导航图像的步骤,包括:第三图形处理器根据第二投影矩阵更新第二图像在第一图像所对应的第一图像模型内的三维导航区域;处理三维导航区域,得到更新的导航图像,通过第一窗口突出显示更新后的导航图像。
其中,根据第二投影矩阵和第一图像模型更新第二图像对应第一图像模型内的三维导航区域的步骤,包括:第三GPU检测是否存在第一图像模型,若不存在,通过CPU获取第一图像模型;将第一图像模型发送至第三GPU;第三GPU根据第二投影矩阵和第一图像模型,从第一图像模型的顶点中,确定投影至第二投影矩阵对应近平面中的导航顶点;将导航顶点所对应的区域作为第二图像对应第一图像模型内的三维导航区域。
具体地,根据第二投影矩阵和第一图像模型,从第一图像模型的顶点中,确定投影至第二投影矩阵对应近平面中的导航顶点的步骤,具体包括以下步骤:第三GPU根据第二投影矩阵,确定第一图像模型的顶点投影后的坐标,如将第一图像模型中的顶点乘以第二投影矩阵后,得到每个顶点投影后的坐标;第三GPU根据第一图像模型的顶点投影后的坐标来确定投影至第二投影矩阵对应近平面中的导航顶点。
具体实现原理请参看上文中的根据第二投影矩阵和第一图像模型确定第二图像对应第一图像模型内的三维导航区域步骤对应的描述,在此不再赘述。
确定了导航区域了之后,第三图形处理器通过预设方式处理三维导航区域,得到更新后的导航图像,以在第一窗口内突出显示更新后的导航图像。
具体地,第三GPU确定了更新后的导航顶点后,确定更新后的导航顶点所对应的纹理坐标;第三GPU根据纹理坐标通过预设方式处理三维导航区域,得到更新后的导航图像,以在第一窗口内突出显示导航图像。
其中,上述所述的第三GPU通过预设方式处理三维导航区域,得到更新后的导航图像,以在第一窗口内突出显示更新后的导航图像的步骤,以参看上文中的第三GPU根据纹理坐标通过预设方式处理三维导航区域,得到导航图像,以在第一窗口内突出显示导航图像的步骤对应的描述,在此不再赘述。
需要注意的是,以上步骤204和步骤205、步骤209和步骤210可串行执行,也可并行执行;并行执行以提高处理效率。
通过上述方案将用户基于导航图像在第一窗口上的控制操作转换为三维空间下的角度,如此,将在二维空间上的控制操作转换为三维空间上的第二图像模型的旋转角度和第二虚拟相机的俯仰角度,达到对第二窗口上的第二图像的控制;且将当前第二窗口上显示的第二图像对应于第一图像中的位置进行突出显示,根据导航图像使得用户可以很清晰的知道第二窗口内显示的第二图像,处于第一窗口内显示的第一图像中的哪个位置,以建立不同视角下的图像之间的关联关系,进一步提高对图像数据内容的理解效率,且便于用户调整所观看的区域,便于引导用户快速找到所关注区域,提高用户定位图像数据中所关注区域的速度,提升用户体验。此外,通过第二窗口显示的第二图像,也实现了图像数据的细节展示。本申请实施例中的数据处理方法可应用于更多应用场景。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令(计算机程序)来完成,或通过指令(计算机程序)控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。为此,本申请实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的数据处理方法中任一实施例的步骤。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一数据处理方法实施例中的步骤,因此,可以实现本申请实施例所提供的任一数据处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种数据处理方法、移动终端以及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据处理方法,其特征在于,适用于移动终端,所述移动终端包括中央处理器、存储器以及第一图形处理器、第二图形处理器、第三图形处理器;所述数据处理方法包括:
所述中央处理器根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置;
所述中央处理器复制图像数据得到第一图像数据和第二图像数据,并传输所述第一图像数据至所述第一图形处理器、传输所述第二图像数据至所述第二图形处理器;
所述第一图形处理器将所述第一图像数据渲染为大视角下的第一图像,并通过数据展示界面的第一窗口展示所述第一图像;
所述第二图形处理器根据第二投影矩阵和所述第二图像数据生成小视角下的第二图像,并通过所述第二窗口展示所述第二图像;
所述第三图形处理器根据所述第二投影矩阵确定导航图像,以通过所述第一窗口突出显示所述导航图像,所述导航图像表示所述第二图像在所述第一图像中的位置;
所述中央处理器获取用户基于所述导航图像在第一窗口上的控制操作;
所述中央处理器将所述控制操作转换为三维空间下的角度;
所述中央处理器根据所述角度更新所述第二窗口对应的第二投影矩阵,并将所述第二投影矩阵传输至所述第二图形处理器以及所述第三图形处理器;
所述第二图形处理器根据所述第二投影矩阵和所述第二图像数据更新小视角下的第二图像,并通过所述第二窗口更新展示所述第二图像;
所述第三图形处理器根据所述第二投影矩阵更新导航图像,以通过所述第一窗口突出显示更新后的导航图像。
2.根据权利要求1所述的数据处理方法,其特征在于,所述角度包括所述控制操作对应于所述第二图像模型的旋转角度,和所述控制操作对应于第二投影矩阵的第二虚拟相机的俯仰角度,根据所述角度更新所述第二窗口对应的第二投影矩阵的步骤,包括:
根据所述控制操作对应于所述第二图像模型的旋转角度更新模型矩阵;
根据所述控制操作对应于第二虚拟相机的俯仰角度更新视角矩阵;
根据所述模型矩阵、所述视角矩阵和透视矩阵更新所述第二窗口对应的第二投影矩阵。
3.根据权利要求2所述的数据处理方法,其特征在于,所述根据所述控制操作对应于第二虚拟相机的俯仰角度更新视角矩阵的步骤,包括:
将所述控制操作对应于第二虚拟相机的俯仰角度作为第二虚拟相机的俯仰角,并获取所述第二虚拟相机的偏航角;
根据所述偏航角和所述俯仰角更新所述第二虚拟相机的朝向向量;
根据所述朝向向量更新所述视角矩阵。
4.根据权利要求1所述的数据处理方法,其特征在于,所述在数据展示界面的第一窗口展示所述第一图像的步骤之前,还包括:
获取所述第一窗口中的第一显示控件和第二显示控件;
将所述第二显示控件设置于所述第一显示控件之上;
所述通过数据展示界面的第一窗口展示所述第一图像的步骤,包括:通过数据展示界面第一窗口的第一显示控件中展示所述第一图像;
所述通过所述第一窗口突出显示所述导航图像的步骤,包括:通过所述第一窗口的第二显示控件突出展示所述导航图像。
5.根据权利要求1所述的数据处理方法,其特征在于,所述第三图形处理器根据所述第二投影矩阵更新导航图像的步骤,包括:
所述第三图形处理器根据所述第二投影矩阵更新所述第二图像在所述第一图像对应的所述第一图像模型内的三维导航区域;
所述第三图形处理器处理所述三维导航区域,得到更新后的导航图像,以通过所述第一窗口突出显示更新后的导航图像。
6.根据权利要求1所述的数据处理方法,其特征在于,所述中央处理器根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置的步骤,包括:
所述中央处理器生成所述数据展示界面对应的初始界面;
通过所述初始界面接收当前用户的历史操作数据;
根据所述初始界面中各单位区域内被触发的历史操作数据,将所述初始界面划分为至少两个操作热度不同的显示区域;
根据图像数据展示中的各展示窗口的历史操作频率数据,将各展示窗口标记为操作需求度不同的展示窗口,所述展示窗口包括第一窗口和第二窗口;
根据操作热度和所述操作需求度的对应关系,在所述初始界面对应的不同操作热度的显示区域内显示对应操作需求度的展示窗口,得到所述数据展示界面。
7.一种移动终端,其特征在于,所述移动终端包括:一个或多个中央处理器;存储器;第一图形处理器、第二图形处理器、第三图形处理器,以及一个或多个计算机程序,其中所述中央处理器和所述存储器、所述图形处理器相连接,所述一个或多个计算机程序被存储于所述存储器中,并配置为由所述中央处理器和所述图形处理器执行如下步骤:
所述中央处理器根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置;
所述中央处理器复制图像数据得到第一图像数据和第二图像数据,并传输所述第一图像数据至所述第一图形处理器、传输所述第二图像数据至所述第二图形处理器;
所述第一图形处理器将所述第一图像数据渲染为大视角下的第一图像,并通过数据展示界面的第一窗口展示所述第一图像;
所述第二图形处理器根据第二投影矩阵和所述第二图像数据生成小视角下的第二图像,并通过所述第二窗口展示所述第二图像;
所述第三图形处理器根据所述第二投影矩阵确定导航图像,以通过所述第一窗口突出显示所述导航图像,所述导航图像表示所述第二图像在所述第一图像中的位置;
所述中央处理器获取用户基于所述导航图像在第一窗口上的控制操作;
所述中央处理器将所述控制操作转换为三维空间下的角度;
所述中央处理器根据所述角度更新所述第二窗口对应的第二投影矩阵,并将所述第二投影矩阵传输至所述第二图形处理器以及所述第三图形处理器;
所述第二图形处理器根据所述第二投影矩阵和所述第二图像数据更新小视角下的第二图像,并通过所述第二窗口更新展示所述第二图像;
所述第三图形处理器根据所述第二投影矩阵更新导航图像,以通过所述第一窗口突出显示更新后的导航图像。
8.根据权利要求7所述的移动终端,其特征在于,所述角度包括所述控制操作对应于所述第二图像模型的旋转角度,和所述控制操作对应于第二投影矩阵的第二虚拟相机的俯仰角度,所述中央处理器在执行所述根据所述角度更新所述第二窗口对应的第二投影矩阵的步骤时,具体执行:
根据所述控制操作对应于所述第二图像模型的旋转角度更新模型矩阵;
根据所述控制操作对应于第二虚拟相机的俯仰角度更新视角矩阵;
根据所述模型矩阵、所述视角矩阵和透视矩阵更新所述第二窗口对应的第二投影矩阵。
9.根据权利要求8所述的移动终端,其特征在于,所述中央处理器在执行所述根据所述控制操作对应于第二虚拟相机的俯仰角度更新视角矩阵的步骤时,具体执行:
将所述控制操作对应于第二虚拟相机的俯仰角度作为第二虚拟相机的俯仰角,并获取所述第二虚拟相机的偏航角;
根据所述偏航角和所述俯仰角更新所述第二虚拟相机的朝向向量;
根据所述朝向向量更新所述视角矩阵。
10.根据权利要求7所述的移动终端,其特征在于,所述中央处理器在执行根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置的步骤时,具体执行:
生成所述数据展示界面对应的初始界面;
通过所述初始界面接收当前用户的历史操作数据;
根据所述初始界面中各单位区域内被触发的历史操作数据,将所述初始界面划分为至少两个操作热度不同的显示区域;
根据图像数据展示中的各展示窗口的历史操作频率数据,将各展示窗口标记为操作需求度不同的展示窗口,所述展示窗口包括第一窗口和第二窗口;
根据操作热度和所述操作需求度的对应关系,在所述初始界面对应的不同操作热度的显示区域内显示对应操作需求度的展示窗口,得到所述数据展示界面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011121031.4A CN112306344B (zh) | 2020-10-19 | 2020-10-19 | 一种数据处理方法及移动终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011121031.4A CN112306344B (zh) | 2020-10-19 | 2020-10-19 | 一种数据处理方法及移动终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112306344A CN112306344A (zh) | 2021-02-02 |
CN112306344B true CN112306344B (zh) | 2023-11-28 |
Family
ID=74328405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011121031.4A Active CN112306344B (zh) | 2020-10-19 | 2020-10-19 | 一种数据处理方法及移动终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112306344B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107015654A (zh) * | 2017-04-10 | 2017-08-04 | 深圳大学 | 基于增强现实的导航方法及装置 |
CN107564089A (zh) * | 2017-08-10 | 2018-01-09 | 腾讯科技(深圳)有限公司 | 三维图像处理方法、装置、存储介质和计算机设备 |
CN111641871A (zh) * | 2020-05-29 | 2020-09-08 | 广州华多网络科技有限公司 | 直播视频的展示方法、装置、终端和可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10089750B2 (en) * | 2017-02-02 | 2018-10-02 | Intel Corporation | Method and system of automatic object dimension measurement by using image processing |
US20180347967A1 (en) * | 2017-06-01 | 2018-12-06 | RGBDsense Information Technology Ltd. | Method and apparatus for generating a random coding pattern for coding structured light |
-
2020
- 2020-10-19 CN CN202011121031.4A patent/CN112306344B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107015654A (zh) * | 2017-04-10 | 2017-08-04 | 深圳大学 | 基于增强现实的导航方法及装置 |
CN107564089A (zh) * | 2017-08-10 | 2018-01-09 | 腾讯科技(深圳)有限公司 | 三维图像处理方法、装置、存储介质和计算机设备 |
CN111641871A (zh) * | 2020-05-29 | 2020-09-08 | 广州华多网络科技有限公司 | 直播视频的展示方法、装置、终端和可读存储介质 |
Non-Patent Citations (2)
Title |
---|
Three-dimensional light-field display with enhanced horizontal viewing angle by introducing a new lenticular lens array;Yuedi Wang.et.;《Optics Communications》;第477卷;第126327页 * |
基于混合地图的护理机器人室内导航方法;张立志等;《北京航空航天大学学报》;第44卷(第5期);第991-1000页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112306344A (zh) | 2021-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12056813B2 (en) | Shadow rendering method and apparatus, computer device, and storage medium | |
US20210225067A1 (en) | Game screen rendering method and apparatus, terminal, and storage medium | |
CN111833243B (zh) | 一种数据展示方法、移动终端和存储介质 | |
CN111436208B (zh) | 一种测绘采样点的规划方法、装置、控制终端及存储介质 | |
CN112884873B (zh) | 虚拟环境中虚拟物体的渲染方法、装置、设备及介质 | |
WO2021004412A1 (zh) | 手持输入设备及其指示图标的显示位置控制方法和装置 | |
CN112017133B (zh) | 一种图像展示方法、装置及电子设备 | |
CN112150560B (zh) | 确定消失点的方法、装置及计算机存储介质 | |
CN112308768B (zh) | 一种数据处理方法、装置、电子设备以及存储介质 | |
US20240144617A1 (en) | Methods and systems for anchoring objects in augmented or virtual reality | |
CN115797535A (zh) | 一种三维模型纹理贴图方法及相关装置 | |
CN112750190A (zh) | 三维热力图生成方法、装置、设备及存储介质 | |
CN112181230A (zh) | 一种数据展示方法、装置以及电子设备 | |
CN112308767B (zh) | 一种数据展示方法、装置、存储介质以及电子设备 | |
CN113797531B (zh) | 遮挡剔除实现方法、装置、计算机设备及存储介质 | |
CN109146775B (zh) | 二维图片转换方法、装置、设备及存储介质 | |
CN118135081A (zh) | 模型生成方法、装置、计算机设备和计算机可读存储介质 | |
CN112308766B (zh) | 一种图像数据展示方法、装置、电子设备及存储介质 | |
CN112306344B (zh) | 一种数据处理方法及移动终端 | |
CN117274475A (zh) | 光晕效果的渲染方法、装置、电子设备和可读存储介质 | |
CN110502305B (zh) | 一种动态界面的实现方法、装置及相关设备 | |
CN118556254A (zh) | 图像渲染方法、装置及电子设备 | |
CN112308757B (zh) | 一种数据展示方法和移动终端 | |
CN109658495B (zh) | 环境光遮蔽效果的渲染方法、装置及电子设备 | |
CN112184543B (zh) | 一种用于鱼眼摄像头的数据展示方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |