球面图像处理方法、装置及服务器与流程

文档序号:20267107发布日期:2020-04-03 18:32阅读:271来源:国知局
球面图像处理方法、装置及服务器与流程

本申请涉及图像处理技术,尤其涉及一种球面图像处理方法、装置及服务器。



背景技术:

在虚拟现实(virtualreality,简称:vr)全景视频应用中,用户能够以360度任意视角观看动态视频,享受一种全新的观看体验。现有的全景视频观看方式大都采用3自由度(3degreeoffreedom,简称:3dof)的观影体验,在这种应用中,视点(包括vr眼镜、手机、平板、电视、电脑等)固定在全景视频组成的球体的中心点位置,可进行任意水平偏转、竖直俯仰、绕轴滚转的偏转对全景视频进行观看。但随着人们对vr强烈沉浸感的需求逐渐加深,期望可以佩戴视点在空间范围内进行前后左右自由移动,同时在这种移动的情况下观看到的视频仍保持与现实世界相同或相近的体验。由此带来的图像处理中如何对全景视频中物体的缩放成为关键技术之一。

现有技术对全景视频的图像处理实现了视点在前后移动时其视角范围内的画面内容随之增大或减小,但是如果终端再进行旋转时,会出现对应视角内容运动变得过快(放大后旋转)或过慢(缩小后旋转)的情况,不符合人在真实世界自由走动观看时的情况,无法做到沉浸式的视觉效果,影响体验。



技术实现要素:

本申请提供一种球面图像处理方法、装置及服务器,以实现依用户观看球面图像时的视点的实际视野进行局部的放大和局部的缩小,使得用户获得类似于真实世界中实际观看到的物体发生近大远小缩放变化的观影体验。

第一方面,本申请提供一种球面图像处理方法,对全景视频中的每一帧球面图像进行处理,服务器先获取球面图像,该球面图像横向跨度为360度,纵向跨度为180度,其包围的空间呈球体状。本申请中由于视点的位移使得其可以看到的视野范围内的画面相较于位于球心位置时发生了放大或缩小的变化,为了适应这种变化,服务器需要对球面图像进行区域划分,划分的目的是需要将球面图像中的某些区域进行放大(像素扩张区域),某些区域进行缩小(像素收缩区域),且放大和缩小的比例并非完全一致,视实际情况而定,因此划分后的球面图像可以针对不同的区域进行不同的图像处理。本申请中的图像处理包括对像素扩张区域内的图像进行像素扩张处理,对像素收缩区域内的图像进行像素收缩处理,像素扩张处理包括将像素扩张区域内的图像像素的数量增多,像素收缩处理包括将像素收缩区域内的图像像素的数量减少。可见经过上述对球面图像进行的处理后,本申请不再是简单的只对球面图像进行放大或缩小,而是依视点的实际视野进行局部的放大和局部的缩小,使得用户观看vr全景视频的过程中视点自由移动时,能够获得类似于真实世界中实际观看到的物体发生近大远小缩放变化的观影体验,即使用户旋转也可以观看到物体逐渐由大变小或由小变大的变化,而不会看到类似于望远镜体验中所有的物体都被缩放的情况,符合真实世界中物体的缩放变化,从而产生更为强烈的沉浸感。

在一种可能的实现方式中,服务器可以先确定球面图像上与球心和视点结合后满足设定的几何规则的像素,然后根据像素确定像素扩张区域和像素收缩区域。

基于上述方法,服务器可以根据视点相对于球心的偏移,确定球面图像上与视点的距离等于r的第一像素,然后以连接第一像素的圆为界限将球面图像划分为两个区域,其中,所包括的像素与视点的距离小于r的区域作为像素扩张区域,所包括的像素与视点的距离大于r的区域作为像素收缩区域。

基于上述方法,服务器还可以以视点为顶点,以视点到球心的连线为角平分线,确定角度为θ的角在球面图像上对应的第二像素,然后以连接第二像素的弧线为界限将球面图像划分为两个区域,其中,距离视点较近的区域作为像素扩张区域,距离视点较远的区域作为像素收缩区域。

在一种可能的实现方式中,服务器还可以根据球心和视点确定球面图像上的过渡区域,因此图像处理还包括对过渡区域内的图像中临近像素扩张区域的部分进行像素扩张处理,对过渡区域内的图像中临近像素收缩区域的部分进行像素收缩处理。

基于上述方法,服务器还可以根据球心和视点构建外切于球面图像的六面体,根据六面体中的各个面和球心构建六个椎体,根据六个椎体与球面图像相交处的像素将球面图像划分为六个区域,其中,六面体中垂直于球心到视点的连线的延长线的面对应的区域作为像素扩张区域,垂直于视点到球心的连线的延长线的面对应的区域作为像素收缩区域,其余四个面对应的区域作为过渡区域。

在一种可能的实现方式中,服务器可以以视点为顶点,以球心到视点的连线的延长线为角平分线,确定角度为ψ的角在球面图像上对应的第三像素,角度为ψ的角为处于视点的fov角,构建与球面图像外切的正四棱锥体,其中,正四棱锥的顶部由球心到第三像素的连线的延长线与外切于球面图像的平面相交的点围成。

在一种可能的实现方式中,服务器可以以视点为顶点,以球心到视点的连线的延长线为角平分线,确定角度为ψ的角在球面图像上对应的第三像素,角度为ψ的角为处于视点的fov角,以球心为顶点,以视点到球心的连线的延长线为角平分线,确定角度为δ的角在球面图像上对应的第四像素,角度为δ的角为背视面张角,构建与球面图像部分外切的四棱锥体,其中,四棱锥体的侧面与球面图像相切,球心到第三像素的连线的延长线与四棱锥体的侧面相交的点围成四棱锥体的顶部,球心到第四像素的连线的延长线与四棱锥体的侧面相交的点围成四棱锥体的底部。

基于上述方法,服务器可以在球面图像上,将四棱锥体的顶部对应的区域作为像素扩张区域,将四棱锥体的底部对应的区域作为像素收缩区域,将四棱锥体的侧面对应的区域作为过渡区域。

在一种可能的实现方式中,服务器可以以视点为球心,以球面图像所包围的球体空间的半径为半径,构建偏移球体;将偏移球体的球面划分为多个区域,多个区域与划分后的球面图像上的各个区域一一对应;确定偏移球体和划分后的球面图像上彼此对应的两个区域之间的映射关系,并根据映射关系对划分后的球面图像进行图像处理。

