相机切换方法、装置、电子设备及存储介质与流程

文档序号:31695119发布日期:2022-10-01 04:51阅读:64来源:国知局
相机切换方法、装置、电子设备及存储介质与流程

1.本技术涉及虚拟现实技术领域,尤其涉及一种相机切换方法、装置、电子设备及存储介质。


背景技术:

2.目前虚拟现实(virtual reality,vr)房间支持2d户型图和3d户型图的预览、平移、缩放,3d户型图还可以支持旋转,2d户型图为图片形式,图片形式的2d户型图显示不够灵活,无法满足定制化要求,比如,要求将汉字“厨房”改成kitchen,或者,将客厅的大理石纹理改为木地板纹理,图片形式的2d户型图无法灵活更改。
3.目前,2d户型图和3d户型图都采用透视相机展示,透视相机是还原单目照相机,通过视锥来捕获图像颜色,从而形成类似人眼的近大远小的效果;正交相机是将颜色平行投影到采集平面。在展示模型时,同样的模型在两种相机中可以得到不同的图像;透视相机由于通过视锥来捕获图像,从正上方看模型时,可以看到垂直的墙面,而正交相机并不会。
4.为了保证2d户型图的显示灵活性,可以将2d户型图数据加载至3d空间中,将透视相机置于正上方俯视,在视觉上形成2d户型图效果。基于相机的视角观看2d户型图时,可以看到2d户型图的墙,门,窗等,门和窗在墙的上方。由于透视相机近大远小的效果,导致2d户型图发生移动后,门、窗会和墙发生视觉上的错位。
5.由此可见,在将2d户型图数据加载至3d空间中、基于透视相机显示2d户型图时,容易出现视觉错位的问题,影响用户的视觉体验。


技术实现要素:

