CN112308767B - 一种数据展示方法、装置、存储介质以及电子设备 - Google Patents
一种数据展示方法、装置、存储介质以及电子设备 Download PDFInfo
- Publication number
- CN112308767B CN112308767B CN202011119722.0A CN202011119722A CN112308767B CN 112308767 B CN112308767 B CN 112308767B CN 202011119722 A CN202011119722 A CN 202011119722A CN 112308767 B CN112308767 B CN 112308767B
- Authority
- CN
- China
- Prior art keywords
- image
- window
- angle
- data
- control
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 239000011159 matrix material Substances 0.000 claims abstract description 188
- 238000012545 processing Methods 0.000 claims description 44
- 230000000007 visual effect Effects 0.000 claims description 41
- 238000006243 chemical reaction Methods 0.000 claims description 14
- 230000001960 triggered effect Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 21
- 238000009877 rendering Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 15
- 230000000694 effects Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000003384 imaging method Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 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
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004458 analytical method 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
- 230000002688 persistence 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/04—Context-preserving transformations, e.g. by using an importance map
- G06T3/047—Fisheye or wide-angle transformations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/003—Navigation within 3D models or images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请实施例提供一种数据展示方法、装置、存储介质和电子设备,涉及智慧城市技术领域。该方法包括:根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置,提高用户操作效率;在第一窗口上展示大视角下的第一图像,以及表示第一图像在第二图像中的位置的导航图像,在第二窗口上展示小视角下的第二图像;获取用户在数据展示界面的第一窗口上的控制操作;将控制操作转换为三维空间下的角度;根据角度得到更新的第二投影矩阵;根据更新后的第二投影矩阵更新小视角下的第二图像并进行展示,提高对图像数据内容的理解效率;再根据第二投影矩阵更新导航图像并进行展示,提高用户定位图像数据中所关注区域的速度。
Description
技术领域
本申请涉及智慧城市技术领域,具体涉及一种数据展示方法、装置、存储介质以及电子设备。
背景技术
在传统的视频监控中,主要是2D平面图片的展示,但是随着计算机技术的崛起,鱼眼图像在监控行业中的优势越发明显。传统的平面摄像头中只能监控一个方位的场景,但鱼眼摄像头由于拥有更广的视角,能监控到视野更加广阔,这样原本需要多个平面摄像头监控的场地,现在只需要一个鱼眼摄像头就可以解决,大大节约了硬件成本。
由于鱼眼摄像头拥有更广的视角,所拍摄得到的鱼眼图像(图像数据)往往具有很大的畸变,且拍摄得到的鱼眼图像通常通过圆形来展示,不太好理解,需要专业技术人员才能看懂,导致鱼眼图像的应用不能很好的推广开来。
发明内容
本申请实施例提供一种数据展示方法、装置、存储介质以及电子设备,可提高对图像数据内容的理解效率,且提高用户定位图像数据中所关注区域的速度。
本申请实施例提供了一种数据展示方法,包括:
根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置;
通过所述数据展示界面的第一窗口显示大视角下的第一图像,通过所述第二窗口显示小视角下的第二图像,并通过第一窗口显示导航图像,所述导航图像表示所述第二图像在所述第一图像中的位置;
获取用户基于所述导航图像在所述第一窗口上的控制操作;
将所述控制操作转换为三维空间下的角度;
根据所述角度更新所述第二窗口对应的第二投影矩阵;
根据所述第二投影矩阵更新小视角下的第二图像,并在所述第二窗口更新展示所述第二图像;
根据所述第二投影矩阵更新导航图像,并在第一窗口内突出显示所述导航图像。
本申请实施例还提供了一种数据展示装置,包括:
界面确定模块,用于根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置;
展示模块,用于通过所述数据展示界面的第一窗口显示大视角下的第一图像,通过所述第二窗口显示小视角下的第二图像,并通过第一窗口显示导航图像,所述导航图像表示所述第二图像在所述第一图像中的位置;
操作获取模块,用于获取用户基于所述导航图像在所述第一窗口上的控制操作;
角度转换模块,将所述控制操作转换为三维空间下的角度;
矩阵更新模块,用于根据所述角度更新所述第二窗口对应的第二投影矩阵;
第一更新处理模块,用于根据所述第二投影矩阵更新小视角下的第二图像;所述展示模块,还用于更新所述第二图像后,在所述第二窗口更新展示所述第二图像;
第二更新处理模块,用于根据所述第二投影矩阵更新导航图像;所述展示模块,还用于更新所述导航图像后,在第一窗口内突出显示所述导航图像。
本申请实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述处理器和所述存储器相连接,所述一个或多个计算机程序被存储于所述存储器中,并配置为由所述处理器执行上述所述的数据展示方法。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现上述任一种数据展示方法中的步骤。
本申请实施例首先根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置,确定的第一窗口和第二窗口的大小和位置考虑了用户的历史操作数据,使得第一窗口和第二窗口的大小和位置的确定符合用户操作习惯,提高用户的操作效率;再通过所确定的第一窗口显示大视角下的第一图像,通过第二窗口显示小视角下的第二图像,并通过第一窗口显示导航图像,所述导航图像表示第二图像在第一图像中的位置,其中,第一图像和第二图像是图像数据在不同视角下的平面图像,如此可从不同视角来理解图像数据,便于用户对图像数据内容的理解,提高对图像数据内容的理解效率;然后获取用户基于导航图像在第二窗口上的控制操作,将控制操作转换为三维空间下的角度,根据角度更新第二窗口对应的第二投影矩阵,如此,将用户基于导航图像在第一窗口上的控制操作转换为第二窗口对应的第二投影矩阵,实现通过第一窗口上的控制操作来控制第二窗口内的第二图像的显示;最后根据第二投影矩阵更新导航图像,并在第一窗口内突出显示导航图像,如此,实现根据用户基于导航图像在第一窗口上的控制操作,来实时更新第二投影矩阵,从而实时更新第二图像,既而实时更新导航图像,达到根据用户基于导航图像在第一窗口上的控制操作,实时更新数据展示界面的显示;其中,根据导航图像使得用户可以很清晰的知道第二窗口内显示的第二图像,处于第一窗口内显示的第一图像中的哪个位置,以建立不同视角下的图像之间的关联关系,进一步提高对图像数据内容的理解效率,且便于用户调整所观看的区域,便于引导用户快速找到所关注区域,提高用户定位图像数据中所关注区域的速度,提升用户体验;通过第二窗口显示的小视角下的第二图像,也实现了图像数据的细节展示。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的数据处理系统的场景示意图;
图2是本申请实施例提供的图像数据展示方法的流程示意图;
图3是本申请实施例提供的图像数据展示方法的子流程示意图;
图4a至图4b是本申请实施例提供的初始界面的示意图;
图5a是本申请实施例提供的初始界面的界面操作效果示意图;
图5b是本申请实施例提供的初始界面的划分效果示意图;
图6是本申请实施例提供的填充初始界面后得到的数据展示界面的示意图;
图7是本申请实施例提供的鱼眼摄像头直接采集的图像数据的示意图;
图8是本申请实施例提供的透视投影的成像原理示意图;
图9是本申请实施例提供的大视角的场景示意图;
图10是本申请实施例提供的小视角的场景示意图;
图11是本申请实施例提供的数据展示界面展示图像的示意图;
图12是本申请实施例提供的确定控制点在第一窗口上所处角度的示意图;
图13是本申请实施例提供的确定第二虚拟相机朝向的示意图;
图14是本申请实施例提供的数据展示装置的示意性框图;
图15是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种数据展示方法、装置、电子设备和存储介质。本申请实施例提供的任一种数据展示装置,可以集成在电子设备中。该电子设备包括但不限于智能手机、平板电脑、笔记本电脑、智能电视、智能机器人、个人计算机(PC,Personal Computer)、可穿戴设备、服务器计算机、车载终端,等等。
本申请实施例中的第一图像和第二图像,可以是对普通摄像头(各种平面摄像头等)采集的图像数据进行处理后得到的不同视角下的图像,还可以是对鱼眼摄像头采集的图像数据进行处理后得到的不同视角下的图像。因为鱼眼摄像头采集的图像数据不容易理解,因此,本申请实施例中将以对鱼眼摄像头采集的图像数据进行处理为例进行说明;普通摄像头采集的图像数据的处理一致,将不再赘述。
请参阅图1,是本申请实施例提供的数据展示系统的场景示意图。该数据展示系统包括鱼眼摄像头和电子设备。鱼眼摄像头的数量可以为一个或多个,电子设备也可以为一个或者多个,鱼眼摄像头与电子设备可以直接连接,也可以通过网络连接。鱼眼摄像头与电子设备可以通过有线的方式连接,也可以通过无线的方式连接等。如图1实施例中的鱼眼摄像头与电子设备通过网络连接。
鱼眼摄像头可进行拍摄,以得到鱼眼图像的初始图像数据,并将拍摄的初始图像数据发送至电子设备;电子设备接收鱼眼摄像头拍摄的初始图像数据,在一种情况下,将所接收的初始图像数据直接作为鱼眼摄像头采集的图像数据,在另一种情况下,将所接收的初始图像数据进行校正,以得到鱼眼摄像头采集的图像数据,接着对图像数据进行相应处理并进行数据展示。其中,校正的目的是为了降低或者消除初始图像数据中的畸变。
图2是本申请实施例提供的数据展示方法的流程示意图。该数据展示方法运行于电子设备中,该数据展示方法包括如下步骤:
101,根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置。
其中,历史操作数据可以是用户在数据展示界面上的历史操作数据,还可以是用户在数据展示界面所对应的初始界面上的历史操作数据。为了更好的确定用户操作习惯,降低已确定的数据展示界面上的已有控件对用户操作习惯的影响,以数据展示界面所对应的初始界面上的历史操作数据为准,本申请实施例以初始界面上的历史操作数据为例进行说明。
可根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置,可以理解地,确定的第一窗口和第二窗口的大小和位置考虑了用户的历史操作数据,使得第一窗口和第二窗口的大小和位置的确定符合用户操作习惯,提高用户在数据展示界面上的操作效率。
在一实施例中,根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置的步骤,包括步骤201~205。如图3所示。
201,生成数据展示界面对应的初始界面。
初始界面是与数据展示界面相同尺寸的界面。
具体地,生成数据展示界面对应的初始界面的步骤,包括:获取数据展示界面的显示尺寸;根据数据展示界面的显示尺寸确定初始界面的显示尺寸;根据初始界面的显示尺寸生成数据展示界面的初始界面。
在一些情况下,当数据展示界面存在无效操作区域时,具体地,生成数据展示界面对应的初始界面的步骤,包括:获取数据展示界面中有效操作区域的尺寸和位置,以及数据显示界面的显示尺寸;根据数据展示界面的显示尺寸确定初始界面的显示尺寸;根据初始界面的显示尺寸生成数据展示界面的初始界面;根据有效操作区域的尺寸和位置,确定初始界面内用于采集历史操作数据的有效采集区域的尺寸和位置。其中,无效操作区域指的是数据展示界面上即使操作也不响应该操作的区域。
其中,所生成的初始界面可以为空白界面,如图4a所示;或者所生成的初始界面为包括均匀分布有相同操作单位区域的界面,如图4b所示。其中,单位区域是指初始界面(UI)中可以被操作的最小区域。
202,通过初始界面接收当前用户的历史操作数据。
用户可在初始界面上进行操作,通过初始界面接收当前用户的历史操作数据。其中,历史操作数据可以是预设时间内的操作数据。
203,根据初始界面中各单位区域内被触发的历史操作数据,将初始界面划分为至少两个操作热度不同的显示区域。
初始界面中各单位区域可通过用户手指来触发,也可通过鼠标或激光笔等具有指针的输入设备来触发。触发各单位区域的操作可以是点击操作、双击操作以及长按操作中的至少一种。用户在对初始界面中的各单位区域进行操作后,电子设备即可整合分析所有操作数据以得到历史操作数据。例如,电子设备屏幕上显示的初始界面为空白界面,用户使用鼠标在该空白界面中的任意区域进行点击操作后,电子设备可基于该点击操作分析得到对应的操作数据,如操作位置,若用户在预设时间内持续或间断对该空白界面进行操作,则电子设备可获取到该预设时间内初始界面被触发的历史操作数据,如包括操作次数、操作位置等数据。
得到历史操作数据后,将初始界面划分为至少两个操作热度不同的显示区域。其中,显示区域是指显示界面中相对独立的界面子区域;操作热度是指显示区域被操作的程度,不同显示区域的操作热度可按单位时间内被操作的操作次数计算,也可按操作次数占比计算,例如,20%、80%等。
根据历史操作数据中的操作位置和需独立显示的展示窗口的窗口数量来划分显示区域,根据历史操作数据中的操作次数来确定显示区域的操作热度。如图5a所示,初始界面被触发的操作位置体现为各个圆点的位置,该位置可以换算成初始界面上的坐标信息,如此,各个圆点的位置即为历史操作的操作坐标。假设需显示的展示窗口的窗口数量为三个,则将初始界面划分为3个显示区域,该3个显示区域的位置和大小由历史操作数据中的操作位置来确定。初始界面被触发的操作次数体现为圆点的总数量。如图5b所示,初始界面划分为3个独立显示的显示区域。其中,区域(1)中包括7个被触发的圆点,区域(2)包括3个被触发的圆点,区域(3)包括1个被触发的圆点,对应的操作热度大小关系为:区域(1)大于区域(2),区域(2)>区域(3)。
204,根据图像数据展示功能中的各展示窗口的历史操作频率数据,将各展示窗口标记为操作需求度不同的展示窗口,展示窗口包括第一窗口和第二窗口。
历史操作频率数据是指各展示窗口在预设时长内被操作的频率数,例如,过去24小时内使用次数为5。操作需求度是指各展示窗口需要被操作的程度,不同展示窗口的操作需求度可按单位时间内被操作的操作次数计算,也可按操作次数占比计算,例如20%、80%等。其中,展示窗口包括第一窗口和第二窗口。
电子设备获取图像数据展示中各展示窗口的历史操作频率数据,并根据该历史操作频率数据,将各展示窗口标记为操作需求度不同的展示窗口,确定操作需求度的依据为各展示窗口的历史操作频率数据,历史操作频率数据中的数值越大,表示操作需求度越高,历史操作频率数据中的数值越小,表示操作需求度越低。根据历史操作频率数据,对各展示窗口标记上其专属的操作需求度,便可根据该操作需求度确定各展示窗口在显示界面中所属的显示区域,进而将展示窗口填充至其所属的显示区域,得到对应的数据展示界面。
如独立显示的展示窗口的数量为两个:一个第一窗口和一个第二窗口,第一窗口的操作需求度高于第二窗口。如独立显示的展示窗口的数量为三个:一个第一窗口和两个第二窗口,两个第二窗口分别为第二窗口一和第二窗口二,第一窗口操作需求度高于第二窗口,第二窗口一的操作需求度高于第二窗口二等。需要注意的是,虽然有两个第二窗口,那该两个第二窗口是独立的,所以实质上独立显示的展示窗口的数量为三个。该两个第二窗口后文中都用于显示小视角下的第二图像。
205,根据操作热度和操作需求度的对应关系,在初始界面对应的不同操作热度的显示区域内显示对应操作需求度的展示窗口,得到数据展示界面。
预先设置操作热度和操作需求度的对应关系,并获取预先设置的对应关系。本申请实施例中操作热度和操作需求度的对应关系是高操作热度对高操作需求度、低操作热度对低操作需求度的对应关系。在初始界面对应的不同显示区域内填充对应操作需求度的展示窗口,并显示对应的展示窗口,得到数据展示界面。需要注意的是,该处的数据展示界面上并没有显示任何图像。
请参看图6,为本申请实施例提供的不同显示区域内填充不同展示窗口的界面示意图。该初始界面中显示区域的数量为三个,该三个显示区域的操作热度大小关系为:区域(1)大于区域(2),区域(2)>区域(3)。同时,若各展示窗口的操作需求度大小关系为:第一窗口大于第二窗口一,第二窗口一大于第二窗口二。根据操作热度和操作需求度的对应关系,将第一窗口填充至区域(1),将第二窗口一填充至区域(2),将第二窗口二填充至区域(3)。图6所示的界面,即为数据展示界面。其中,本申请实施例中涉及的是在第二窗口上的控制操作,需要注意的是,在第一窗口上也可以进行控制操作。
根据操作热度和操作需求度的对应关系,在初始界面对应的不同操作热度的显示区域内显示对应操作需求度的展示窗口,展示窗口的确定考虑了操作热度和操作需求度,使得展示窗口符合用户操作习惯,提高界面操作效率。
102,通过数据展示界面的第一窗口显示大视角下的第一图像,通过第二窗口显示小视角下的第二图像,并通过第二窗口显示导航图像,所述导航图像表示第二图像在第一图像中的位置。
第一图像是根据第一投影矩阵和第一图像模型将摄像头采集的图像数据进行处理后得到的。以图像数据为鱼眼摄像头采集的图像数据为例进行说明。
其中,鱼眼摄像头采集的图像数据比平面摄像头拍摄得到的图像包括更多的信息,如若鱼眼摄像头的视角为180度,则拍摄角度刚好为半球,得到的图像以圆形呈现在二维平面上。图7为本申请实施例提供的鱼眼摄像头直接采集得到的初始图像数据的示意图,中间的圆形区域即为鱼眼摄像头拍摄得到的初始图像。图7中鱼眼摄像头朝向天空,所拍摄得到的图像包括天空以及鱼眼摄像头所处位置周围的建筑物、树木等。
需要注意的是,本申请涉及的图像模型等都指的是在虚拟场景中的图像模型。在虚拟场景中,通常需要构建物体坐标系,并在物体坐标系中建立模型(俗称建模)。本申请实施例中建立的第一图像模型为球形;在其他情况下,可根据具体使用场景对应不同形状的图像模型,如长方体,第一图像可以是长方体某个面上对应的视角图像等。以第一图像模型为球形为例进行说明,可以简单理解为第一图像模型是按照经度分为n个圆,每个圆上分配m个点所形成的球形,如n=180,m=30等。需要注意的是,n越大,m越大,所形成的球形越圆。
建立好模型后,可构建投影矩阵。在虚拟场景中,物体(或者模型,在模型上进行纹理贴图后即显示为物体)所在的坐标系称为物体坐标系,相机坐标系是以相机的聚焦中心为原点建立的三维坐标系,还对应有一个世界坐标系。虚拟相机、物体等都处于世界坐标系下。世界坐标系里面的虚拟相机、物体、模型,虚拟相机的广角、仰角、镜头到近平面和远平面的距离等的关系都体现在投影矩阵中。
如图8所示,为本申请实施例提供的透视投影的成像原理图。其中,虚拟相机的镜头到近平面11的距离,即点0和点1之间的距离,虚拟相机的镜头到远平面12的距离,即点0和点2之间的距离。虚拟相机的位置点可简单理解为0点在世界坐标系中的坐标。
第一投影矩阵可通过如下方式确定:获取设置的第一虚拟相机的初始参数,该初始参数包括第一虚拟相机的位置、欧拉角、第一虚拟相机的镜头到投影面(也可称为近平面)的距离、第一虚拟相机的镜头到远平面的距离等;根据第一虚拟相机的初始参数确定第一投影矩阵。如根据第一虚拟相机的初始参数,利用数学库来确定第一投影矩阵,如将第一虚拟相机的初始参数,输入至GLM(OpenGL Mathematics)数据库的对应函数中,利用该函数计算第一投影矩阵。需要注意的是,根据所设置的第一虚拟相机的初始参数确定的第一投影矩阵,也可以理解为初始第一投影矩阵。在本申请实施例中,由于初始第一投影矩阵一直都没有改变,因此第一投影矩阵即为初始第一投影矩阵。
确定了第一图像模型和第一投影矩阵后,根据第一投影矩阵和第一图像模型将鱼眼摄像头采集的图像数据进行处理,得到大视角下的第一图像。具体地,通过CPU将第一投影矩阵、图像数据和第一图像模型拷贝至图形处理器(Graphics Processing Unit,GPU)中,以根据第一投影矩阵、第一图像模型和图像数据,利用图形处理器将图像数据处理为大视角下的第一图像。例如,通过CPU将第一图像模型中的顶点传输至顶点着色器中,将第一图像模型中的纹理坐标拷贝至片元着色器中,并根据图像数据确定纹理坐标所对应的纹理单元,利用GPU进行渲染,得到大视角下的第一图像。
其中,大视角指的是进行渲染后,视野内至少可以看到完整的图像数据的视角。可以简单理解,大视角是将第一虚拟相机放置于第一图像模型外侧的较远处,从而视野内所看到的第一图像模型所对应的完整平面图像的视角。大视角本质上就是把第一图像模型放入至第一虚拟相机的视锥体内所对应的视角。在大视角中,第一虚拟相机位于第一图像模型的外侧。
如图9所示,第一虚拟相机21位于第一图像模型20的外侧,视锥体即为近平面22和远平面23之间的梯形区域,第一图像模型20完全处于视锥体中。该步骤中得到大视角下的第一图像,以便于用户从整体上对图像数据的内容进行理解。
小视角下的第二图像是根据第二投影矩阵、第二图像模型和图像数据生成的。其中,第二图像模型与第一图像模型相同,第二投影矩阵与第一投影矩阵不同。
其中,与第一投影矩阵一样,第二投影矩阵也存在初始第二投影矩阵,即第二投影矩阵的初始值。初始第二投影矩阵可通过如下方式确定:获取设置的第二虚拟相机的初始参数,该初始参数包括第二虚拟相机的位置、欧拉角、第二虚拟相机的镜头到近平面的距离、第二虚拟相机的镜头到远平面的距离等;根据第二虚拟相机的初始参数确定初始第二投影矩阵。该初始第二投影矩阵也可预先进行设定。其中,初始第一投影矩阵和初始第二投影矩阵不相同。第二投影矩阵的值并不一定是初始值,因为会根据用户可在第二窗口或者第一窗口上进行控制操作改变该第二投影矩阵的值。
根据第二投影矩阵、第二图像模型和图像数据生成小视角下的第二图像的步骤,包括:通过CPU将第二投影矩阵、图像数据和第二图像模型拷贝至GPU中,以根据第二投影矩阵和第二图像模型,以及图像数据生成小视角下的第二图像。具体地,通过CPU将第二图像模型中的顶点传输至顶点着色器中,将第二图像模型中的纹理坐标拷贝至片元着色器中,根据图像数据确定纹理坐标所对应的纹理单元,利用GPU进行渲染,生成小视角下的第二图像。
其中,小视角指的是进行渲染后,视野内可以看到局部的图像数据的视角。可以简单理解,小视角是将第二虚拟相机放置于第二图像模型内部,从而视野内所看到的第二图像模型投影后所对应的局部平面图像的视角。
如图10所示,第二虚拟相机31位于第二图像模型30的内部,视锥体即为近平面32和远平面33之间的梯形区域,第二图像模型30的部分处于视锥体中,处于视锥体的部分即为下文中的三维导航区域。需要注意的是,第二图像模型30和第一图像模型20相同,在该图中,第一图像模型20和第二图像模型30只是示意而已。
该步骤中得到大视角下的第一图像,以便于用户从整体上对图像数据的内容进行理解。该步骤中得到小视角下的第二图像,便于用户从局部上(小视角上)对图像数据的内容进行理解,提高对图像数据内容的理解效率。
如图11所示,为本申请实施例提供的数据展示界面的示意图。数据展示界面40上包括位于数据展示界面左侧的一个第一窗口41和位于第一窗口41右侧的两个第二窗口42。在第一窗口41中的第一显示控件上展示的是第一图像。可参看图7,展示的第一图像与图像数据相对应/一致。若在数据展示界面上,仅有一个第二窗口42,那么在该第二窗口内展示一个小视角下的第二图像。若在数据展示界面上,包括多个第二窗口42,则在多个第二窗口上展示不同小视角下的第二图像。多个第二窗口中,每个第二窗口42所对应的小视角不同,所展示的第二图像也显示为不同的图像。
以上步骤中,实现在数据展示界面上的第一窗口展示大视角下的第一图像,在第二窗口展示小视角下的第二图像,如此以得到图像数据在不同视角下的平面图像,可从不同视角来理解图像数据,便于用户对图像数据内容的理解,提高对图像数据内容的理解效率。
由于第一图像和第二图像是通过同一个图像模型(第一图像模型和第二图像模型相同)投影在大视角、小视角下,且使用相同的纹理(图像数据)贴图得到的。通过大视角下的第一图像从整体上理解图像数据,通过小视角下的第二图像从局部上理解图像数据,实现图像数据的细节展示。在对数据展示界面的窗口(包括第一窗口和第二窗口)进行控制操作时,小视角下的第二图像一直在不停的变化。且第二图像模型是球形,360度,没有边界,因此,在对第一窗口/第二窗口进行控制操作的过程中,所看到的第二图像很容易出现重复,即出现转圈圈的情况。因此,用户在对窗口进行控制时,需要知道当前第二窗口上显示的第二图像对应于第一图像中的哪个部分,以提高用户定位所关注区域的速度。本申请实施例中通过导航图像来表示第二图像在第一图像中的位置。
具体地,导航图像可通过如下步骤进行确定:根据第二投影矩阵确定第二图像在第一图像对应的第一图像模型内的三维导航区域;处理三维导航区域,以得到导航图像,并在第一窗口内突出显示导航图像。
首先,根据根据第二投影矩阵确定第二图像在第一图像对应的第一图像模型内的三维导航区域。
具体地,根据第二投影矩阵和第一图像模型确定第二图像在第一图像对应的第一图像模型内的三维导航区域。
可以理解地,上述根据投影矩阵(分别为第一投影矩阵和第二投影矩阵)和图像模型(分别为第一图像模型和第二图像模型)来确定的第一图像或者第二图像,是通过透视投影的成像原理所得到的图像。如图8所示,图像模型中在近平面11和远平面12之间的点投影,可以在我们视野内被看到。
根据透视投影的成像原理,我们视野可以看到的部分,其实就是图像模型上的顶点乘以投影矩阵后,落在近平面上的顶点,经过归一化、裁剪、以及纹理贴图最终展现出来的效果。因此,若想确定第二图像对应第一图像模型内的三维导航区域,则可通过逆向思维将问题转换为:确定第一图像模型上的哪些顶点可投影至第二投影矩阵的近平面上,确定这些顶点后,将这些顶点所对应的区域作为三维导航区域,对三维导航区域对应的纹理坐标突出指定显示。进一步的,若想确定第一图像模型上的哪些顶点可投影至第二投影矩阵的近平面上,可通过第二投影矩阵和第一图像模型来确定。
具体地,根据第二投影矩阵和第一图像模型确定第二图像对应第一图像模型内的三维导航区域的步骤,包括:根据第二投影矩阵和第一图像模型,从第一图像模型的顶点中,确定投影至第二投影矩阵对应近平面中的导航顶点;将导航顶点所对应的区域作为第二图像对应第一图像模型内的三维导航区域。导航顶点所对应的区域理解为导航顶点所在的区域。
导航顶点理解为第一图像模型中的,可以投影至第二投影矩阵的近平面中的顶点。具体地,根据第二投影矩阵和第一图像模型,从第一图像模型的顶点中,确定投影至第二投影矩阵对应近平面中的导航顶点的步骤,可通过CPU来执行,具体包括以下步骤:遍历第一图像模型中的每个顶点;从每个顶点(多个顶点)中确定投影至所述第二投影矩阵对应近平面中的导航顶点。
其中,从每个顶点中确定投影至所述第二投影矩阵对应近平面中的导航顶点的步骤,包括:根据第二投影矩阵,确定每个顶点投影后的坐标,如将第一图像模型中的顶点乘以第二投影矩阵后,得到每个顶点投影后的坐标;检测坐标是否在第二投影矩阵对应近平面的范围内;若是,则将该顶点确定为导航顶点;若否,则将该顶点确定为非导航顶点。其中,导航顶点投影到第二投影矩阵的近平面之后可被用户看到,而非导航顶点投用后不可被用户看到。
具体地,若第一图像模型按照经度分为180个圆,每个圆上分配30个点,则CPU遍历第一图像转换模型中的每个顶点,即遍历的顶点数量为180*30,每遍历一个顶点时,根据第二投影矩阵和该顶点,确定该顶点是否为导航顶点。具体地,利用第二投影矩阵和该顶点的顶点坐标进行相乘,以确定该顶点投影后的坐标,若投影后的坐标在第二投影矩阵对应的近平面的范围内,则确定为导航顶点,否则,确定该顶点为非导航顶点。可以理解地,第二投影矩阵确定后,第二投影矩阵所对应的近平面的范围也是确定的。若投影后坐标(x1,y1,z1)中的x1和y1的坐标在[-1,1]的范围内,即-1≤x1≤1,且-1≤y1≤1,则确定投影后的坐标在第二投影矩阵对应的近平面的范围内。确定了导航顶点后,将导航顶点所对应的区域作为第二图像对应第一图像模型内的三维导航区域。需要注意的是,这里不需要判断z1投影后的坐标,因此近平面是二维的,所有的z轴坐标是相等的。z1投影后的坐标后续会用来做景深,以实现近大远小的效果。
可以简单理解,在第一图像模型外侧,利用第一投影矩阵与第一图像模型的顶点相乘,经过裁剪渲染等后为第一图像;在第二图像模型内部,利用第二投影矩阵与第二图像模型的顶点相乘,经过裁剪渲染等后为第二图像;那么利用内部的第二投影矩阵和第一图像模型相乘之后,就可以得出第一图像模型中的哪些顶点可投影至第二投影矩阵的近平面上,将所得到的顶点作为导航顶点。
确定了三维导航区域之后,处理三维导航区域,以得到导航图像,并在第一窗口内突出显示导航图像。可通过预设方式来处理三维导航区域。
处理三维导航区域,以得到导航图像,并在第一窗口内突出显示导航图像的步骤,包括:确定三维导航区域中的导航顶点所对应的纹理坐标;将纹理坐标拷贝至GPU中,以使GPU根据所述纹理坐标通过预设方式处理(即渲染)三维导航区域,得到导航图像,以在第一窗口内突出显示导航图像。其中,通过CPU计算出导航顶点后,确定导航顶点所对应的纹理坐标,并将导航顶点所对应的纹理坐标通过CPU拷贝至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根据纹理坐标通过预设方式处理三维导航区域,以得到导航图像,并在第一窗口内突出显示导航图像的步骤的实现场景可以有多个。
如一个实现场景为,在第一窗口中只存在一个显示控件,通过该显示控件既可以显示导航图像(和渲染后的非三维导航区域),也可以显示第一图像。如该显示控件中包括两个纹理单元:第一纹理单元和第二纹理单元。其中,第一纹理单元用来显示第一图像,第二纹理单元用来显示导航图像(和渲染后的非三维导航区域),第二纹理单元位于第一纹理单元之上。具体地,在数据展示界面的第一窗口展示第一图像的步骤之前,还包括:获取第一窗口的显示控件中的第一纹理单元和第二纹理单元;将第二纹理单元设置于第一纹理单元之上。如此,在数据展示界面第一窗口展示第一图像的步骤,包括:在第一窗口的显示控件中的第一纹理单元内展示第一图像。在第一窗口内突出显示导航图像的步骤,包括:在第一窗口的显示控件中的第二纹理单元内突出显示导航图像(和渲染后的非三维导航区域)。需要注意的是,在该种情况下,在执行通过预设方式处理所述三维导航区域,得到导航图像,并在第一窗口显示控件中的第二纹理单元内突出展示导航图像的步骤的同时,还会同步执行根据第一投影矩阵和第一图像模型将所述第一图像数据渲染为大视角下的第一图像,并在第一窗口显示控件中的第一纹理单元内展示第一图像的步骤。可以理解地,因为第一图像和导航图像是在一个显示控件中进行显示的,因此第一图像和导航图像(和非三维导航区域)需要同时被渲染出来,如果仅仅渲染导航图像(和非三维导航区域),那么在第一窗口中将不会显示第一图像,如此达不到本申请的目的。如此,在通过预设方式处理三维导航区域时,既渲染第二纹理单元中的三维导航区域(和非三维导航区域),又渲染第一纹理单元对应的第一图像等。
如另一种实现场景为,在第一窗口中存在两个显示控件,第一显示控件用于显示第一图像,第二显示控件用于显示导航图像(和处理后的非三维导航区域)。具体地,在数据展示界面的第一窗口展示第一图像的步骤之前,还包括:获取第一窗口中的第一显示控件和第二显示控件;将第二显示控件设置于第一显示控件之上。如此,在数据展示界面第一窗口展示第一图像的步骤,包括:在数据展示界面第一窗口的第一显示控件中展示第一图像。在第一窗口内突出显示导航图像的步骤,包括:在第一窗口的第二显示控件中突出显示导航图像(和渲染后的非三维导航区域)。如此,通过两个显示控件分别来显示第一图像以及导航图像(和渲染后的非三维导航区域),分开处理,提高处理效率。如在处理三维导航区域时,只需要渲染第二显示控件上显示的内容即可,无需渲染第一显示控件上显示的内容,减少了电子设备的消耗,提高了处理效率和速度。
如此,通过将导航图像进行突出显示,根据导航图像使得用户可以很清晰的知道第二窗口内显示的第二图像,处于第一窗口内显示的第一图像中的哪个位置,以建立不同视角下的图像之间的关联关系,进一步提高对图像数据内容的理解效率,且便于用户调整所观看的区域,便于引导用户快速找到所关注区域,提高用户定位图像数据中所关注区域的速度,提升用户体验。此外,通过第二窗口显示的第二图像,也实现了图像数据的细节展示。
至此,数据展示界面的第一窗口中展示了第一图像、导航图像,数据展示界面的第二窗口中展示了第二图像。其中,导航图像表示的是第二图像对应于第一图像中的位置。
103,获取用户基于导航图像在第一窗口上的控制操作。
由于导航图像表示第二图像对应于第一图像中的位置,用户可以在数据展示界面的第一窗口中,基于导航图像进行控制操作。该控制操作可以通过用户在第一窗口的导航图像上进行滑动触摸操作来实现,还可以通过其他的方式来实现。在此,先简单描述一下控制操作所带来的效果:用户在第一窗口的导航图像上触摸滑动后,会导致第二窗口的第二图像发生变化,从而导致第一窗口的导航图像也发生变化。所以看起来好像是直接控制第一窗口上的导航图像。
本申请实施例中以通过滑动触摸操作来实现控制操作为例进行说明。
其中,第一窗口的滑动触摸操作所对应的控制操作的事件包括滑动事件、单击事件等。点击事件用来停止通过第二窗口的控制操作所引入的加速器,可以理解地,在第一窗口上的控制操作不涉及加速器的相关处理。滑动事件用于控制在手指滑动过程中的各种情况。滑动事件包括BeginDrag、DragMove、EndDrag、DragCancle等事件。BeginDrag与touchesBegan对应,理解为手指按下事件;DragMove与touchesMoved对应,理解为手指移动事件;EndDrag与touchesEnded对应,理解为手指抬起事件;DragCancle与touchesCancelled对应,理解为意外中断事件,比如打电话引起的意外中断。
104,将控制操作转换为三维空间下的角度。
对于电子设备来说,屏幕对应有一个坐标轴,高度方向(竖直方向)对应y轴,宽度方向(水平方向)对应x轴。因此,在滑动触摸操作时所对应的位置坐标一般包括x轴坐标和y轴坐标,屏幕上的x轴坐标和y轴坐标是物理坐标。(0,0)在屏幕的左上角,电子设备屏幕的坐标轴中不包括z轴。
在图像模型中,因为openGL中模型的旋转只能绕基轴进行,基轴包括第一基轴、第二基轴、第三基轴,在本申请实施例中,分别对应三维坐标系中的x轴、y轴和z轴。即在openGL中引入z轴,(0,0,0)对应第一窗口的第一图像的正中央或者第二窗口的正中央。物体旋转围绕物体坐标系的基轴旋转,在本申请实施例中,以物体坐标系为右手坐标系,物体坐标系的基轴和世界坐标系的基轴重合为例进行说明。
通过用户基于导航图像在第一窗口上的控制操作如何来确定第二投影矩阵呢,这是本申请实施例中确定第二投影矩阵的一个核心所在,即是把用户在电子设备屏幕上的手势滑动的控制操作转换为对应的角度。角度包括第二图像模型的旋转角度和第二投影矩阵对应的第二虚拟相机的俯仰角度。具体地,包括第二图像模型在第三基轴z轴上的旋转角度和第二投影矩阵对应的第二虚拟相机在第一基轴x轴上的俯仰角度。
具体地,将控制操作转换为三维空间下的角度的步骤,包括:获取第一窗口中第一图像的中心点的中心坐标;获取控制操作所对应的控制点的控制坐标;根据中心坐标和控制坐标将控制操作转换为三维空间下的角度。
根据上文中的描述可知,第一图像是将图像数据作为纹理单元,整个贴到一半的球体上所得到的大视角下的图像,该第一图像从视觉上看也是通过圆形展示在二维平面上。由于在openGL中将第一图像的正中央对应作为三维坐标轴的原点,为了方便将控制操作转换为角度,在屏幕所对应的二维坐标系中以第一图像的中心作为中心点。可以理解地,一般情况下,第一图像的中心点即为第一窗口的中心点,但也会存在并非是第一窗口的中心点的情况,因此该处并不是获取第一窗口的中心点,而是获取第一图像的中心点。
中心坐标和控制坐标都是在屏幕所对应的二维坐标系下的以左上角为原点的坐标。中心坐标可预先计算出来,设第一窗口对应的宽度为windows_width,第一窗口对应的高度为windows_height,若第一图像的中心点为第一窗口的中心点,则中心坐标为(windows_width/2,windows_height/2);若第一图像的中心点不为第一窗口的中心点,中心坐标还需根据第一图像的像素值确定,或者根据其他方式计算出来。
根据中心坐标和控制坐标将控制操作转换为三维空间下的角度,即实现将二维坐标系下的坐标转换为三维空间下的角度,以实现通过控制操作来控制第二图像和导航图像的显示。
如何根据手势滑动的控制点的控制坐标和中心点的中心坐标来确定对应的角度,这是本申请实施例中将控制操作转换为三维空间下的角度的核心所在。
对于第二图像模型的旋转角度来说,具体地,根据中心坐标和控制坐标将控制操作转换为三维空间下的角度的步骤,包括:根据中心坐标和控制坐标确定控制点与中心点所形成的直线在第一窗口上所处的角度;将该角度作为控制操作对应于第二图像模型中的旋转角度。
如图12所示,为本申请实施例提供的确定控制点在第一窗口上所处的角度的示意图。图中的A点为中心点,A点的坐标为(x0,y0),B点为控制点,B点的坐标为(x,y)。需要注意的是,由于A点和B点是在第一窗口上,A点和B点的坐标是二维空间的屏幕上的坐标,因此,A点和B点的坐标是以屏幕的左上角为原点的坐标。由于第一图像为圆形,且在openGL中,(0,0,0)对应第一窗口的第一图像的正中央,为了更方便快捷的将二维坐标系下的坐标转换为三维空间下的角度,将第一图像看作时钟,0点或者12点方向所对应的角度为0度或者360度,3点方向所对应的角度为90度,6点方向所对应的角度为180度,9点方向所对应的角度为270度。
控制点与中心点所形成的直线在第一窗口上所处的角度,理解为,在第一图像中,控制点与中心点所形成的直线与0点方向(或者0度方向)所对应的直线之间的角度。具体地,根据中心坐标和控制坐标确定控制点与中心点所形成的直线在第一窗口上所处的角度的步骤,包括:根据中心坐标和控制坐标确定控制点所在的象限;根据象限、中心坐标和控制坐标确定控制点与中心点所形成的直线在第一窗口上所处的角度。其中,象限是以A点为中心所形成的象限,本申请实施例中的象限是为了计算控制点与中心点所形成的直线在第一窗口上所处的角度。
其中,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轴上的俯仰角度,是基于导航图像的控制操作所得,是在第一窗口上得到的。然而第二投影矩阵对应的是第二窗口的投影矩阵。因此,需要将计算出来的角度,发送至第二窗口,以使得第二窗口根据角度更新对应的第二投影矩阵。
105,根据角度更新第二窗口对应的第二投影矩阵。
其中,投影矩阵(包括第一投影矩阵和第二投影矩阵)对应为MVP矩阵,其中,MVP=perspective*view*model。model矩阵(也称为模型矩阵)对应的是第二图像模型的操作矩阵,主要操作第二图像模型在x、y、z轴上的旋转,该model矩阵中包括对第二图像模型进行控制的信息。view矩阵(也称为视角矩阵)主要对应的是第二虚拟相机的位置点、朝向(第二虚拟相机的位置)等,perspective矩阵(也称为透视矩阵)对应的是第二虚拟相机的欧拉角、近平面、远平面等信息,理解为第二虚拟相机的透视投影的信息。
如何将角度对应到第二投影矩阵,这也是本申请实施例中确定第二投影矩阵的核心所在:当用户基于导航图像在第一窗口上进行控制操作时,控制操作对应于第二图像模型在第三基轴z轴上的旋转角度,对应调整的是model矩阵;第二虚拟相机在第一基轴x轴上的俯仰角度,对应调整的是view矩阵。
具体地,根据角度更新第二窗口对应的第二投影矩阵的步骤,包括:根据控制操作对应于第二图像模型中的旋转角度更新model矩阵;根据控制操作对应于第二虚拟相机的俯仰角度更新view矩阵;根据model矩阵、view矩阵和perspective矩阵更新第二窗口对应的第二投影矩阵。其中,perspective矩阵没有发生变化。
那么如何根据控制操作对应于第二图像模型中的旋转角度更新模型矩阵,通过上文中的描述,控制操作对应于第二图像模型中的旋转角度用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矩阵和perspective矩阵生成第二投影矩阵,以更新第二窗口对应的第二投影矩阵。如此,将用户基于导航图像在第一窗口上的控制操作转换为角度,并根据角度更新第二窗口对应的第二投影矩阵,以通过控制操作更新第二投影矩阵。
上述根据用户在第一窗口上的控制操作更新第二窗口对应的第二投影矩阵的过程中,分别对应有两个线程,第一线程和第二线程。其中,第一线程是主线程ui线程,以用于捕捉手势,如捕捉BeginDrag、DragMove、EndDrag、DragCancle等滑动事件,并根据手势滑动确定所对应的角度。第二线程线程是gl线程,刷新频率为一秒60帧。gl线程根据角度生成第二投影矩阵,以更新第二窗口所对应的第二投影矩阵。利用第一线程和第二线程分开进行处理,提高数据处理的效率。
106,根据更新后的第二投影矩阵更新小视角下的第二图像,并在第二窗口更新展示第二图像。
具体,根据更新后的第二投影矩阵更新小视角下的第二图像的步骤,包括:通过CPU将更新后的第二投影矩阵、图像数据和第二图像模型拷贝至GPU中,以利用GPU根据更新后的第二投影矩阵和第二图像模型,以及图像数据更新小视角下的第二图像。具体地,通过CPU将第二图像模型中的顶点传输至顶点着色器中,将第二图像模型中的纹理坐标传输至片元着色器中,确定第二图像模型中可投影至更新后的第二投影矩阵的顶点所对应的纹理坐标,并根据图像数据确定纹理坐标所对应的纹理单元,再利用GPU进行渲染,更新小视角下的第二图像。
具体地,请参看上文中的根据第二投影矩阵、第二图像模型和图像数据生成小视角下的第二图像的步骤对应的描述,在此不再赘述。
107,根据更新后的第二投影矩阵更新导航图像,并在第一窗口内突出显示导航图像。
具体地,根据更新后的第二投影矩阵更新导航图像,并在第一窗口内突出显示导航图像的步骤,包括:根据更新后的第二投影矩阵更新第二图像在第一图像对应的第一图像模型内的三维导航区域;处理三维导航区域,以更新导航图像,并在第一窗口内突出显示导航图像。
具体地,请参看上文中的根据第二投影矩阵确定第二图像在第一图像对应的第一图像模型内的三维导航区域;处理三维导航区域,以得到导航图像,并在第一窗口内突出显示导航图像的对应步骤的相关描述,在此不再赘述。
本申请实施例首先根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置,确定的第一窗口和第二窗口的大小和位置考虑了用户的历史操作数据,使得第一窗口和第二窗口的大小和位置的确定符合用户操作习惯,提高用户的操作效率;再通过所确定的第一窗口显示大视角下的第一图像,通过第二窗口显示小视角下的第二图像,并通过第一窗口显示导航图像,所述导航图像表示第二图像在第一图像中的位置,其中,第一图像和第二图像是图像数据在不同视角下的平面图像,如此可从不同视角来理解图像数据,便于用户对图像数据内容的理解,提高对图像数据内容的理解效率;然后获取用户基于导航图像在第二窗口上的控制操作,将控制操作转换为三维空间下的角度,根据角度更新第二窗口对应的第二投影矩阵,如此,将用户基于导航图像在第一窗口上的控制操作转换为第二窗口对应的第二投影矩阵,实现通过第一窗口上的控制操作来控制第二窗口内的第二图像的显示;最后根据第二投影矩阵更新导航图像,并在第一窗口内突出显示导航图像,如此,实现根据用户基于导航图像在第一窗口上的控制操作,来实时更新第二投影矩阵,从而实时更新第二图像,既而实时更新导航图像,达到根据用户基于导航图像在第一窗口上的控制操作,实时更新数据展示界面的显示;其中,根据导航图像使得用户可以很清晰的知道第二窗口内显示的第二图像,处于第一窗口内显示的第一图像中的哪个位置,以建立不同视角下的图像之间的关联关系,进一步提高对图像数据内容的理解效率,且便于用户调整所观看的区域,便于引导用户快速找到所关注区域,提高用户定位图像数据中所关注区域的速度,提升用户体验;通过第二窗口显示的小视角下的第二图像,也实现了图像数据的细节展示。本申请实施例中的数据展示方法可应用于更多应用场景。
根据上述实施例所描述的方法,本实施例将从数据展示装置的角度进一步进行描述,该数据展示装置具体可以作为独立的实体来实现,也可以集成在电子设备中来实现。
如图14所示,是本申请实施例提供的数据展示装置的结构示意图。该装置可以包括界面确定模块301、展示模块302、操作获取模块303、角度转换模块304、矩阵更新模块305、第一更新模块306以及第二更新模块307。
界面确定模块301,用于用于根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置。
在一种情况下,界面确定模块301,具体包括:生成单元、接收单元、界面划分单元、标记单元以及窗口展示单元。
生成单元,用于生成数据展示界面对应的初始界面。在一实施例中,生成单元,具体用于:获取数据展示界面的显示尺寸;根据数据展示界面的显示尺寸确定初始界面的显示尺寸;根据初始界面的显示尺寸生成数据展示界面的初始界面。或者生成单元,具体用于获取数据展示界面中有效操作区域的尺寸和位置,以及数据显示界面的显示尺寸;根据数据展示界面的显示尺寸确定初始界面的显示尺寸;根据初始界面的显示尺寸生成数据展示界面的初始界面;根据有效操作区域的尺寸和位置,确定初始界面内用于采集历史操作数据的有效采集区域的尺寸和位置。
接收单元,用于通过所述初始界面接收所述当前用户的历史操作数据。
界面划分单元,用于根据所述初始界面那种各单位区域内被触发的历史操作数据,将所述数据展示界面划分为至少两个操作热度不同的显示区域;
标记单元,用于根据图像数据展示中的各展示窗口的历史操作频率数据,将各展示窗口标记为操作需求度不同的展示窗口,所述展示窗口包括第一窗口和第二窗口。
窗口展示单元,用于根据操作热度和所述操作需求度的对应关系,在所述数据展示界面的不同操作热度的显示区域内显示对应操作需求度的展示窗口,得到数据展示界面。
展示模块302,用于通过所述数据展示界面的第一窗口显示大视角下的第一图像,通过所述第二窗口显示小视角下的第二图像,并通过第一窗口显示导航图像,所述导航图像表示所述第二图像在所述第一图像中的位置。
在一种情况下,数据展示装置还包括获取模块、第一处理模块、第二处理模块和第三处理模块。其中,获取模块,用于获取鱼眼摄像头采集的图像数据。第一处理模块,用于将图像数据处理为大视角下的第一图像,具体地,根据第一投影矩阵和第一图像模型将图像数据处理为大视角下的第一图像。第二处理模块,用于根据第二投影矩阵和图像数据生成小视角下的第二图像,具体地,根据第二投影矩阵和第二图像模型,以及图像数据生成小视角下的第二图像。第三处理模块,用于根据第二投影矩阵确定导航图像。第三处理模块包括区域确定单元和位置处理单元。其中,区域确定单元,用于根据第二投影矩阵确定第二图像在第一图像对应的第一图像模型内的三维导航区域;位置处理单元,用于处理三维导航区域,得到导航图像。其中,区域确定单元,具体用于根据第二投影矩阵和第一图像模型,从第一图像模型的顶点中,确定投影至第二投影矩阵对应近平面中的导航顶点;将导航顶点所对应的区域作为第二图像对应第一图像模型内的三维导航区域。导航顶点所对应的区域理解为导航顶点所在的区域。
操作获取模块303,用于获取用户基于导航图像在第一窗口上的控制操作。
角度转换模块304,用于将控制操作转换为三维空间下的角度。
具体地,角度转换模块304,具体用于通过第一线程来将控制操作转换为三维空间下的角度。角度转换模块304,具体包括坐标获取单元、角度转换单元。其中,坐标获取单元,用于获取第一窗口中第一图像的中心点的中心坐标;获取控制操作所对应的控制点的控制坐标。角度转换单元,用于根据中心坐标和控制坐标将控制操作转换为三维空间下的角度。
角度包括第二投影矩阵对应的第二虚拟相机的俯仰角度,角度转换单元,具体用于:获取第二图像所对应的半径,以及第二虚拟相机所对应的最大俯仰角度;根据中心坐标和控制坐标确定控制点到中心点的控制距离;根据半径和最大俯仰角度确定控制操作的控制距离对应于第二虚拟相机的俯仰角度。
角度包括第二图像模型的旋转角度,角度转换单元,具体用于:根据中心坐标和控制坐标确定控制点与中心点所形成的直线在第一窗口上所处的角度;将角度作为控制操作对应于第二图像模型的旋转角度。其中,所述根据中心坐标和控制坐标确定控制点与中心点所形成的直线在第一窗口上所处的角度的步骤,包括:根据中心坐标和控制坐标确定控制点所在的象限;根据象限、中心坐标和控制坐标确定控制点与中心点所形成的直线在第一窗口上所处的角度。
矩阵更新模块305,用于角度更新第二窗口对应的第二投影矩阵。
具体地,矩阵更新模块305,具体用于通过第二线程来根据角度更新第二窗口对应的第二投影矩阵。
矩阵更新模块305,具体包括模型更新单元、视角更新单元、以及矩阵更新单元。其中,模型更新单元,用于根据控制操作对应于第二图像模型中的旋转角度更新模型矩阵。视角更新单元,用于根据控制操作对应于第二虚拟相机的俯仰角度更新视角矩阵。矩阵更新单元,用于根据模型矩阵、视角矩阵和透视矩阵更新第二窗口对应的第二投影矩阵。
其中,视角更新单元,具体用于:将控制操作对应于第二虚拟相机的俯仰角度作为第二虚拟相机的俯仰角,并获取第二虚拟相机的偏航角;根据偏航角和俯仰角更新第二虚拟相机的朝向向量;根据朝向向量更新视角矩阵。
第一更新模块306,用于根据更新后的第二投影矩阵更新小视角下的第二图像。具体地,根据更新后的第二投影矩阵、第二图像模型,以及图像数据更新小视角下的第二图像。
展示模块302,还用于更新第二图像后,在第二窗口更新展示第二图像。
第二更新模块307,用于根据更新后的第二投影矩阵更新导航图像。具体地,第二更新模块307包括区域更新单元和位置更新单元。其中,区域更新单元,用于根据更新后的第二投影矩阵更新第二图像在第一图像对应的第一图像模型内的三维导航区域;位置更新单元,用于处理三维导航区域,得到导航图像,以更新导航图像。其中,区域更新单元,具体用于根据第二投影矩阵和第一图像模型,从第一图像模型的顶点中,确定投影至第二投影矩阵对应近平面中的导航顶点;将导航顶点所对应的区域作为第二图像对应第一图像模型内的三维导航区域。导航顶点所对应的区域理解为导航顶点所在的区域。
展示模块302,还用于更新导航图像后,在第一窗口内突出显示导航图像。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现。以上装置和各单元的具体实现过程,以及所达到的有益效果,可以参考前述应用于区块链的节点中的方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
本申请实施例还提供一种电子设备,如图15所示,其示出了本申请实施例所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器901、一个或一个以上计算机可读存储介质的存储器902、射频(Radio Frequency,RF)电路903、电源904、输入单元905、以及显示单元906等部件。本领域技术人员可以理解,图中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器901是该电子设备的控制中心,包括中央处理器和图形处理器,中央处理器和图形处理器相连接。其中,中央处理器利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器902内的软件程序和/或模块,以及调用存储在存储器902内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,中央处理器可包括一个或多个处理核心;优选的,中央处理器可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解地是,上述调制解调处理器也可以不集成到中央处理器中。图形处理器,主要实现对中央处理器传递过来的数据进行处理,如渲染等。
存储器902可用于存储软件程序(计算机程序)以及模块,处理器901通过运行存储在存储器902的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器902可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器902还可以包括存储器控制器,以提供处理器901对存储器902的访问。
RF电路903可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器901处理;另外,将涉及上行的数据发送给基站。通常,RF电路903包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路903还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(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)等。
电子设备还包括给各个部件供电的电源904(比如电池),优选的,电源904可以通过电源管理系统与处理器901逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源904还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元905,该输入单元905可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体地实施例中,输入单元905可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器901,并能接收处理器901发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元905还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
该电子设备还可包括显示单元906,该显示单元906可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元906可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器901以确定触摸事件的类型,随后处理器901根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
尽管未示出,电子设备还可以包括摄像头(需要注意的是,该处的摄像头与上述所述的虚拟相机不同,该处的摄像头指的是硬件)、蓝牙模块等,在此不再赘述。具体在本实施例中,电子设备中的处理器901会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器902中,并由处理器901来运行存储在存储器902中的应用程序,从而实现各种功能,如下:
根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置;通过所述数据展示界面的第一窗口显示大视角下的第一图像,通过所述第二窗口显示小视角下的第二图像,并通过第一窗口显示导航图像,所述导航图像表示所述第二图像在所述第一图像中的位置;获取用户基于所述导航图像在所述第一窗口上的控制操作;将所述控制操作转换为三维空间下的角度;根据所述角度更新所述第二窗口对应的第二投影矩阵;根据所述第二投影矩阵更新小视角下的第二图像,并在所述第二窗口更新展示所述第二图像;根据所述第二投影矩阵更新导航图像,并在第一窗口内突出显示所述导航图像。
该电子设备可以实现本申请实施例所提供的数据展示方法任一实施例中的步骤,因此,可以实现本申请实施例所提供的任一数据展示方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令(计算机程序)来完成,或通过指令(计算机程序)控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。为此,本申请实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的数据展示方法中任一实施例的步骤。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一数据展示方法实施例中的步骤,因此,可以实现本申请实施例所提供的任一数据展示方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种数据展示方法、装置、电子设备以及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据展示方法,其特征在于,包括:
根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置;
通过所述数据展示界面的第一窗口显示大视角下的第一图像,通过所述第二窗口显示小视角下的第二图像,并通过第一窗口显示导航图像,所述导航图像表示所述第二图像在所述第一图像中的位置;
获取用户基于所述导航图像在所述第一窗口上的控制操作;
将所述控制操作转换为三维空间下的角度;
根据所述角度更新所述第二窗口对应的第二投影矩阵;
根据所述第二投影矩阵更新小视角下的第二图像,并在所述第二窗口更新展示所述第二图像;
根据所述第二投影矩阵更新导航图像,并在第一窗口内突出显示所述导航图像;
其中,所述角度为所述第二投影矩阵对应的第二虚拟相机的俯仰角度或者所述第二图像对应的第二图像模型的旋转角度。
2.根据权利要求1所述的数据展示方法,其特征在于,所述将所述控制操作转换为三维空间下的角度的步骤,包括:
获取所述第一窗口中所述第一图像的中心点的中心坐标;
获取所述控制操作所对应的控制点的控制坐标;
根据所述中心坐标和所述控制坐标将所述控制操作转换为三维空间下的角度。
3.根据权利要求2所述的数据展示方法,其特征在于,所述角度包括所述第二投影矩阵对应的第二虚拟相机的俯仰角度,所述根据所述中心坐标和所述控制坐标将所述控制操作转换为三维空间下的角度的步骤,包括:
获取所述第二图像所对应的半径,以及第二虚拟相机所对应的最大俯仰角度;
根据所述中心坐标和所述控制坐标确定所述控制点到所述中心点的控制距离;
根据所述半径和所述最大俯仰角度确定所述控制操作的所述控制距离对应于所述第二虚拟相机的俯仰角度。
4.根据权利要求2所述的数据展示方法,其特征在于,所述角度包括所述第二图像对应的第二图像模型的旋转角度,所述根据所述中心坐标和所述控制坐标将所述控制操作转换为三维空间下的角度的步骤,包括:
根据所述中心坐标和所述控制坐标确定所述控制点与所述中心点所形成的直线在所述第一窗口上所处的角度;
将所述角度作为所述控制操作对应于第二图像模型的旋转角度。
5.根据权利要求4所述的数据展示方法,其特征在于,所述根据所述中心坐标和所述控制坐标确定所述控制点与所述中心点所形成的直线在所述第一窗口上所处的角度的步骤,包括:
根据所述中心坐标和所述控制坐标确定所述控制点所在的象限;
根据所述象限、所述中心坐标和所述控制坐标确定所述控制点与所述中心点所形成的直线在所述第一窗口上所处的角度。
6.根据权利要求1所述的数据展示方法,其特征在于,所述根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置的步骤,包括:
生成所述数据展示界面对应的初始界面;
通过所述初始界面接收当前用户的历史操作数据;
根据所述初始界面中各单位区域内被触发的历史操作数据,将所述初始界面划分为至少两个操作热度不同的显示区域;
根据图像数据展示中的各展示窗口的历史操作频率数据,将各展示窗口标记为操作需求度不同的展示窗口,所述展示窗口包括第一窗口和第二窗口;
根据操作热度和所述操作需求度的对应关系,在所述初始界面对应的不同操作热度的显示区域内显示对应操作需求度的展示窗口,得到所述数据展示界面。
7.一种数据展示装置,其特征在于,包括:
界面确定模块,用于根据历史操作数据确定数据展示界面中的第一窗口和第二窗口的大小和位置;
展示模块,用于通过所述数据展示界面的第一窗口显示大视角下的第一图像,通过所述第二窗口显示小视角下的第二图像,并通过第一窗口显示导航图像,所述导航图像表示所述第二图像在所述第一图像中的位置;
操作获取模块,用于获取用户基于所述导航图像在所述第一窗口上的控制操作;
角度转换模块,将所述控制操作转换为三维空间下的角度;
矩阵更新模块,用于根据所述角度更新所述第二窗口对应的第二投影矩阵;
第一更新处理模块,用于根据所述第二投影矩阵更新小视角下的第二图像;所述展示模块,还用于更新所述第二图像后,在所述第二窗口更新展示所述第二图像;
第二更新处理模块,用于根据所述第二投影矩阵更新导航图像;所述展示模块,还用于更新所述导航图像后,在第一窗口内突出显示所述导航图像;
其中,所述角度为所述第二投影矩阵对应的第二虚拟相机的俯仰角度或者所述第二图像对应的第二图像模型的旋转角度。
8.根据权利要求7所述的数据展示装置,其特征在于,所述角度转换模块,包括:
坐标获取单元,用于获取所述第一窗口中所述第一图像的中心点的中心坐标;以及获取所述控制操作所对应的控制点的控制坐标;
角度转换单元,用于根据所述中心坐标和所述控制坐标将所述控制操作转换为三维空间下的角度。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现上述权利要求1至6任一项所述的数据展示方法中的步骤。
10.一种电子设备,其特征在于,包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述处理器和所述存储器相连接,所述一个或多个计算机程序被存储于所述存储器中,并配置为由所述处理器执行上述权利要求1至6任一项所述的数据展示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011119722.0A CN112308767B (zh) | 2020-10-19 | 2020-10-19 | 一种数据展示方法、装置、存储介质以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011119722.0A CN112308767B (zh) | 2020-10-19 | 2020-10-19 | 一种数据展示方法、装置、存储介质以及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112308767A CN112308767A (zh) | 2021-02-02 |
CN112308767B true CN112308767B (zh) | 2023-11-24 |
Family
ID=74328248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011119722.0A Active CN112308767B (zh) | 2020-10-19 | 2020-10-19 | 一种数据展示方法、装置、存储介质以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112308767B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579023B (zh) * | 2021-12-13 | 2023-04-18 | 北京市建筑设计研究院有限公司 | 一种建模方法、装置及电子设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106683163A (zh) * | 2015-11-06 | 2017-05-17 | 杭州海康威视数字技术股份有限公司 | 一种视频监控的成像方法及系统 |
CN107291802A (zh) * | 2017-05-12 | 2017-10-24 | 北京金堤科技有限公司 | 关系图谱展示方法及装置 |
CN109242943A (zh) * | 2018-08-21 | 2019-01-18 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法、装置及图像处理设备、存储介质 |
CN109388455A (zh) * | 2018-09-14 | 2019-02-26 | 浩云科技股份有限公司 | 一种基于Opengl es支持多平台的鱼眼图像展开监控方法 |
CN109429055A (zh) * | 2017-08-24 | 2019-03-05 | 阿里巴巴集团控股有限公司 | 图像展示、视频文件处理方法及装置 |
CN109542321A (zh) * | 2018-11-21 | 2019-03-29 | 维沃移动通信有限公司 | 一种屏幕显示内容的控制方法及装置 |
CN110779515A (zh) * | 2019-10-31 | 2020-02-11 | 北京地平线机器人技术研发有限公司 | 电子导航地图的显示方法、装置以及电子设备和存储介质 |
CN111026316A (zh) * | 2019-11-25 | 2020-04-17 | 维沃移动通信有限公司 | 一种图像显示方法及电子设备 |
CN111275607A (zh) * | 2020-01-17 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 界面显示方法、装置、计算机设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7889227B2 (en) * | 2005-09-15 | 2011-02-15 | Siemens Aktiengesellschaft | Intuitive user interface for endoscopic view visualization |
US8224122B2 (en) * | 2006-12-15 | 2012-07-17 | Microsoft Corporation | Dynamic viewing of wide angle images |
-
2020
- 2020-10-19 CN CN202011119722.0A patent/CN112308767B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106683163A (zh) * | 2015-11-06 | 2017-05-17 | 杭州海康威视数字技术股份有限公司 | 一种视频监控的成像方法及系统 |
CN107291802A (zh) * | 2017-05-12 | 2017-10-24 | 北京金堤科技有限公司 | 关系图谱展示方法及装置 |
CN109429055A (zh) * | 2017-08-24 | 2019-03-05 | 阿里巴巴集团控股有限公司 | 图像展示、视频文件处理方法及装置 |
CN109242943A (zh) * | 2018-08-21 | 2019-01-18 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法、装置及图像处理设备、存储介质 |
CN109388455A (zh) * | 2018-09-14 | 2019-02-26 | 浩云科技股份有限公司 | 一种基于Opengl es支持多平台的鱼眼图像展开监控方法 |
CN109542321A (zh) * | 2018-11-21 | 2019-03-29 | 维沃移动通信有限公司 | 一种屏幕显示内容的控制方法及装置 |
CN110779515A (zh) * | 2019-10-31 | 2020-02-11 | 北京地平线机器人技术研发有限公司 | 电子导航地图的显示方法、装置以及电子设备和存储介质 |
CN111026316A (zh) * | 2019-11-25 | 2020-04-17 | 维沃移动通信有限公司 | 一种图像显示方法及电子设备 |
CN111275607A (zh) * | 2020-01-17 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 界面显示方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112308767A (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) | 一种数据展示方法、移动终端和存储介质 | |
CN111813290B (zh) | 一种数据处理方法、装置以及电子设备 | |
CN112017133B (zh) | 一种图像展示方法、装置及电子设备 | |
CN112884873B (zh) | 虚拟环境中虚拟物体的渲染方法、装置、设备及介质 | |
WO2021004412A1 (zh) | 手持输入设备及其指示图标的显示位置控制方法和装置 | |
CN112150560B (zh) | 确定消失点的方法、装置及计算机存储介质 | |
CN112308768B (zh) | 一种数据处理方法、装置、电子设备以及存储介质 | |
CN115797535A (zh) | 一种三维模型纹理贴图方法及相关装置 | |
CN113724391A (zh) | 三维模型构建方法、装置、电子设备和计算机可读介质 | |
CN112308767B (zh) | 一种数据展示方法、装置、存储介质以及电子设备 | |
CN112750190B (zh) | 三维热力图生成方法、装置、设备及存储介质 | |
CN109146775B (zh) | 二维图片转换方法、装置、设备及存储介质 | |
CN118135081A (zh) | 模型生成方法、装置、计算机设备和计算机可读存储介质 | |
CN112308766B (zh) | 一种图像数据展示方法、装置、电子设备及存储介质 | |
CN110502305B (zh) | 一种动态界面的实现方法、装置及相关设备 | |
CN112181230A (zh) | 一种数据展示方法、装置以及电子设备 | |
CN112306344B (zh) | 一种数据处理方法及移动终端 | |
CN112465692A (zh) | 图像处理方法、装置、设备及存储介质 | |
CN112308757B (zh) | 一种数据展示方法和移动终端 | |
CN112184543B (zh) | 一种用于鱼眼摄像头的数据展示方法和装置 | |
CN115222867A (zh) | 重叠检测方法、装置、电子设备和存储介质 | |
CN112184801A (zh) | 一种用于鱼眼摄像头的数据展示方法和移动终端 | |
CN114222103B (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 |