基于上述方法,服务器可以先调整四棱锥体构建与偏移球体外切的正方体,正方体中的各个面和视点构建六个椎体,根据六个椎体与偏移球体相交处的像素将偏移球体划分为六个区域;确定球面图像上的像素和四棱锥体上的点之间的映射关系,确定正方体和偏移球体上的映射关系,根据四棱锥体和正方体之间的映射关系确定偏移球体上的点与球面图像上的像素之间的映射关系。

上述实施例中将四棱锥体的六个映射面缩放到相同大小,形成一个正方体,该正方体外切于以视点为球心的偏移球体,以球面图像的直径作为缩放后正方体每个面的边长,可知正视面对应的区域中的像素被扩张,背视面对应的区域中的像素被收缩,侧视面对应的区域中的像素依照从正视面至背视面的方向由扩张逐渐变为收缩。使得用户观看vr全景视频的过程中视点自由移动时,能够获得类似于真实世界中实际观看到的物体发生近大远小缩放变化的观影体验,即使用户旋转也可以观看到物体逐渐由大变小或由小变大的变化,而不会看到类似于望远镜体验中所有的物体都被缩放的情况,符合真实世界中物体的缩放变化,从而产生更为强烈的沉浸感。

在一种可能的实现方式中,当球面图像采用非三维空间球面坐标表示像素时,非三维空间球面坐标包括等距柱状投影erp格式的像素坐标、立方体映射cmp格式的像素坐标、克拉斯特抛物线映射cpp格式的像素坐标,改进的立方体映射acp格式的像素坐标,截断四棱锥映射tsp格式的像素坐标,紧凑格式正八面体映射cohp格式的像素坐标以及紧凑格式正二十面体映射cisp格式的像素坐标中的任意一种。因此服务器获取球面图像之后,先将球面图像中表示像素的坐标映射为以球心为原点的三维空间球面坐标,而对划分后的球面图像进行图像处理之后,要将球面图像中表示像素的坐标反映射回非三维空间球面坐标。

在一种可能的实现方式中,当球面图像为3d全景球面图像时,3d全景球面图像包括左眼球面图像和右眼球面图像。因此,服务器获取球面图像之后,如果是针对左眼球面图像,先确定左眼球面图像的左眼球心,获取左眼视点,然后根据左眼球心和左眼视点确定左眼球面图像上的像素扩张区域和像素收缩区域,最后对左眼球面图像进行图像处理;如果是针对右眼球面图像,先确定右眼球面图像的右眼球心,获取右眼视点,然后根据右眼球心和右眼视点确定右眼球面图像上的像素扩张区域和像素收缩区域,最后对右眼球面图像进行图像处理。

第二方面,本申请提供一种球面图像处理装置,包括:

图像获取模块,用于获取球面图像,并确定球面图像的球心;

位置确定模块,用于确定用户观看球面图像时的视点,视点位于球面图像所包围的球体空间内除球心外的任意一点;

区域确定模块,用于根据球心和视点确定球面图像上的像素扩张区域和像素收缩区域;

处理模块,用于对划分后的球面图像进行图像处理,图像处理包括对像素扩张区域内的图像进行像素扩张处理,对像素收缩区域内的图像进行像素收缩处理,像素扩张处理包括将像素扩张区域内的图像像素的数量增多,像素收缩处理包括将像素收缩区域内的图像像素的数量减少。

在一种可能的实现方式中,区域确定模块,具体用于确定所述球面图像上与所述球心和所述视点结合后满足设定的几何规则的像素,根据像素确定像素扩张区域和像素收缩区域。

在一种可能的实现方式中,区域确定模块,具体用于根据视点相对于球心的偏移,确定球面图像上与视点的距离等于r的第一像素;以连接第一像素的圆为界限确定像素扩张区域和像素收缩区域,其中,所包括的像素与视点的距离小于r的区域作为像素扩张区域,所包括的像素与视点的距离大于r的区域作为像素收缩区域。

在一种可能的实现方式中,区域确定模块,具体用于以视点为顶点,以视点到球心的连线为角平分线,确定角度为θ的角在球面图像上对应的第二像素;以连接第二像素的弧线为界限确定像素扩张区域和像素收缩区域,其中,距离视点较近的区域作为像素扩张区域,距离视点较远的区域作为像素收缩区域。

在一种可能的实现方式中,区域确定模块,还用于根据球心和视点确定球面图像上的过渡区域;图像处理还包括对过渡区域内的图像中临近像素扩张区域的部分进行像素扩张处理,对过渡区域内的图像中临近像素收缩区域的部分进行像素收缩处理。

在一种可能的实现方式中,区域确定模块,具体用于根据球心和视点构建外切于球面图像的六面体;根据六面体中的各个面和球心构建六个椎体;根据六个椎体与球面图像相交处的像素将球面图像划分为六个区域,其中,六面体中垂直于球心到视点的连线的延长线的面对应的区域作为像素扩张区域,垂直于视点到球心的连线的延长线的面对应的区域作为像素收缩区域,其余四个面对应的区域作为过渡区域。

在一种可能的实现方式中,区域确定模块,具体用于以视点为顶点,以球心到视点的连线的延长线为角平分线,确定角度为ψ的角在球面图像上对应的第三像素,角度为ψ的角为处于视点的fov角,构建与球面图像外切的正四棱锥体,其中,正四棱锥的顶部由球心到第三像素的连线的延长线与外切于球面图像的平面相交的点围成。

在一种可能的实现方式中,区域确定模块,具体用于以视点为顶点,以球心到视点的连线的延长线为角平分线,确定角度为ψ的角在球面图像上对应的第三像素,角度为ψ的角为处于视点的fov角,以球心为顶点,以视点到球心的连线的延长线为角平分线,确定角度为δ的角在球面图像上对应的第四像素,角度为δ的角为背视面张角,构建与球面图像部分外切的四棱锥体,其中,四棱锥体的侧面与球面图像相切,球心到第三像素的连线的延长线与四棱锥体的侧面相交的点围成四棱锥体的顶部,球心到第四像素的连线的延长线与四棱锥体的侧面相交的点围成四棱锥体的底部。

在一种可能的实现方式中,区域确定模块,具体用于在球面图像上,将四棱锥体的顶部对应的区域作为像素扩张区域,将四棱锥体的底部对应的区域作为像素收缩区域,将四棱锥体的侧面对应的区域作为过渡区域。

在一种可能的实现方式中,处理模块,具体用于以视点为球心,以球面图像所包围的球体空间的半径为半径,构建偏移球体;将偏移球体的球面划分为多个区域,多个区域与划分后的球面图像上的各个区域一一对应;确定偏移球体和划分后的球面图像上彼此对应的两个区域之间的映射关系,并根据映射关系对划分后的球面图像进行图像处理。

在一种可能的实现方式中,处理模块,具体用于确定偏移球体上的点与球面图像上的像素之间的映射关系。