6.本技术实施例提供了一种相机切换方法、装置、电子设备及存储介质,以解决在将2d户型图数据加载至3d空间中、基于透视相机显示2d户型图时,容易出现的视觉错位的问题。
7.第一方面,本技术实施例提供了一种相机切换方法,包括:
8.根据二维户型图对应的目标包围盒的尺寸信息、显示屏幕对应的屏幕宽高比、目标距离以及透视相机的视角角度,确定正交相机的相机参数、所述正交相机和所述透视相机相对于目标平面的目标高度;
9.在确定所述正交相机的相机参数、基于所述目标高度确定所述正交相机和所述透视相机的位置之后,基于所述正交相机显示所述二维户型图或者基于所述透视相机显示三维户型图;
10.在接收到显示切换指令的情况下,响应于所述显示切换指令,将所述正交相机和所述透视相机进行切换,以对所述二维户型图和所述三维户型图进行显示切换;
11.其中,所述二维户型图为将目标房屋的二维户型图数据在三维空间中展示时对应的图像,所述目标距离为预先配置的所述二维户型图在所述显示屏幕展示时所述二维户型图的边界与所述显示屏幕的边界之间的所允许最小距离,所述目标平面为根据目标方向在
所述三维空间中确定的平面,所述目标方向为所述正交相机的拍摄方向和所述正交相机的焦点确定的方向。
12.第二方面,本技术实施例提供了一种相机切换装置,包括:
13.确定模块,用于根据二维户型图对应的目标包围盒的尺寸信息、显示屏幕对应的屏幕宽高比、目标距离以及透视相机的视角角度,确定正交相机的相机参数、所述正交相机和所述透视相机相对于目标平面的目标高度;
14.显示模块,用于在确定所述正交相机的相机参数、基于所述目标高度确定所述正交相机和所述透视相机的位置之后,基于所述正交相机显示所述二维户型图或者基于所述透视相机显示三维户型图;
15.切换模块,用于在接收到显示切换指令的情况下,响应于所述显示切换指令,将所述正交相机和所述透视相机进行切换,以对所述二维户型图和所述三维户型图进行显示切换;
16.其中,所述二维户型图为将目标房屋的二维户型图数据在三维空间中展示时对应的图像,所述目标距离为预先配置的所述二维户型图在所述显示屏幕展示时所述二维户型图的边界与所述显示屏幕的边界之间的所允许最小距离,所述目标平面为根据目标方向在所述三维空间中确定的平面,所述目标方向为所述正交相机的拍摄方向和所述正交相机的焦点确定的方向。
17.第三方面,本技术实施例提供了一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述第一方面所述的相机切换方法的步骤。
18.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的相机切换方法的步骤。
19.本技术实施例技术方案,在根据二维户型图对应的目标包围盒的尺寸信息、显示屏幕对应的屏幕宽高比、目标距离以及透视相机的视角角度,确定正交相机的相机参数、正交相机和透视相机相对于目标平面的目标高度之后,基于正交相机显示二维户型图或者基于透视相机显示三维户型图,在基于正交相机显示二维户型图时,可以在二维户型图场景下,将透视相机改为正交相机,避免容易出现视觉错位、影响用户的视觉体验的问题,在接收到显示切换指令的情况下,将正交相机和透视相机进行切换,以对二维户型图和三维户型图进行显示切换,可以实现由二维户型图无缝衔接切换至三维户型图或者由三维户型图无缝衔接切换至二维户型图,动画流畅,优化用户的视觉体验。
附图说明
20.图1表示本技术实施例提供的相机切换方法的示意图;
21.图2表示本技术实施例显示二维户型图的示意图;
22.图3表示本技术实施例显示三维户型图的示意图;
23.图4表示本技术实施例在显示二维户型图的同时显示户型图控件的示意图;
24.图5表示本技术实施例确定相机参数和高度时对应的计算原理示意图;
25.图6表示本技术实施例提供的相机切换装置的示意图;
26.图7表示本技术实施例提供的电子设备结构示意图。
具体实施方式
27.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
28.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
29.在本技术的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
30.本技术实施例提供一种相机切换方法,参见图1所示,该方法包括:
31.步骤101、根据二维户型图对应的目标包围盒的尺寸信息、显示屏幕对应的屏幕宽高比、目标距离以及透视相机的视角角度,确定正交相机的相机参数、所述正交相机和所述透视相机相对于目标平面的目标高度,所述二维户型图为将目标房屋的二维户型图数据在三维空间中展示时对应的图像,所述目标距离为预先配置的所述二维户型图在所述显示屏幕展示时所述二维户型图的边界与所述显示屏幕的边界之间的所允许最小距离,所述目标平面为根据目标方向在所述三维空间中确定的平面,所述目标方向为所述正交相机的拍摄方向和所述正交相机的焦点确定的方向。
32.本技术实施例提供的相机切换方法,首先将目标房屋的二维户型图数据加载至三维空间中,将三维空间中展示的图像确定为二维户型图,在视觉上看上去是二维户型图的效果。然后,确定二维户型图对应的目标包围盒,目标包围盒为包围二维户型图的最小长方体或者最小正方体,本实施例中不考虑目标包围盒的厚度,仅考虑目标包围盒的宽度和高度。
33.在确定目标包围盒之后,根据目标包围盒的尺寸信息、显示屏幕对应的屏幕宽高比、目标距离以及透视相机的视角角度,确定正交相机的相机参数、正交相机和透视相机相对于目标平面的目标高度。
34.显示屏幕对应的屏幕宽高比为基于显示屏幕的型号确定的固定值;目标距离为预先配置的距离,具体为二维户型图在显示屏幕展示时二维户型图的边界与显示屏幕的边界之间的所允许最小距离;透视相机的视角角度为一固定值。基于目标包围盒的尺寸信息、目标距离和屏幕宽高比,可以确定正交相机的相机参数;基于目标包围盒的尺寸信息、目标距离、透视相机的视角角度和屏幕宽高比,可以确定正交相机和透视相机相对于目标平面的目标高度。
35.目标平面为三维空间中的平面,根据目标方向确定,这里的目标方向为正交相机的拍摄方向和正交相机的焦点所确定的方向,具体为,目标方向可以认为是基于正交相机的拍摄方向和正交相机的焦点确定的射线(具有角度和方向),目标平面为三维空间中与目
标方向垂直、作为三维模型的底面的平面。
36.步骤102、在确定所述正交相机的相机参数、基于所述目标高度确定所述正交相机和所述透视相机的位置之后,基于所述正交相机显示所述二维户型图或者基于所述透视相机显示三维户型图。
37.在基于目标包围盒的尺寸信息、显示屏幕对应的屏幕宽高比、目标距离以及透视相机的视角角度,确定正交相机的相机参数、正交相机和透视相机相对于目标平面的目标高度之后,可以利用处于特定位置、且基于确定的相机参数进行相机参数调整后的正交相机,显示二维户型图,以在二维户型图场景下,将透视相机改为正交相机,避免容易出现视觉错位、影响用户的视觉体验的问题;或者,利用处于特定位置的透视相机显示三维户型图。参见图2所示,为显示二维户型图的一具体示意;参见图3所示,为显示三维户型图的一具体示意。
38.其中,正交相机和透视相机处于同一高度,透视相机与正交相机所处的位置相同。本技术实施例中的屏幕宽高比以及目标距离为固定值,可以理解为基于透视相机的参数、二维户型图的大小,计算正交相机的参数和正交相机的高度。
39.步骤103、在接收到显示切换指令的情况下,响应于所述显示切换指令,将所述正交相机和所述透视相机进行切换,以对所述二维户型图和所述三维户型图进行显示切换。
40.目前,在一些场景下,在需要动态去切换正交相机和透视相机时,由于透视相机和正交相机的原理以及参数的不同,无法出现中间过渡值,导致切换生硬、正交相机与透视相机无法实现无缝衔接,影响用户的视觉体验。本技术实施例中,二维户型图对应于正交相机、三维户型图对应于透视相机,由于基于透视相机的参数、二维户型图的大小、屏幕宽高比以及目标距离,计算正交相机的相机参数和正交相机、透视相机的高度,可以使得正交相机所看到的二维户型图大小与透视相机所看到的三维户型图的大小保持一致,因此可以实现无缝衔接动画的效果。
41.在接收到显示切换指令的情况下,基于显示切换指令,将正交相机切换为透视相机、以实现二维户型图至三维户型图的显示切换,或者,将透视相机切换为正交相机、以实现三维户型图至二维户型图的显示切换,可以实现由二维户型图无缝衔接切换至三维户型图或者由三维户型图无缝衔接切换至二维户型图,动画流畅,优化用户的视觉体验。
42.本实施例中的显示切换指令,可以为二维户型图切换为三维户型图的显示切换指令,也可以为三维户型图切换为二维户型图的显示切换指令,具体需要依据当前显示的户型图类型来确定。其中,显示切换指令可以为用户对二维户型图控件或者三维户型图控件的输入,例如,参见图4所示,在显示二维户型图的情况下,显示二维户型图控件和三维户型图控件,其中二维户型图控件处于选中状态,在接收到对三维户型图控件的输入的情况下,确定接收到二维户型图切换为三维户型图的显示切换指令,响应于显示切换指令,将正交相机切换为透视相机、以实现二维户型图至三维户型图的显示切换。
43.本技术上述实施过程,在根据二维户型图对应的目标包围盒的尺寸信息、显示屏幕对应的屏幕宽高比、目标距离以及透视相机的视角角度,确定正交相机的相机参数、正交相机和透视相机相对于目标平面的目标高度之后,基于正交相机显示二维户型图或者基于透视相机显示三维户型图,在基于正交相机显示二维户型图时,可以在二维户型图场景下,将透视相机改为正交相机,避免容易出现视觉错位、影响用户的视觉体验的问题,在接收到
显示切换指令的情况下,将正交相机和透视相机进行切换,以对二维户型图和三维户型图进行显示切换,可以实现由二维户型图无缝衔接切换至三维户型图或者由三维户型图无缝衔接切换至二维户型图,动画流畅,优化用户的视觉体验。
44.下面对确定正交相机的相机参数、正交相机和透视相机相对于目标平面的目标高度的过程进行介绍,步骤101根据二维户型图对应的目标包围盒的尺寸信息、显示屏幕对应的屏幕宽高比、目标距离以及透视相机的视角角度,确定正交相机的相机参数、所述正交相机和所述透视相机相对于目标平面的目标高度,包括:
45.基于所述目标包围盒的宽度信息、所述目标包围盒的高度信息以及所述目标距离,确定第一距离因子和第二距离因子;
46.根据所述第一距离因子、所述第二距离因子和所述屏幕宽高比,确定所述正交相机的相机参数;
47.根据所述第一距离因子、所述第二距离因子、所述透视相机的视角角度和所述屏幕宽高比,确定所述正交相机和所述透视相机相对于目标平面的目标高度;
48.其中,所述第一距离因子基于第一距离与所述目标距离之和确定、所述第二距离因子基于第二距离与所述目标距离之和确定,所述第一距离为所述目标包围盒的宽度的二分之一、所述第二距离为所述目标包围盒的高度的二分之一。
49.在计算正交相机的相机参数以及正交相机和透视相机相对于目标平面的目标高度时,首先基于目标包围盒的宽度信息、目标包围盒的高度信息以及目标距离,确定第一距离因子和第二距离因子,然后基于第一距离因子、第二距离因子和屏幕宽高比,确定正交相机的相机参数;基于第一距离因子、第二距离因子、透视相机的视角角度和屏幕宽高比,确定正交相机和透视相机相对于目标平面的目标高度。
50.在确定第一距离因子时,基于目标包围盒的宽度的二分之一确定第一距离,根据第一距离与目标距离之和确定第一距离因子;在确定第二距离因子时,基于目标包围盒的高度的二分之一确定第二距离,根据第二距离与目标距离之和确定第二距离因子。第一距离因子为二维户型图中心距离屏幕横向(宽度方向)边界的距离、第二距离因子为二维户型图中心距离屏幕纵向(高度方向)边界的距离。
51.参见图5所示,图5中的矩形框体为目标包围盒,w1为目标包围盒宽度的二分之一,即为第一距离,h1为目标包围盒高度的二分之一,即为第二距离,图5中的margin为目标距离,图5中示意出了在目标包围盒的宽度方向上,目标包围盒的边界与对应的显示屏幕的边界之间的距离为目标距离的情况,在图5中,在目标包围盒的高度方向上,目标包围盒的边界与对应的显示屏幕的边界之间的距离大于目标距离。需要说明的是,本实施例中的目标距离为经过历史经验或者多次实验所确定的距离,如,目标距离为50个世界坐标距离。
52.本技术上述实施过程,通过基于目标包围盒的宽度信息、目标包围盒的高度信息以及目标距离,确定第一距离因子和第二距离因子,基于第一距离因子、第二距离因子和屏幕宽高比,确定正交相机的相机参数,基于第一距离因子、第二距离因子、透视相机的视角角度和屏幕宽高比,确定正交相机和透视相机相对于目标平面的目标高度,可以实现基于透视相机的参数、二维户型图的大小,计算正交相机的相机参数和正交相机的高度。
53.下面对确定正交相机的相机参数的过程进行介绍,根据所述第一距离因子、所述第二距离因子和所述屏幕宽高比,确定所述正交相机的相机参数,包括:
54.基于所述第一距离因子与所述第二距离因子之比,确定第一比值;
55.在所述第一比值大于或者等于所述屏幕宽高比时,基于所述第一距离因子和所述屏幕宽高比确定所述相机参数;
56.在所述第一比值小于所述屏幕宽高比时,基于所述第二距离因子和所述屏幕宽高比确定所述相机参数。
57.在确定正交相机的相机参数时,首先计算第一距离因子与第二距离因子之比,获取第一比值,将第一比值与屏幕宽高比进行比较。当前显示屏幕的屏幕宽高比为aspect,如果在正交相机下,二维户型图保持不变形(不被拉伸或挤压),需要正交相机的横向参数left、right和纵向参数top、bottom的比例,也遵循aspect这个比例,也就是正交相机的参数中体现的宽高比是固定的,即,需要满足下述关系:(right-left)/(top-bottom)=aspect,否则二维户型图会变形。
58.在第一比值大于或者等于屏幕宽高比时,表明二维户型图本身横向很长,宽高比大,此时正交相机的参数则要以第一距离因子为准;在第一比值小于屏幕宽高比时,表明二维户型图本身纵向很长,宽高比小,此时正交相机的参数则要以第二距离因子为准。需要说明的是,这里宽高比的大小,是相对于aspect而言。
59.下面针对第一比值大于或者等于屏幕宽高比的情况,确定正交相机的参数的过程进行阐述。基于所述第一距离因子和所述屏幕宽高比确定所述相机参数,包括:基于所述第一距离因子的负值确定left参数、基于所述第一距离因子确定right参数;基于所述第一距离因子与所述屏幕宽高比的比值确定top参数、基于所述第一距离因子与所述屏幕宽高比的比值的负值确定bottom参数。
60.在基于第一距离因子和屏幕宽高比确定相机参数时,由于户型图本身横向很长,宽高比大,将第一距离因子的负值确定为left参数、第一距离因子确定为right参数,将第一距离因子与屏幕宽高比的比值确定为top参数、第一距离因子与屏幕宽高比的比值的负值确定为bottom参数。
61.在当前情况下,正交相机的left参数为:-(w1+margin),正交相机的right参数为:w1+margin,正交相机的top参数为:(w1+margin)/aspect,正交相机的bottom参数为:-(w1+margin)/aspect。此时,(right-left)/(top-bottom)=2(w1+margin)/[2(w1+margin)/aspect]=aspect。
[0062]
需要说明的是,正交相机包括left参数、right参数、top参数、bottom参数、near参数和far参数,下面对正交相机的各项参数进行介绍。
[0063]
left—摄像机视锥体左侧面。
[0064]
right—摄像机视锥体右侧面。
[0065]
top—摄像机视锥体上侧面。
[0066]
bottom—摄像机视锥体下侧面。
[0067]
near—摄像机视锥体近端面。
[0068]
far—摄像机视锥体远端面。
[0069]
left参数的值不能够大于right参数的值,而且left参数和right参数设置的值必须位于摄像机position中x坐标的两侧,否则将看不到影像。对应的top参数和bottom参数也一样,bottom参数值不能大于top参数值,且位于摄像机position坐标y值两边,否则也会
看不到投影影像。near参数和far参数分别用来设置摄像机近端面和远端面,也就是通常说的最近距离和最远距离。near参数设置越小,投影的影像就越大,反之则越小。但是near参数并不是影响投影物体大小最大的,影响投影物体尺寸最大的还是left参数,right参数,top参数,bottom参数,而且也影响投影物体的形状,所以在设置这四个参数的时候,left参数与right参数之间的距离和top参数与bottom参数之间的距离的比例一定要和原始的canvas画布比例相等,不然会导致投影的物体形状变形。
[0070]
下面针对第一比值小于屏幕宽高比的情况,确定正交相机的参数的过程进行阐述。基于所述第二距离因子和所述屏幕宽高比确定所述相机参数,包括:基于所述第二距离因子的负值与所述屏幕宽高比的乘积确定left参数、基于所述第二距离因子与所述屏幕宽高比的乘积确定right参数;基于所述第二距离因子确定top参数、基于所述第二距离因子的负值确定bottem参数。
[0071]
在基于第二距离因子和屏幕宽高比确定相机参数时,由于户型图本身纵向很长,宽高比小,将第二距离因子的负值与屏幕宽高比的乘积确定为left参数、第二距离因子与屏幕宽高比的乘积确定为right参数,将第二距离因子确定为top参数、第二距离因子的负值确定为bottem参数。
[0072]
在当前情况下,正交相机的left参数为:-(h1+margin)*aspect,正交相机的right参数为:(h1+margin)*aspect,正交相机的的top参数为:(h1+margin),正交相机的bottom参数为:-(h1+margin)。此时,(right-left)/(top-bottom)=[2(h1+margin)*aspect]/[2(h1+margin)]=aspect。
[0073]
本技术上述实施过程,在确定正交相机的相机参数时,将基于第一距离因子与第二距离因子之比确定的第一比值与屏幕宽高比进行比较,在第一比值大于或者等于屏幕宽高比时,采用对应的第一策略确定相机参数,在第一比值小于屏幕宽高比时,采用对应的第二策略确定相机参数,可以使得正交相机的相机参数中体现的宽高比是固定的,保证二维户型图不会发生变形。
[0074]
下面对确定目标高度的过程进行介绍,根据所述第一距离因子、所述第二距离因子、所述透视相机的视角角度和所述屏幕宽高比,确定所述正交相机和所述透视相机相对于目标平面的目标高度,包括:
[0075]
根据所述视角角度的二分之一的正切值确定第一因子;
[0076]
基于所述第二距离因子与所述第一因子之比,确定第一高度;
[0077]
基于所述第一距离因子与第二因子之比,确定第二高度,所述第二因子为所述第一因子与所述屏幕宽高比的乘积确定;
[0078]
将所述第一高度和所述第二高度中的最大高度确定为所述目标高度。
[0079]
在确定第一距离因子以及第二距离因子之后,在纵向上计算出正交相机和透视相机对应的第一高度、在横向上计算出正交相机和透视相机对应的第二高度。正交相机的高度和透视相机的高度一致,这样在三维户型图和二维户型图互相切换时,能够保持动画无缝切换。
[0080]
下面对计算第一高度的过程进行介绍,透视相机的视角角度为fov,基于视角角度fov的二分之一的正切值确定第一因子,然后基于第二距离因子与第一因子之比,确定第一高度。参见图5所示,第一高度的计算表达式为:h1=(h1+margin)/tan(fov/2),此时,默认
二维户型图中心点距离纵向边界之间的距离为h1+margin。
[0081]
下面对计算第二高度的过程进行介绍,在确定第一因子之后,基于第一因子与屏幕宽高比的乘积确定第二因子,然后基于第一距离因子与第二因子之比,确定第二高度,第二高度的表达式为:h2=(w1+margin)/[tan(fov/2)*aspect]。其中,(w1+margin)/aspect为在w1+margin固定的情况下、基于屏幕宽高比确定的h1+margin,(w1+margin)/[tan(fov/2)*aspect]可以理解为基于屏幕宽高比确定的h1+margin所对应的高度。
[0082]
在确定h1与h2之后,比较h1与h2的大小,为了使得横向、纵向都能有至少margin的距离,需要取h1和h2中最大的一个作为透视相机和正交相机的高度。需要说明的是,在h1大于h2的情况下,将第一高度确定为目标高度,二维户型图中心点距离纵向边界之间的距离为h1+margin,在h1小于h2的情况下,将第二高度确定为目标高度,二维户型图中心点距离纵向边界之间的距离大于h1+margin。
[0083]
在确定正交相机的相机参数、确定正交相机和透视相机的高度之后,可以基于正交相机显示二维户型图,以在二维户型图场景下,将透视相机改为正交相机,使得原本透视相机下的二维户型图换算到正交相机下后,尺寸大小不变,且在二维户型图和三维户型图切换时,相机无缝衔接,动画流畅,用户对相机切换无感,提升了用户的体验。
[0084]
下面对显示切换的过程进行介绍,在接收到显示切换指令的情况下,响应于所述显示切换指令,将所述正交相机和所述透视相机进行切换,以对所述二维户型图和所述三维户型图进行显示切换,包括:
[0085]
在基于所述正交相机显示所述二维户型图、接收到将所述二维户型图切换为所述三维户型图的所述显示切换指令的情况下,将所述正交相机切换为所述透视相机,以将显示的所述二维户型图切换为所述三维户型图;
[0086]
在基于所述透视相机显示所述三维户型图、接收到将所述三维户型图切换为所述二维户型图的所述显示切换指令的情况下,将所述透视相机切换为所述正交相机,以将显示的所述三维户型图切换为所述二维户型图。
[0087]
在基于正交相机显示二维户型图的情况下,若接收到将二维户型图切换为三维户型图的显示切换指令,则将用于显示二维户型图的正交相机切换为用于显示三维户型图的透视相机,基于相机的切换实现二维户型图至三维户型图的切换。
[0088]
在基于透视相机显示三维户型图的情况下,若接收到将三维户型图切换为二维户型图的显示切换指令,则将用于显示三维户型图的透视相机切换为用于显示二维户型图的正交相机,基于相机的切换实现三维户型图至二维户型图的切换。
[0089]
由于正交相机的相机参数、正交相机和透视相机的高度基于原本透视相机的参数,二维户型图的大小来计算,因此在进行显示切换时,可以做到无缝切换、动画流畅,提高用户的浏览体验。
[0090]
以上为本技术实施例提供的相机切换方法的整体实施过程,在根据二维户型图对应的目标包围盒的尺寸信息、显示屏幕对应的屏幕宽高比、目标距离以及透视相机的视角角度,确定正交相机的相机参数、正交相机和透视相机相对于目标平面的目标高度之后,基于正交相机显示二维户型图或者基于透视相机显示三维户型图,在基于正交相机显示二维户型图时,可以在二维户型图场景下,将透视相机更改为正交相机,避免容易出现视觉错位、影响用户的视觉体验的问题,在接收到显示切换指令的情况下,将正交相机和透视相机
进行切换,以对二维户型图和三维户型图进行显示切换,可以实现由二维户型图无缝衔接切换至三维户型图或者由三维户型图无缝衔接切换至二维户型图,动画流畅,优化用户的视觉体验。
[0091]
从另一方面来说,本技术实施例是提供一种基于vr房间户型图的正交相机与透视相机无缝切换的方案,解决了二维户型图在透视相机下出现的门窗与墙错位的情况,能够展示完美的二维户型图,同时,通过一系列策略计算,得到了无缝衔接切换二维户型图/三维户型图的最佳实践,动画流畅,用户无感知,提升了用户的视觉体验。
[0092]
本技术实施例提供一种相机切换装置,参见图6所示,该装置可以包括:
[0093]
确定模块601,用于根据二维户型图对应的目标包围盒的尺寸信息、显示屏幕对应的屏幕宽高比、目标距离以及透视相机的视角角度,确定正交相机的相机参数、所述正交相机和所述透视相机相对于目标平面的目标高度;
[0094]
显示模块602,用于在确定所述正交相机的相机参数、基于所述目标高度确定所述正交相机和所述透视相机的位置之后,基于所述正交相机显示所述二维户型图或者基于所述透视相机显示三维户型图;
[0095]
切换模块603,用于在接收到显示切换指令的情况下,响应于所述显示切换指令,将所述正交相机和所述透视相机进行切换,以对所述二维户型图和所述三维户型图进行显示切换;
[0096]
其中,所述二维户型图为将目标房屋的二维户型图数据在三维空间中展示时对应的图像,所述目标距离为预先配置的所述二维户型图在所述显示屏幕展示时所述二维户型图的边界与所述显示屏幕的边界之间的所允许最小距离,所述目标平面为根据目标方向在所述三维空间中确定的平面,所述目标方向为所述正交相机的拍摄方向和所述正交相机的焦点确定的方向。
[0097]
可选地,所述确定模块包括:
[0098]
第一确定子模块,用于基于所述目标包围盒的宽度信息、所述目标包围盒的高度信息以及所述目标距离,确定第一距离因子和第二距离因子;
[0099]
第二确定子模块,用于根据所述第一距离因子、所述第二距离因子和所述屏幕宽高比,确定所述正交相机的相机参数;
[0100]
第三确定子模块,用于根据所述第一距离因子、所述第二距离因子、所述透视相机的视角角度和所述屏幕宽高比,确定所述正交相机和所述透视相机相对于目标平面的目标高度;
[0101]
其中,所述第一距离因子基于第一距离与所述目标距离之和确定、所述第二距离因子基于第二距离与所述目标距离之和确定,所述第一距离为所述目标包围盒的宽度的二分之一、所述第二距离为所述目标包围盒的高度的二分之一。
[0102]
可选地,所述第二确定子模块包括:
[0103]
第一确定单元,用于基于所述第一距离因子与所述第二距离因子之比,确定第一比值;
[0104]
第二确定单元,用于在所述第一比值大于或者等于所述屏幕宽高比时,基于所述第一距离因子和所述屏幕宽高比确定所述相机参数;
[0105]
第三确定单元,用于在所述第一比值小于所述屏幕宽高比时,基于所述第二距离
因子和所述屏幕宽高比确定所述相机参数。
[0106]
可选地,所述第二确定单元包括:
[0107]
第一确定子单元,用于基于所述第一距离因子的负值确定left参数、基于所述第一距离因子确定right参数;
[0108]
第二确定子单元,用于基于所述第一距离因子与所述屏幕宽高比的比值确定top参数、基于所述第一距离因子与所述屏幕宽高比的比值的负值确定bottom参数。
[0109]
可选地,所述第三确定单元包括:
[0110]
第三确定子单元,用于基于所述第二距离因子的负值与所述屏幕宽高比的乘积确定left参数、基于所述第二距离因子与所述屏幕宽高比的乘积确定right参数;
[0111]
第四确定子单元,用于基于所述第二距离因子确定top参数、基于所述第二距离因子的负值确定bottem参数。
[0112]
可选地,所述第三确定子模块包括:
[0113]
第四确定单元,用于根据所述视角角度的二分之一的正切值确定第一因子;
[0114]
第五确定单元,用于基于所述第二距离因子与所述第一因子之比,确定第一高度;
[0115]
第六确定单元,用于基于所述第一距离因子与第二因子之比,确定第二高度,所述第二因子为所述第一因子与所述屏幕宽高比的乘积确定;
[0116]
第七确定单元,用于将所述第一高度和所述第二高度中的最大高度确定为所述目标高度。
[0117]
可选地,所述切换模块包括:
[0118]
第一切换子模块,用于在基于所述正交相机显示所述二维户型图、接收到将所述二维户型图切换为所述三维户型图的所述显示切换指令的情况下,将所述正交相机切换为所述透视相机,以将显示的所述二维户型图切换为所述三维户型图;
[0119]
第二切换子模块,用于在基于所述透视相机显示所述三维户型图、接收到将所述三维户型图切换为所述二维户型图的所述显示切换指令的情况下,将所述透视相机切换为所述正交相机,以将显示的所述三维户型图切换为所述二维户型图。
[0120]
对于本技术中的相机切换装置的实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可,这里不再进一步阐述。
[0121]
本技术实施例还提供了一种电子设备,包括:处理器,存储器,存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述相机切换方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0122]
举例如下,图7示出了一种电子设备的实体结构示意图。参见图7所示,该电子设备可以包括:处理器(processor)710、通信接口(communications interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,处理器710用于执行以下步骤:根据二维户型图对应的目标包围盒的尺寸信息、显示屏幕对应的屏幕宽高比、目标距离以及透视相机的视角角度,确定正交相机的相机参数、所述正交相机和所述透视相机相对于目标平面的目标高度;在确定所述正交相机的相机参数、基于所述目标高度确定所述正交相机和所述透视相机的位置之后,基于所述正交相机显示所述二维户型图或者基于所述透视相机显示三维户型图;在接收到显示切换指令的情况下,响应于所述显示切换指令,
将所述正交相机和所述透视相机进行切换,以对所述二维户型图和所述三维户型图进行显示切换;其中,所述二维户型图为将目标房屋的二维户型图数据在三维空间中展示时对应的图像,所述目标距离为预先配置的所述二维户型图在所述显示屏幕展示时所述二维户型图的边界与所述显示屏幕的边界之间的所允许最小距离,所述目标平面为根据目标方向在所述三维空间中确定的平面,所述目标方向为所述正交相机的拍摄方向和所述正交相机的焦点确定的方向。处理器710还可以执行本技术实施例中的其他方案,这里不再进一步阐述。
[0123]
此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。
[0124]
本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述相机切换方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等。
[0125]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0126]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例所述的方法。
[0127]
上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本技术的保护之内。
[0128]
本领域普通技术人员可以意识到,结合本技术实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0129]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、
装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0130]
在本技术所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0131]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0132]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0133]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0134]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1