基于虚拟现实的图像显示方法和装置
技术领域
本发明涉及人机交互技术领域,尤其涉及一种基于虚拟现实的图像显示方法和装置。
背景技术
虚拟现实技术是结合计算机图形学系统以及各种控制接口设备,在计算机上生成可交互的三维环境中提供沉浸式虚拟场景的技术。
对于用户而言,对于虚拟场景的视觉感知是提供真实沉浸感的基础。为了实现虚拟场景的立体显示,可以结合计算机图像学系统将虚拟场景转换为虚拟立体场景,从而将虚拟立体场景呈现在真实场景中。
但是在现有技术中,通过是利用固定的转换参数将虚拟场景线性的转换为虚拟立体场景,可能会导致虚拟立体场景不能与真实场景中具有较好的适配,也就是说,用户对于虚拟场景的视觉感知与真实场景中的视觉感知是不一致的,从而无法达到较佳的立体显示效果,降低了用户的真实沉浸感。
发明内容
为了解决上述问题,本发明提供一种基于虚拟现实的图像显示方法和装置,可以实现虚拟场景的视觉感知与真实场景中的视觉感知的一致性,提高虚拟立体场景与真实场景的适配性。
本发明提供一种基于虚拟现实的图像显示方法,包括:
分别获取左眼图像的水平视场角和垂直视场角以及右眼图像的水平视场角和垂直视场角,其中,左眼图像和右眼图像分别为第一摄像机和第二摄像机针对同一物体各自拍摄的图像;
根据所述两个图像的水平视场角和垂直视场角,分别计算两个图像在虚拟显示屏上的水平方向宽度和垂直方向宽度;
根据所述两个图像在虚拟显示屏上的水平方向宽度和垂直方向宽度,对所述两个图像在虚拟显示屏上进行显示。
可选地,分别获取两个图像的水平视场角和垂直视场角之前,包括:
在拍摄所述左眼图像和所述右眼图像时,分别记录所述第一摄像机和所述第二摄像机针对同一物体各自拍摄图像时的水平视场角和垂直视场角;
将拍摄图像时的水平视场角和垂直视场角保存到对应图像的元数据中,以便从图像的元数据中获取拍摄该图像时的水平视场角和垂直视场角。
可选地,根据所述两个图像的水平视场角和垂直视场角,分别计算两个图像在虚拟显示屏上的水平方向宽度和垂直方向宽度,包括:
根据图像的水平视场角,以及预设的虚拟显示屏距离对应的虚拟成像设备之间的距离,计算得到图像在虚拟显示屏上的水平方向宽度;
根据图像的垂直视场角,以及预设的虚拟显示屏距离对应的虚拟成像设备之间的距离,计算得到图像在虚拟显示屏上的垂直方向宽度。
可选地,所述的方法包括:
根据计算公式B=2A*tgα,计算图像在虚拟显示屏上的水平方向宽度和垂直方向宽度,其中,A为预设的虚拟显示屏距离对应的虚拟成像设备之间的距离,当α为图像的水平视场角时,则B为图像在虚拟显示屏上的水平方向宽度,或当α为图像的垂直视场角时,则B为图像在虚拟显示屏上的垂直方向宽度。
可选地,对应左右眼设置两个光学成像设备包括对应左右眼设置的两个透镜,第一透镜和第二透镜,且两个透镜对称安装在虚拟现实设备上,两个透镜的硬件参数相同,且两个透镜之间的瞳距为6.5cm。
本发明还提供一种基于虚拟现实的立体图像显示装置,包括:
获取模块,用于分别获取左眼图像的水平视场角和垂直视场角以及右眼图像的水平视场角和垂直视场角,其中,左眼图像和右眼图像分别为第一摄像机和第二摄像机针对同一物体各自拍摄的图像;
计算模块,用于根据所述两个图像的水平视场角和垂直视场角,分别计算两个图像在虚拟显示屏上的水平方向宽度和垂直方向宽度;
显示模块,用于根据所述两个图像在虚拟显示屏上的水平方向宽度和垂直方向宽度,对所述两个图像在虚拟显示屏上进行显示。
可选地,所述的装置还包括:
记录模块,用于在拍摄所述左眼图像和所述右眼图像时,分别记录所述第一摄像机和所述第二摄像机针对同一物体各自拍摄图像时的水平视场角和垂直视场角;
保存模块,用于将拍摄图像时的水平视场角和垂直视场角保存到对应图像的元数据中,以便从图像的元数据中获取拍摄该图像时的水平视场角和垂直视场角。
可选地,所述计算模块具体用于:
根据图像的水平视场角,以及预设的虚拟显示屏距离对应的虚拟成像设备之间的距离,计算得到图像在虚拟显示屏上的水平方向宽度;
根据图像的垂直视场角,以及预设的虚拟显示屏距离对应的虚拟成像设备之间的距离,计算得到图像在虚拟显示屏上的垂直方向宽度。
可选地,所述计算模块具体用于:
根据计算公式B=2A*tgα,计算图像在虚拟显示屏上的水平方向宽度和垂直方向宽度,其中,A为预设的虚拟显示屏距离对应的虚拟成像设备之间的距离,当α为图像的水平视场角时,则B为图像在虚拟显示屏上的水平方向宽度,或当α为图像的垂直视场角时,则B为图像在虚拟显示屏上的垂直方向宽度。
可选地,对应左右眼设置两个光学成像设备包括对应左右眼设置的两个透镜,第一透镜和第二透镜,且两个透镜对称安装在虚拟现实设备上,两个透镜的硬件参数相同,且两个透镜之间的瞳距为6.5cm。
本发明实施例通过将两个光学成像设备对应左右眼设置在虚拟现实设备上,当两个摄像机针对同一物体拍摄时,针对左右眼生成两个不同的图像,分别记录两个图像的水平视场角和垂直视场角并保存到对应图像的元数据中,从而可以基于两个图像的水平视场角和垂直视场角,计算该两个图像显示在虚拟显示屏上的水平方向宽度和垂直方向宽度,当显示在虚拟显示屏上的两个图像投射到人眼中,人眼获取该两个图像后在脑中产生立体感。由于在虚拟显示屏上显示图像时考虑到了实际针对左右眼成像时的水平视场角和垂直视场角,从而使得在虚拟显示屏上的显示图像与真实场景中的物体比例是一致的,这样使得用户对于虚拟场景的视觉感知与真实场景中的视觉感知是一致的,可以提高用户的真实沉浸感。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的基于虚拟现实的图像显示方法流程示意图;
图2为本发明实施例提供的虚拟场景布置的示意图;
图3为本发明实施例提供的一种透镜布置示意图;
图4为本发明一实施例提供的基于虚拟现实的图像显示装置结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
发明人在实现本发明的过程中发现:现有的立体图像基本由具有双摄像头的设备拍摄,采用标准的图片保存格式和元数据,该种图片的元数据缺乏对拍摄时镜头的水平视场角和垂直视场角等数据的支持,所以在显示的时候只能看到立体的影像,但是无法自动调整图像的大小来与拍摄者拍摄时感受到的物体大小保持一致,也就是说,显示的虚拟场景不能与真实场景具有较好的适配,从而导致用户对于虚拟场景的视觉感知与真实场景中的视觉感知是不一致的,无法达到较佳的显示效果,降低了用户的真实沉浸感。
为了解决上述问题,本发明的发明思想:当两个摄像机针对同一物体拍摄时,针对左右眼生成两个不同的图像,分别记录两个图像的水平视场角和垂直视场角并保存到对应图像的元数据中,从而可以基于两个图像的水平视场角和垂直视场角,计算该两个图像显示在虚拟显示屏上的水平方向宽度和垂直方向宽度,当显示在虚拟显示屏上的两个图像投射到人眼中,人眼获取该两个图像后在脑中产生立体感。由于在虚拟显示屏上显示图像时考虑到了实际针对左右眼成像时的水平视场角和垂直视场角,从而使得在虚拟显示屏上的显示图像与真实场景中的物体比例是一致的,这样使得用户对于虚拟场景的视觉感知与真实场景中的视觉感知是一致的,可以提高用户的真实沉浸感。
图1为本发明一实施例提供的基于虚拟现实的图像显示方法流程示意图,如图1所示,包括:
101、分别获取左眼图像的水平视场角和垂直视场角以及右眼图像的水平视场角和垂直视场角。
其中,左眼图像和右眼图像分别为第一摄像机和第二摄像机针对同一物体各自拍摄的图像;
当第一摄像机和第二摄像机针对同一物体各自拍摄图像时,可以针对左右眼生成两个不同的图像,例如,一个图像是针对右眼的第一摄像机拍摄的图像(简称右眼图像),另一个图像是针对左眼的第二摄像机拍摄的图像(简称左眼图像)。
为了能够实现虚拟显示屏上的显示图像与真实场景中的物体比例是一致的,从而使得用户对于虚拟场景的视觉感知与真实场景中的视觉感知保持一致,本发明实施例中,当第一摄像机和第二摄像机对同一物体各自生成对应左右眼的图像(左眼图像和右眼图像)时,分别记录两个图像的水平视场角和垂直视场角,即第一摄像机对同一物体拍摄图像时的水平视场角和垂直视场角,和第二摄像机对同一物体拍摄图像时的水平视场角和垂直视场角,之后,为了节约虚拟现实设备的内存资源,可以将两个图像的水平视场角和垂直视场角分别保存到对应图像的元数据中,以便虚拟现实设备在虚拟显示之前从图像的元数据中获取拍摄该图像时的水平视场角和垂直视场角;其中,保存到元数据中的水平视场角和垂直视场角可以为一串字符串。
102、根据两个图像的水平视场角和垂直视场角,分别计算两个图像在虚拟显示屏上的水平方向宽度和垂直方向宽度;
图2为本发明实施例提供的虚拟场景布置的示意图,如图2所示,在虚拟场景里布置两个虚拟摄像头,左边的虚拟摄像头对应左眼,右边的虚拟摄像头对应右眼,在两个虚拟摄像头前面的一定距离(该距离是可以变化的)放置两个虚拟显示屏,其中,一个虚拟显示屏用来显示针对右眼的虚拟图像,另一个虚拟显示屏用来显示针对左眼的虚拟图像。
步骤102具体实现时,例如根据上述步骤101中获取的右眼图像的水平视场角,以及根据图3所示预设的虚拟显示屏距离对应的虚拟成像设备之间的距离,可以计算得到右眼图像在虚拟显示屏上的水平方向宽度;根据上述步骤101中获取的右眼图像的垂直视场角,以及根据图3所示预设的虚拟显示屏距离对应的虚拟成像设备之间的距离,可以计算得到右眼图像在虚拟显示屏上的垂直方向宽度。同理,可以得到左眼图像在虚拟显示屏上的水平方向宽度和垂直方向宽度。
在本发明一种可选的实施方式中,可以根据计算公式B=2A*tgα,计算图像在虚拟显示屏上的水平方向宽度和垂直方向宽度;其中,A为虚拟显示屏距离对应的虚拟成像设备(或虚拟摄像头)之间的距离,当α为图像的水平视场角时,则B为图像在虚拟显示屏上的水平方向宽度,或当α为图像的垂直视场角时,则B为图像在虚拟显示屏上的垂直方向宽度。
当虚拟显示屏距离对应的虚拟成成像设备(或虚拟摄像头)之间的距离A为i1时,对应的图像在虚拟显示屏上的水平方向宽度或者垂直方向宽度B1;虚拟显示屏距离对应的虚拟成成像设备(或虚拟摄像头)之间的距离A为i2时,对应的图像在虚拟显示屏上的水平方向宽度或者垂直方向宽度B2。
103、根据两个图像在虚拟显示屏上的水平方向宽度和垂直方向宽度,对两个图像在虚拟显示屏上进行显示。
当显示在虚拟显示屏上的两个图像投射到人眼中,人眼获取该两个图像后在脑中产生立体感。
需要说明的是,本发明实施例中,为了减少左右眼的视觉误差和提高用户对虚拟场景的真实沉浸感,图3为本发明实施例提供的一种透镜布置示意图,如图3所示,第一透镜(透镜1)和第二透镜(透镜2)分别对应左右眼而设置,如透镜1针对左眼,透镜2针对右眼布置,两个透镜对称安装在虚拟现实设备(如虚拟现实的头戴设备)上,两个透镜的硬件参数相同,且两个透镜之间的瞳距为6.5cm。
由此可知,本发明实施例中,当虚拟显示屏距离虚拟成像设备(或虚拟摄像头)比较近的时候,对应的图像在虚拟显示屏上的水平方向宽度或者垂直方向宽度也成比例的变小;当虚拟显示屏距离虚拟成像设备(或虚拟摄像头)比较远的时候,对应的图像在虚拟显示屏上的水平方向宽度或者垂直方向宽度也成比例的变大。也就是说,无论虚拟显示屏与虚拟成像设备(或虚拟摄像头)之间的距离远近,用户对于虚拟场景中的视觉感知是该物体大小比例没有变化,即用户对于虚拟场景中的视觉感知与真实场景中的视觉感知是一致的。因此,本发明实施例的图像显示可以达到较佳的显示效果,大大提高了用户的真实沉浸感。
而现有技术中,由于不考虑拍摄图像时的水平视场角和垂直视场角,虚拟显示屏与虚拟成像设备(或虚拟摄像头)之间的距离无论是远或近,图像在虚拟显示屏上的大小不变,因此,当虚拟显示屏距离虚拟成像设备(或虚拟摄像头)比较近的时候,用户对于虚拟场景中的视觉感知是该物体感觉很大;当虚拟显示屏距离虚拟成像设备(或虚拟摄像头)比较远的时候,用户对于虚拟场景中的视觉感知是该物体感觉很小,因此,现有技术的图像显示无法达到较佳的显示效果,大大降低了用户的真实沉浸感。
图4为本发明一实施例提供的基于虚拟现实的图像显示装置结构示意图,如图4所示,包括:
获取模块,用于分别获取左眼图像的水平视场角和垂直视场角以及右眼图像的水平视场角和垂直视场角,其中,左眼图像和右眼图像分别为第一摄像机和第二摄像机针对同一物体各自拍摄的图像;
计算模块,用于根据所述两个图像的水平视场角和垂直视场角,分别计算两个图像在虚拟显示屏上的水平方向宽度和垂直方向宽度;
显示模块,用于根据所述两个图像在虚拟显示屏上的水平方向宽度和垂直方向宽度,对所述两个图像在虚拟显示屏上进行显示。
可选地,所述的装置还包括:
记录模块,用于在拍摄所述左眼图像和所述右眼图像时,分别记录所述第一摄像机和所述第二摄像机针对同一物体各自拍摄图像时的水平视场角和垂直视场角;
保存模块,用于将拍摄图像时的水平视场角和垂直视场角保存到对应图像的元数据中,以便从图像的元数据中获取拍摄该图像时的水平视场角和垂直视场角。
可选地,所述计算模块具体用于:
根据图像的水平视场角,以及预设的虚拟显示屏距离对应的虚拟成像设备之间的距离,计算得到图像在虚拟显示屏上的水平方向宽度;
根据图像的垂直视场角,以及预设的虚拟显示屏距离对应的虚拟成像设备之间的距离,计算得到图像在虚拟显示屏上的垂直方向宽度。
可选地,所述计算模块具体用于:
根据计算公式B=2A*tgα,计算图像在虚拟显示屏上的水平方向宽度和垂直方向宽度,其中,A为预设的虚拟显示屏距离对应的虚拟成像设备之间的距离,当α为图像的水平视场角时,则B为图像在虚拟显示屏上的水平方向宽度,或当α为图像的垂直视场角时,则B为图像在虚拟显示屏上的垂直方向宽度。
本发明实施例所述的装置可以执行图1所示的方法,其实现原理和技术效果不再赘述。
本发明实施例中,上述装置的结构中包括处理器和存储器,所述存储器用于存储支持基于虚拟现实的图像显示装置执行上述图1所示实施例中基于虚拟现实的图像显示方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。
所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理器调用执行。
本发明实施例还提供了一种计算机存储介质,用于储存基于虚拟现实的图像显示装置所用的计算机软件指令,所述计算机软件指令包含了用于执行上述基于虚拟现实的图像显示方法为基于虚拟现实的图像显示装置所涉及的程序。
需要说明的是,本发明实施例的方法并不限于基于虚拟现实的图像显示方法,还可以实现基于虚拟现实的视频显示,因为视频是时间帧连续的图像集合,当两个摄像机针对人眼左右眼的视场方向拍摄每个时间帧的右眼图像和左眼图像时,均可以记录每个时间帧的右眼图像和左眼图像的水平视场角和垂直视场角,并保存到对应时间帧的右眼图像和左眼图像的元数据中,因此可以基于每个时间帧的右眼图像和左眼图像的水平视场角和垂直视场角,计算每个时间帧的右眼图像和左眼图像显示在虚拟显示屏上的水平方向宽度和垂直方向宽度,当显示在虚拟显示屏上的每个时间帧的右眼图像和左眼图像投射到人眼中,人眼获取该段视频在脑中产生立体感。且用户对于虚拟视频场景中的视觉感知与真实视频场景中的视觉感知是一致的。因此,本发明实施例的视频图像显示可以达到较佳的显示效果,大大提高了用户的真实沉浸感。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。