在一种可能的实现方式中,处理模块,具体用于调整四棱锥体构建与偏移球体外切的正方体,正方体中的各个面和视点构建六个椎体,根据六个椎体与偏移球体相交处的像素将偏移球体划分为六个区域;确定球面图像上的像素和四棱锥体上的点之间的映射关系,确定正方体和偏移球体上的映射关系,根据四棱锥体和正方体之间的映射关系确定偏移球体上的点与球面图像上的像素之间的映射关系。

在一种可能的实现方式中,当球面图像采用非三维空间球面坐标表示像素时,非三维空间球面坐标包括等距柱状投影erp格式的像素坐标、立方体映射cmp格式的像素坐标、克拉斯特抛物线映射cpp格式的像素坐标,改进的立方体映射acp格式的像素坐标,截断四棱锥映射tsp格式的像素坐标,紧凑格式正八面体映射cohp格式的像素坐标以及紧凑格式正二十面体映射cisp格式的像素坐标中的任意一种;图像获取模块,还用于将球面图像中表示像素的坐标映射为以球心为原点的三维空间球面坐标;处理模块,还用于将球面图像中表示像素的坐标反映射回非三维空间球面坐标。

在一种可能的实现方式中,当球面图像为3d全景球面图像时,3d全景球面图像包括左眼球面图像和右眼球面图像;针对左眼球面图像,图像获取模块,还用于确定左眼球面图像的左眼球心;位置确定模块,还用于获取左眼视点;区域划模块,还用于根据左眼球心和左眼视点确定左眼球面图像上的像素扩张区域和像素收缩区域;处理模块,还用于对左眼球面图像进行图像处理;针对右眼球面图像,图像获取模块,还用于确定右眼球面图像的右眼球心;位置确定模块,还用于获取右眼视点;区域划模块,还用于根据右眼球心和右眼视点确定右眼球面图像上的像素扩张区域和像素收缩区域;处理模块,还用于对右眼球面图像进行图像处理。

第三方面,本申请提供一种服务器,服务器包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上述第一方面中任一的球面图像处理方法。

第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包含至少一段代码,该至少一段代码由计算机执行,以执行上述第一方面中任一的球面图像处理方法。

第五方面,本申请提供一种计算机程序,当计算机程序被计算机执行时,用于执行上述第一方面中任一的球面图像处理方法。

本申请球面图像处理方法、装置及服务器,通过根据视点的位移对球面图像进行区域划分,并分区域进行像素扩张或像素收缩的处理,实现依视点的实际视野进行局部的放大和局部的缩小,使得用户观看vr全景视频的过程中视点自由移动时,能够获得类似于真实世界中实际观看到的物体发生近大远小缩放变化的观影体验,即使用户旋转也可以观看到物体逐渐由大变小或由小变大的变化,而不会看到类似于望远镜体验中所有的物体都被缩放的情况,符合真实世界中物体的缩放变化,从而产生更为强烈的沉浸感。

附图说明

为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请全景视频处理框架实施例的结构示意图;

图2为本申请球面图像处理方法实施例一的流程图;

图3为本申请球面图像处理方法实施例一的区域划分示意图;

图4为本申请球面图像处理方法实施例一的区域划分示意图;

图5为本申请球面图像处理方法实施例二的流程图;

图6为本申请球面图像处理方法实施例二的六面体三维示意图;

图7为本申请球面图像处理方法实施例二的区域划分示意图;

图8a-8c为本申请球面图像处理方法实施例二的区域划分示意图;

图9为本申请球面图像处理方法实施例二的区域划分示意图;

图10为本申请球面图像处理装置实施例的结构示意图;

图11为本申请服务器实施例的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请基于视点在球面图像所包围的球体空间内的位移情况,对整个球面图像的像素进行重采样处理,使得在视点靠近球面图像时,正视面进行像素扩张(即相比原图像内容减少,图像放大),背视面进行像素收缩(即相比原图像内容增加,图像缩小),而视点远离球面图像时,正视面进行像素收缩(即相比原图像内容增加,图像缩小),背视面进行像素扩张(即相比原图像内容减少,图像放大),从而获得新的球面图像。视点是指用户观看球面图像时的视点,其位置可以是观看球面图像时用户佩戴着vr眼镜所处的位置,也可以是用户借助传感器观看球面图像,传感器所处的位置,例如用户在远端通过计算机、终端等操控传感器的位置,借助传感器捕捉画面并将画面传输回来在计算机、终端等设备上观看。经过上述处理,可使用户在观看vr全景视频的过程中视点自由移动时,能够获得类似于真实世界中实际观看到的物体发生近大远小缩放变化的观影体验,即使用户旋转也可以观看到物体逐渐由大变小或由小变大的变化,而不会看到类似于望远镜体验中所有的物体都被缩放的情况,符合真实世界中物体的缩放变化,从而产生更为强烈的沉浸感。

图1为本申请全景视频处理框架实施例的结构示意图,如图1所示,全景视频经由服务器处理后传输给播放设备,由播放设备播放出来给用户看。本实施例中服务器包括编码前处理器、视频编码器、码流封装装置和发送传输装置,服务器对全景视频进行前处理,编码或转码,然后将编码后的码流数据封装为可传输的文件,通过网络传输到播放设备,除此之外,服务器还可以根据播放设备反馈的信息(如用户视角等),选择需要传输的内容进行传输。播放设备包括接收装置、码流解封装装置、视频解码器和显示装置,播放设备是vr眼镜,手机,平板,电视,电脑等可以连上网络的电子设备,播放设备接收服务器发送的数据,并进行码流解封装以及解码显示。

为了获得类似于真实世界中实际观看到的物体发生近大远小缩放变化的观影体验,本申请提供一种球面图像处理方法,对全景视频中的每一帧球面图像进行处理,该方法的执行主体可以是上述框架中的服务器,具体为编码前处理器。服务器先获取球面图像,该球面图像横向跨度为360度,纵向跨度为180度,其包围的空间呈球体状,服务器可以从全景视频拍摄摄像机直接获取球面图像,也可以从存储设备中获取球面图像,还可以从网络接收到的码流中解码获取球面图像。现有技术中通常是将视点置于前述球体的球心位置,本申请中视点在球面图像包围的球体空间内发生了位移,视点的位置可以由处于视点的设备(例如,包括位置传感器的设备)自己定位位置后上报给服务器,也可以由服务器根据与处于视点的设备之间的通信对其位置进行定位。由于视点的位移使得可以看到的视野范围内的画面发生了放大或缩小的变化,为了适应这种变化,服务器需要确定球面图像上的多个区域,本申请中服务器确定出来的区域可以包括球面图像上的某个像素点、某条弧线及某个封闭区域。服务器的目的是需要将球面图像中的某些区域进行放大(像素扩张区域),某些区域进行缩小(像素收缩区域),且放大和缩小的比例并非完全一致,视实际情况而定,因此划分后的球面图像可以针对不同的区域进行不同的图像处理。本申请中的图像处理包括对像素扩张区域内的图像进行像素扩张处理,对像素收缩区域内的图像进行像素收缩处理,像素扩张处理包括将像素扩张区域内的图像像素的数量增多,像素收缩处理包括将像素收缩区域内的图像像素的数量减少。可见经过上述对球面图像进行的处理后,本申请不再是简单的只对球面图像进行放大或缩小,而是依视点的实际视野进行局部的放大和局部的缩小,使得用户观看vr全景视频的过程中视点自由移动时,能够获得类似于真实世界中实际观看到的物体发生近大远小缩放变化的观影体验,即使用户旋转也可以观看到物体逐渐由大变小或由小变大的变化,而不会看到类似于望远镜体验中所有的物体都被缩放的情况,符合真实世界中物体的缩放变化,从而产生更为强烈的沉浸感。

下面采用几个具体的实施例,对上述方法实施例的技术方案进行详细说明。

图2为本申请球面图像处理方法实施例一的流程图,如图2所示,本实施例的方法可以包括:

步骤101、获取球面图像,并确定球面图像的球心。

如上所述,服务器获取球面图像后,基于球面图像所包围的球体空间确定球心。

步骤102、确定用户观看球面图像时的视点,视点位于球面图像所包围的球体空间内除球心外的任意一点。

本实施例是针对视点相对于球心发生了位移的场景,因此视点可以是球面图像所包围的球体空间内除球心外的任意一点,视点获取可以采用多种方式,本实施例对此不做具体限定。

步骤103、确定球面图像上与球心和视点结合后满足设定的几何规则的像素,根据该像素确定像素扩张区域和像素收缩区域。

确定球面图像上与球心和视点结合后满足设定的几何规则的像素,一种可能的实现方式以满足设定的几何规则为前提,确定出相应的阈值,然后结合阈值在球面图像上确定出对应的像素,再以像素为区域划分的界限确定像素扩张区域和像素收缩区域。本实施例将球面图像划分为两个区域,即像素扩张区域和像素收缩区域,顾名思义,像素扩张区域就是要对其内的图像进行像素扩张处理,像素收缩区域就是要对其内的图像进行像素收缩处理。视点只要不在球心,只要发生偏移,就一定会出现靠近球面图像中的某一部分,而远离球面图像中的另一部分,那么在实际情况中,人们在保持视野不变的情况下,离某个画面越接近则看到的图像范围就越小,能看到的细节就越多,而离某个画面越远则看到的图像范围就越大,能看到的细节就越少。因此,本申请要根据视点的位移划分出对应的球面图像中需要像素扩张的区域和需要像素收缩的区域。

示例性的,图3为本申请球面图像处理方法实施例一的区域划分示意图,如图3所示,服务器先根据视点相对于球心的偏移,确定球面图像上与视点的距离等于r的第一像素,然后以第一像素组成的圆为界限确定像素扩张区域和像素收缩区域,其中,所包括的像素与视点的距离小于r的区域作为像素扩张区域,所包括的像素与视点的距离大于r的区域作为像素收缩区域。

本实施例中根据球心和视点设定的阈值为长度r,球面图像所包围的球体空间的球心是o,半径是r,视点是s,以图3上方为视点的正视面,可见视点移动后离球面图像更接近了,服务器构建以s为球心,半径为r的偏移球体,该偏移球体与球面图像相交的点即为第一像素,连接第一像素的圆q将球面图像划分为上下两个区域,位于上方的区域内的所有像素与s的距离小于r,因此将其作为像素扩张区域,位于下方的区域内的所有像素与s的距离大于r,因此将其作为像素收缩区域。

示例性的,图4为本申请球面图像处理方法实施例一的区域划分示意图,如图4所示,服务器先以视点为顶点,以视点到球心的连线为角平分线,确定角度为θ的角在球面图像上对应的第二像素,然后以第二像素组成的弧线为界限确定像素扩张区域和像素收缩区域,其中,距离视点较近的区域作为像素扩张区域,距离视点较远的区域作为像素收缩区域。

本实施例示出的是球面图像的横截面视图,可见视点离球面图像更接近了,根据球心和视点设定的阈值为角度θ,服务器以s为顶点,以s到o连线为角平分线,构建角度为θ的角,其与球面图像相交的像素是a和b(第二像素),扩展到立体空间上是连接第二像素的圆q,位于其上方的区域距离视点较近作为像素扩张区域,位于其下方的区域距离视点较远作为像素收缩区域。

步骤104、对球面图像进行图像处理,图像处理包括对像素扩张区域内的图像进行像素扩张处理,对像素收缩区域内的图像进行像素收缩处理。

像素扩张是指像素的关联邻域变大,即该像素的关联邻域中的像素数量增多,体现在该像素旁边出现更多它的关联像素。像素收缩是指像素的关联邻域变小,即该像素的关联邻域中的像素数量减少,体现在该像素旁边它的关联像素减少。关联像素是指由包含至少一个相同像素的一个或一组像素进行图像处理操作(如复制或插值)所生成的各个像素互为关联像素。例如,像素a是由像素x1、x2、x3进行插值获得,像素b是由像素x1、x4、x5、x6进行插值获得,由于像素a和像素b均由包含像素x1的一组像素获得,因此a和b均为像素x1的关联像素。本申请中可以根据需求确定插值计算的方法,例如,在两个像素之间插入一个像素,或者在多个像素之间插入一个像素,对比不做具体限定。对于一个像素来说,其关联邻域指的是在包含该像素的一定区域范围的图像内,该像素的关联像素组成的像素集合,该一定区域范围属于上述像素扩张区域或像素收缩区域,其可以包括其他非关联像素,也可以不包括其他非关联像素。

本申请通过根据视点的位移对球面图像进行区域划分,并分区域进行像素扩张或像素收缩的处理,实现依视点的实际视野进行局部的放大和局部的缩小,使得用户观看vr全景视频的过程中视点自由移动时,能够获得类似于真实世界中实际观看到的物体发生近大远小缩放变化的观影体验,即使用户旋转也可以观看到物体逐渐由大变小或由小变大的变化,而不会看到类似于望远镜体验中所有的物体都被缩放的情况,符合真实世界中物体的缩放变化,从而产生更为强烈的沉浸感。

在上述技术方案的基础上,图5为本申请球面图像处理方法实施例二的流程图,如图5所示,本实施例的方法可以包括:

步骤201、获取球面图像,并确定球面图像的球心。

步骤202、确定用户观看球面图像时的视点,视点位于球面图像所包围的球体空间内除球心外的任意一点。

步骤203、根据球心和视点构建外切于球面图像的六面体。

图6为本申请球面图像处理方法实施例二的六面体三维示意图,如图6所示,视点的正视面冲着x轴的反方向,视点从o点移动到s点距离球面图像的正视面近了。

示例性的,图7为本申请球面图像处理方法实施例二的区域划分示意图,如图7所示,服务器以视点为顶点,以球心到视点的连线的延长线为角平分线,确定角度为ψ的角在球面图像上对应的第三像素,设定的角度为ψ的角为处于视点的视场(fieldofview,简称:fov)角,将其作为阈值构建与球面图像外切的正四棱锥体,其中,正四棱锥的顶部由球心到第三像素的连线的延长线与外切于球面图像的平面相交的点围成。

本实施例示出的是球面图像和六面体的横截面视图,图7的上方为视点的正视面,设定fov角ψ,角度为ψ的角的两条边与圆o相交,可以在圆o上获得e和f点,∠esf即为fov角,表示在s处向着os连线的的延长线方向可见的球面图像的内容为弧面ef内的画面。扩展到立体空间上以fov角ψ作为张角构建外切于球面图像的的正四棱锥体,正四棱锥体的顶部ad作为正视面与球面图像相切于b点。从正四棱锥体的顶部的每条边向x轴正方向引出四个均与球体相切的平面,其中一个平面ai与球面图像相切于c点,相邻面之间相交的直线作为面边界,获得四个梯形,可做为四个侧视面。正四棱锥体的底部il作为背视面与球面图像相切于k点,与侧视面的四个梯形相交的直线作为面边界,从而获得一个矩形面。

示例性的,图8a-8c为本申请球面图像处理方法实施例二的区域划分示意图,如图8a-8c所示,服务器以视点为顶点,设定的角度为ψ的角为处于视点的fov角,以球心到视点的连线的延长线为角平分线,确定角度为ψ的角在球面图像上对应的第三像素,以球心为顶点,以视点到球心的连线的延长线为角平分线,确定角度为δ的角在球面图像上对应的第四像素,设定的角度为δ的角为背视面张角,将fov角和背视面张角的角度作为阈值构建与球面图像部分外切的四棱锥体,其中,四棱锥体的侧面与球面图像相切,球心到第三像素的连线的延长线与四棱锥体的侧面相交的点围成四棱锥体的顶部,球心到第四像素的连线的延长线与四棱锥体的侧面相交的点围成四棱锥体的底部。

本实施例示出的是球面图像和六面体的三种横截面视图,图8a-8c的上方为视点的正视面,图8a中球面图像与六面体的底部(背视面)和侧面(侧视面)相切,图8b中球面图像与六面体的顶部(正视面)和侧面(侧视面)相切,图8c中球面图像只与六面体的侧面(侧视面)相切,可见六面体的正视面和背视面可以均不与球面图像相切,或者其中之一不与球面图像相切。本实施例是根据视点的fov角ψ和背视面张角δ对球面图像进行区域划分,即根据fov角ψ和背视面张角δ,以及侧视面与球面图像相切的条件,可以构建出部分外切于球面图像的四棱锥体。角度为ψ的角的两条边与圆o相交,可以在圆o上获得e和f点,∠esf即为fov角,表示在s处向着os连线的的延长线方向可见的球面图像的内容为弧面ef内的画面。以下分别针对图8a-8c描述三种四棱锥体的构建方法:

以背视面张角δ作为张角构建外切于球面图像的四棱锥体,其底部与球面图像相切,底部的边界由背视面张角δ与相切平面相交的直线组成。从四棱锥体的底部的每条边向x轴反方向引出四个均与球体相切的平面,相邻面之间相交的直线作为面边界,获得四个梯形,可做为四个侧视面。以fov角ψ作为张角在圆o上获得e和f点,o点和e点、f点的连线的延长线与四个侧视面相交,相交的直线作为边界形成四棱锥体的顶部,即为正视面。经过上述方法构建的四棱锥体如图8a所示。

以fov角ψ作为张角构建外切于球面图像的四棱锥体,其顶部与球面图像相切,顶部的边界由fov角ψ与相切平面相交的直线组成。从四棱锥体的顶部的每条边向x轴正方向引出四个均与球体相切的平面,相邻面之间相交的直线作为面边界,获得四个梯形,可做为四个侧视面。以背视面张角δ作为张角与四个侧视面相交,相交的直线作为边界形成四棱锥体的底部,即为背视面。经过上述方法构建的四棱锥体如图8b所示。

以fov角ψ和背视面张角δ作为张角构建外切于球面图像的四棱锥体,其四个侧面均与球面图像相切,相邻面之间相交的直线作为面边界,获得四个梯形,可做为四个侧视面。以fov角ψ作为张角与四个侧视面相交,相交的直线作为边界形成四棱锥体的顶部,即为正视面。以背视面张角δ作为张角与四个侧视面相交,相交的直线作为边界形成四棱锥体的底部,即为背视面。经过上述方法构建的四棱锥体如图8c所示。

可选的,背视面张角δ也可以由fov角ψ计算获取,可采用以下计算过程:

假设圆o的半径为r=1,s到o的偏移量长度为|os|,根据fov角ψ可以得到o点的正视面半张角大小

侧视面张角大小

η=∠aoi=(2π-ψ-2β)/2

根据角β、δ、η,可以确定一个外切于球面图像的四棱锥体。

在获得了正视面半张角β后,可基于β来确定背视面张角δ,其中一种方式是规定β与ε的张角范围,然后通过线性方式来获得与β对应的δ值,这里假设规定β∈[βmin,βmax],ε∈[εmin,εmax],则基于β计算ε的一种方式如下:

步骤204、根据六面体中的各个面和球心构建六个椎体。

在上述四棱锥体的基础上,从o点向四棱锥体的各个面引出六个椎体。

步骤205、根据六个椎体与球面图像相交处的像素将球面图像划分为六个区域,其中,六面体中垂直于球心到视点的连线的延长线的面对应的区域作为像素扩张区域,垂直于视点到球心的连线的延长线的面对应的区域作为像素收缩区域,其余四个面对应的区域作为过渡区域。

在上述四棱锥体的基础上,正视面对应的球面图像上的区域作为像素扩张区域,背视面对应的球面图像上的区域作为像素收缩区域,侧视面对应的球面图像上的区域作为过渡区域。

步骤206、对球面图像进行图像处理。

在确定了球面图像的区域后,可根据这些区域调整球面图像像素的分布情况,将像素进行扩大或缩小,像素分布变化实际涉及到球面图像上两个像素之间距离的变化,在像素扩张区域,球面图像上两个像素的距离被拉伸,在像素收缩区域,球面图像上两个像素的距离被缩小。因此,需要确定球面图像转换前后的坐标映射关系,服务器以s为球心,以球面图像所包围的球体空间的半径为半径,构建偏移球体,将偏移球体划分为多个区域,多个区域与球面图像上的各个区域一一对应,确定偏移球体和球面图像上彼此对应的两个区域之间的映射关系,即确定偏移球体上的点v1(x1,y1,z1)和球面图像上的点v0(x0,y0,z0)的映射关系。

一种方法是,根据从球面映射到映射面,再从映射面逆映射回球面的方式确定映射关系。映射面指的是上述四棱锥体的六个面,以图8a所示的四棱锥体为例,描述整个映射过程。

(1)对于给定映射面上任意一点,获取其在球面图像上对应的点

如图8a所示,将球面图像上的任意像素映射到其所在区域对应的映射面上,也即获取映射面上任意点在球面图像上对应区域中的位置。如弧面ef上的点对应到正视面ad上,对于正视面ad上任意一点vf点(xf,yf,zf),根据映射函数(x0,y0,z0)=f(xf,yf,zf)获取到弧面ef上的对应点v0点(x0,y0,z0)。需要说明的是,vf不一定在ov0这条射线上。对于其他映射面,同样使用与其对应的函数fn(x,y,z)即可获取到该映射面上的点在球面图像上对应区域中的位置。

示例地,对于映射面上的点vf(xf,yf,zf)与该映射面上的二维坐标点(xf,yf)对应,二者可相互转化。设定映射面上的坐标点(xf,yf)相对于该点所在映射面的宽与高的比率分别为(uf,vf),计算式可如下所示:

其中,w与h分别为映射面的宽高,由于是正方形,有w=h,uf与vf取值范围均为[-1,1]。

对于正视面ad,可以根据如下计算式获得点v0:

其中,|.|表示长度值,|bo|、|ab|的值均可由已知张角β、ε、η与几何关系计算得到。点(xt,yt,zt)为射线ov0与正视面的交点。

对于后视面il,可以根据如下计算式获得点v0:

其中,|ik|的值可由已知张角β、ε、η与几何关系计算得到。

对于侧视面,以映射面ai为例,其为梯形映射面,宽高比率(uf,vf)的可通过如下公式获得:

其中,|aj|、|ad|、|il|均可以由已知张角β、ε、η与几何关系计算得到,uf、vf的值域同样为[-1,1]。

将uf取值范围更改为[0,|aj|],以方便计算,即uf用xf的值代替,得到u’f=xf。按照等角度映射方法,可先得到调整后的u’f,设为uadj,使用如下公式计算:

其中,oc⊥ai,ap⊥cp,|ap|、|pj|的值均可由已知张角β、ε、η与几何关系计算得到。由此,可根据如下计算式获得点v0:

其中,其他侧视面在对应球面的映射点可以通过类似方式求得。

(2)将映射面的尺寸大小按照一定比例系数进行缩放,使得其能够外切于以偏移点为球心,以原球半径为半径的球体,获得缩放后平面上对应的映射点。

本实施例中将四棱锥体的六个映射面缩放到相同大小,形成一个正方体,该正方体外切于以点s为球心的偏移球体。以球面图像的直径作为缩放后正方体每个面的边长,可知正视面像素被扩张,背视面像素被收缩,侧视面依照从正视面至背视面的方向进行逐渐收缩。映射面上点的位置改变可以通过函数(x’,y’,z’)=fm(x,y,z,s)实现,其中(x,y,z)为球面图像上的像素,(x’,y’,z’)为偏移球体外切的正方体的映射面上的点,s为对应于坐标点(x,y,z)的缩放系数;反之,也可以通过fm的反函数(x,y,z)=fm-1(x’,y’,z’,s’),获得偏移球体外切的正方体的映射面上的点所对应的球面图像上的像素。

图9为本申请球面图像处理方法实施例二的区域划分示意图,如图9所示,图8a的正视面ad平面被扩张为a’d’平面,侧视面ai平面被缩放为a’i’平面,背视面il平面被收缩为i’l’平面。此时,ad平面缩放系数可为sf=|a’d’|/|ad|,il的缩放系数可为sb=|i’l’|/|il|,其中|.|表示长度值。对于侧视面,从a’点至i’点,其缩放系数sd可从sf至sb线性下降。通过对不同映射面进行缩放操作,改变映射面上的坐标点位置,如ad平面上的点vf(xf,yf,zf)被缩放后对应于a’d’上的点v’f(x’f,y’f,z’f)。反之,对于a’d’上任一点v’f,可以根据反向缩放,获得ad上的点vf。

(3)获得缩放后的平面对应于以偏移点为球心的球面映射点。

映射面改变后外切于球体,其对应的球面区域发生相对应的改变,如图8a中的弧面ef对应于图9中的弧面e’f’,弧面eg对应于弧面e’g’,弧面gh对应于弧面g’h’。因此,该步骤通过反映射函数(x1,y1,z1)=fi(x’f,y’f,z’f)将映射面上的点逆映射到对应偏移球体的对应区域上。例如,平面a’d’上的点v’f被逆映射到弧面e’f’上的点v1(x1,y1,z1)。

示例地,可以通过使用从六面体到球面的逆映射函数来执行该步骤。比如,对于正视面a’d’,可根据如下式获得球面上的点v1(x1,y1,z1)在映射面上的二维点坐标(xf’,yf’):

获得映射面上的二维点坐标(xf’,yf’),即可对应该映射面在三维空间对应的位置点v’f(x’f,y’f,z’f)。

通过上述步骤后,对于偏移球面上的每个像素v1(x1,y1,z1),可以获得球面图像上的像素v0(x0,y0,z0)。因此在获得偏移球面与球面图像上像素的映射关系后,可基于球面图像上的像素v0(x0,y0,z0)以及其关联邻域中的关联像素通过插值方式获得偏移球面上的像素点v1(x1,y1,z1)。

由于偏移球面上两点距离相对于原球面上对应两点的距离发生了缩放变化,因此在偏移球面上的像素的关联像素会随之变多或者变少,从而关联邻域也会变化,相对于原球面图像产生像素扩张或收缩。

在上述技术方案的基础上,当上述球面图像采用非三维空间球面坐标表示像素时,本申请中非三维空间球面坐标包括等距柱状投影(equi-rectangularprojection,简称:erp)格式的像素坐标、立方体映射(cubemapprojection,简称:cmp)格式的像素坐标、克拉斯特抛物线映射(crasterparabolicprojection,简称:cpp)格式的像素坐标,改进的立方体映射(adjustedcubemapprojection,简称:acp)格式的像素坐标,截断四棱锥映射(truncatedsquarepyramidprojection,简称:tsp)格式的像素坐标,紧凑格式正八面体映射(compactoctahedronprojection,简称:cohp)格式的像素坐标以及紧凑格式正二十面体映射(compacticosahedralprojection,简称:cisp)格式的像素坐标中的任意一种。因此服务器在获取球面图像之后要先将球面图像中表示像素的坐标映射为以球心为原点的三维空间球面坐标,然后再使用上述方法实施例中的技术方案对球面图像进行图像处理,之后服务器再将球面图像中表示像素的坐标反映射回非三维空间球面坐标。

示例一,球面图像采用erp格式的像素坐标表示像素,erp是将球面信号按照经度和纬度均匀采样映射获得的能够用于保存和传输的二维全景图像,该图像的像素坐标可以用经纬度来表示,宽度方向上可用经度表示,跨度为360°,高度方向上可用纬度表示,跨度为180°。服务器在视点偏移球心后,对获取的球面图像先进行像素坐标的映射。

假设在erp格式图像中任意点(m,n),其中m为图像沿水平方向坐标,n为图像沿竖直方向坐标,根据经纬图图像点与球面经纬度的映射公式,可求得其对应点经纬度的值:

其中,w1为erp图像宽度,h1为erp图像高度,φ1为球面图像的经度,取值范围为[-π,π],λ1为球面图像的纬度,取值范围为[-π/2,π/2],ε0为常数,取值范围为[0,1),表示坐标偏移量,通常取值为0或0.5。然后,根据球面经纬度与球面坐标点的对应关系,可获得待生成球面上的坐标点v1(x1,y1,z1):

在服务器根据上述方法实施例中的技术方案对球面图像处理后,根据球面坐标转erp格式经纬度坐标公式,可以获得对应球面上的点v0(x0,y0,z0)在源经纬图像的经纬度坐标(φ0,λ0):

其中,arctan2(z0,x0)表示依照坐标点(x0,z0)象限确定的arctan(z0/x0)的角度值,角度范围为(-π,π]。然后根据经纬度转图像坐标公式,进而获得该点在源经纬图上的像素点位置(m’,n’):

其中,w0为源erp图像宽度,h0为源erp图像高度。

示例二,球面图像采用cmp格式的像素坐标表示像素,服务器在视点偏移球心后,对获取的球面图像先进行像素坐标的映射。以cmp格式的一个映射面(x轴负轴方向的面,即正视面)为例,假设在cmp格式图像中正视面上任意点(m,n),其中m为图像沿水平方向坐标,n为图像沿竖直方向坐标,根据cmp正视面图像点与球面坐标点的映射公式,可求得其对应球面坐标点坐标点v1(x1,y1,z1)的值:

其中w1为cmp正视面图像宽度,h1为cmp正视面图像高度,ε0为常数,取值范围为[0,1),表示坐标偏移量,通常取值为0或0.5。对于cmp格式图像中的其他映射面,以类似的方式获得面上每个点对应于球面上的坐标点。

在服务器根据上述方法实施例中的技术方案对球面图像处理后,根据球面坐标转cmp格式映射面坐标公式,可以获得对应球面上的点v0(x0,y0,z0)在原cmp格式图像上的像素点位置坐标(m’,n’)(以正视面为例):

其中,w0为源cmp格式图像映射面宽度,h0为源cmp格式图像映射面高度。以类似的方式,获得整个球面在所有映射面上的像素点位置坐标。

在上述技术方案的基础上,当球面图像为3d全景球面图像时,3d全景球面图像包括左眼球面图像和右眼球面图像,因此服务器针对左眼球面图像,确定左眼球面图像的左眼球心,获取左眼视点,根据左眼球心和左眼视点确定左眼球面图像上的像素扩张区域和像素收缩区域,对左眼球面图像进行图像处理;针对右眼球面图像,确定右眼球面图像的右眼球心,获取右眼视点,根据右眼球心和右眼视点确定右眼球面图像上的像素扩张区域和像素收缩区域,对右眼球面图像进行图像处理。另外,左眼球面图像和右眼球面图像均可以如上述方法实施例所述,除像素扩张区域和像素收缩区域外,确定出过渡区域,进而分别对像素扩张区域、像素收缩区域外和过渡区域进行相应的图像处理。

3d全景球面图像指的是3d格式的全景视频,其每一帧图像包括两路360度的球面图像,一路用于左眼显示(左眼球面图像),一路用于右眼显示(右眼球面图像),两路图像在同一帧中为左眼和右眼显示的内容有些许差异,使用户在观看时出现3d效果。因此本实施例服务器分别针对左眼球面图像和右眼球面图像进行图像处理,该图像处理的方法采用上述方法实施例中的技术方案。

图10为本申请球面图像处理装置实施例的结构示意图,如图10所示,本实施例的装置可以包括:图像获取模块11、位置确定模块12、区域确定模块13和处理模块14,其中,图像获取模块11,用于获取球面图像,并确定所述球面图像的球心;位置确定模块12,用于确定用户观看所述球面图像时的视点,所述视点位于所述球面图像所包围的球体空间内除所述球心外的任意一点;区域确定模块13,用于根据所述球心和所述视点确定所述球面图像上的像素扩张区域和像素收缩区域;处理模块14,用于对所述球面图像进行图像处理,所述图像处理包括对所述像素扩张区域内的图像进行像素扩张处理,对所述像素收缩区域内的图像进行像素收缩处理,所述像素扩张处理包括将所述像素扩张区域内的图像像素的数量增多,所述像素收缩处理包括将所述像素收缩区域内的图像像素的数量减少。

在上述技术方案的基础上,所述区域确定模块13,具体用于确定所述球面图像上与所述球心和所述视点结合后满足设定的几何规则的像素,根据所述像素确定所述像素扩张区域和所述像素收缩区域。

在上述技术方案的基础上,所述区域确定模块13,具体用于根据所述视点相对于所述球心的偏移,确定所述球面图像上与所述视点的距离等于r的第一像素;以连接所述第一像素的圆为界限确定所述像素扩张区域和所述像素收缩区域,其中,所包括的像素与所述视点的距离小于r的区域作为所述像素扩张区域,所包括的像素与所述视点的距离大于r的区域作为所述像素收缩区域。

在上述技术方案的基础上,所述区域确定模块13,具体用于以所述视点为顶点,以所述视点到所述球心的连线为角平分线,确定角度为θ的角在所述球面图像上对应的第二像素;以连接所述第二像素的弧线为界限确定所述像素扩张区域和所述像素收缩区域,其中,距离所述视点较近的区域作为所述像素扩张区域,距离所述视点较远的区域作为所述像素收缩区域。

在上述技术方案的基础上,所述区域确定模块,还用于根据所述球心和所述视点确定所述球面图像上的过渡区域;所述图像处理还包括对所述过渡区域内的图像中临近所述像素扩张区域的部分进行所述像素扩张处理,对所述过渡区域内的图像中临近所述像素收缩区域的部分进行所述像素收缩处理。

在上述技术方案的基础上,所述区域确定模块13,具体用于根据所述球心和所述视点构建外切于所述球面图像的六面体;根据所述六面体中的各个面和所述球心构建六个椎体;根据所述六个椎体与所述球面图像相交处的像素将所述球面图像划分为六个区域,其中,所述六面体中垂直于所述球心到所述视点的连线的延长线的面对应的区域作为所述像素扩张区域,垂直于所述视点到所述球心的连线的延长线的面对应的区域作为所述像素收缩区域,其余四个面对应的区域作为所述过渡区域。

在上述技术方案的基础上,所述区域确定模块13,具体用于以所述视点为顶点,以所述球心到所述视点的连线的延长线为角平分线,确定角度为ψ的角在所述球面图像上对应的第三像素,所述角度为ψ的角为处于所述视点的fov角,构建与所述球面图像外切的正四棱锥体,其中,所述正四棱锥的顶部由所述球心到所述第三像素的连线的延长线与外切于所述球面图像的平面相交的点围成。

在上述技术方案的基础上,所述区域确定模块13,具体用于以所述视点为顶点,以所述球心到所述视点的连线的延长线为角平分线,确定角度为ψ的角在所述球面图像上对应的第三像素,所述角度为ψ的角为处于所述视点的fov角,以所述球心为顶点,以所述视点到所述球心的连线的延长线为角平分线,确定角度为δ的角在所述球面图像上对应的第四像素,所述角度为δ的角为背视面张角,构建与所述球面图像部分外切的四棱锥体,其中,所述四棱锥体的侧面与所述球面图像相切,所述球心到所述第三像素的连线的延长线与所述四棱锥体的侧面相交的点围成所述四棱锥体的顶部,所述球心到所述第四像素的连线的延长线与所述四棱锥体的侧面相交的点围成所述四棱锥体的底部。

在上述技术方案的基础上,所述区域确定模块13,具体用于在所述球面图像上,将四棱锥体的顶部对应的区域作为所述像素扩张区域,将四棱锥体的底部对应的区域作为所述像素收缩区域,将四棱锥体的侧面对应的区域作为所述过渡区域。

在上述技术方案的基础上,所述处理模块14,具体用于以所述视点为球心,以所述球面图像所包围的球体空间的半径为半径,构建偏移球体;将所述偏移球体的球面划分为多个区域,所述多个区域与所述划分后的球面图像上的各个区域一一对应;确定所述偏移球体和所述划分后的球面图像上彼此对应的两个区域之间的映射关系,并根据所述映射关系对所述划分后的球面图像进行所述图像处理。

在上述技术方案的基础上,所述处理模块14,具体用于确定所述偏移球体上的点与所述球面图像上的像素之间的映射关系。

在上述技术方案的基础上,所述处理模块14,具体用于调整所述四棱锥体构建与所述偏移球体外切的正方体,所述正方体中的各个面和所述视点构建六个椎体,根据所述六个椎体与所述偏移球体相交处的像素将所述偏移球体划分为六个区域;确定所述球面图像上的像素和所述四棱锥体上的点之间的映射关系,确定所述正方体和所述偏移球体上的映射关系,根据所述四棱锥体和所述正方体之间的映射关系确定所述偏移球体上的点与所述球面图像上的像素之间的映射关系。

在上述技术方案的基础上,当所述球面图像采用非三维空间球面坐标表示像素时,所述非三维空间球面坐标包括等距柱状投影erp格式的像素坐标、立方体映射cmp格式的像素坐标、克拉斯特抛物线映射cpp格式的像素坐标,改进的立方体映射acp格式的像素坐标,截断四棱锥映射tsp格式的像素坐标,紧凑格式正八面体映射cohp格式的像素坐标以及紧凑格式正二十面体映射cisp格式的像素坐标中的任意一种;所述图像获取模块11,还用于将所述球面图像中表示像素的坐标映射为以所述球心为原点的三维空间球面坐标;所述处理模块14,还用于将所述球面图像中表示像素的坐标反映射回所述非三维空间球面坐标。

在上述技术方案的基础上,当所述球面图像为3d全景球面图像时,所述3d全景球面图像包括左眼球面图像和右眼球面图像;针对所述左眼球面图像,所述图像获取模块11,还用于确定所述左眼球面图像的左眼球心;所述位置确定模块12,还用于获取左眼视点;所述区域划模块13,还用于根据左眼球心和所述左眼视点确定所述左眼球面图像上的像素扩张区域和像素收缩区域;所述处理模块14,还用于对所述左眼球面图像进行所述图像处理;针对所述右眼球面图像,所述图像获取模块11,还用于确定所述右眼球面图像的右眼球心;所述位置确定模块12,还用于获取右眼视点;所述区域划模块13,还用于根据右眼球心和所述右眼视点确定所述右眼球面图像上的像素扩张区域和像素收缩区域;所述处理模块14,还用于对所述右眼球面图像进行所述图像处理。

本申请的装置,可以用于上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图11为本申请服务器实施例的结构示意图,如图11所示,该服务器包括处理器20、存储器21、输入装置22和输出装置23;服务器中处理器20的数量可以是一个或多个,图11中以一个处理器20为例;服务器中的处理器20、存储器21、输入装置22和输出装置23可以通过总线或其他方式连接,图11中以通过总线连接为例。

存储器21作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请中的球面图像处理方法对应的程序指令/模块。处理器20通过运行存储在存储器21中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述的球面图像处理方法。

存储器21可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器21可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器21可进一步包括相对于处理器20远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置22可用于接收输入的数字或字符信息,以及产生与服务器的用户设置以及功能控制有关的键信号输入。输出装置23可包括显示屏等显示设备。

本申请还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包含至少一段代码,该至少一段代码由计算机执行,以执行上述任一方法实施例所述的球面图像处理方法。

本申请还提供一种计算机程序,当所述计算机程序被计算机执行时,用于执行上述任一方法实施例所述的球面图像处理方法。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1