全景视频及图片的投影方法和反投影方法与流程

文档序号:14864423发布日期:2018-07-04 10:12阅读:1156来源:国知局
全景视频及图片的投影方法和反投影方法与流程

本发明涉及一种视频及图片的投影方法和反投影方法,尤其涉及一种全景视频及图片的投影方法和反投影方法。



背景技术:

虚拟现实(virtualreality,简称vr)技术是当前最为热门的技术领域,特别是沉浸式虚拟现实(immersivevirtualreality),使用者通过佩戴头盔显示器来进行人机交互,头盔会实时把使用者的头部位置信息反馈至主机,主机随后发送使用者视角方向的视频至显示器,使用者可以随意改变头部位置而获得不同视角的场景,宛如身临其境,达到高度的沉浸感。

在虚拟现实环境下的视频、图片浏览不同于传统的电视机、手机等二维平面屏幕浏览,由于使用者身处虚拟的三维环境下,使用者可以任意改变视角欣赏全景画面,在虚拟现实系统中,视频或图像浏览是全景的,人们是站在球心的位置,来欣赏贴在整个球面上的视频或图像。因此,如何更准确地将画面投影到球面上,以及如何将整个球面全景画面保存到二维平面上是虚拟现实环境下多媒体系统要解决的关键问题。

当前的全景视频、图片的投影方法主要来源于传统的全景图片投影方法,主要采用圆柱面投影方式建立球面-平面的投影,除此之外,另一个使用范围很少的全景投影方式是立方体投影。无论是圆柱面投影还是立方体投影,都是直接将整个全景图像中所有的图像像素直接投影至球面上,如图1所示,当将所有图像像素直接投影至球面上,球面上的像素分布存在疏密,都会导致球面像素的不均匀分布的问题。

图1中左侧是圆柱面投影,可以看见,在赤道附近像素分布稀疏,而在南北极附近,像素分布很密,在虚拟现实系统中,如果采用圆柱面投影,那么用户在平视的角度下,看到的图像单位面积像素偏少,而在仰视和俯视的情况下,看到的图像单位面积像素偏多。与圆柱面投影类似,图1中右侧是立方体投影下的球面像素分布情况,可见在靠近立方体面中心的位置像素分布稀疏,在靠近立方体顶点的位置,像素分布密集。

图1中的图像像素不均匀分布会产生如下问题:

1、全景图像质量下降

在像素分布稀疏的区域,图像质量明显下降;在像素分布密集的区域,由于像素过于密集,在纹理渲染时会造成像素重叠,也会导致图像质量下降。

2、数据冗余

由于像素分布的不均匀,图像、视频主观视觉效果往往由像素分布稀疏的区域所决定。为了提升视觉质量,需要满足稀疏区域最低分辨率要求,这样就造成在其他图像区域的数据冗余。数据冗余使得图像视频的数据量变大,在数据存储、数据网络传输上造成极大浪费。

目前对于上述图像像素不均匀分布的情况往往在对全景图像投影后的图像数据进行处理来消除图像像素分布不均匀。例如在全景图像通过圆柱面投影方式投影形成的球面图像后,对球面图像处理来调整球面图像中像素分布。但是这种处理方式需要增加了大量图像数据处理,在视频编码压缩或是视频解码中都会导致编解码效率的降低,所以不适用于高清视频或图片。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中全景图像的投影仅是对整个图像的像素投影所导致的像素分布不均匀以及像素数据冗余,进而影响全景图像的图像质量的缺陷,提供了一种全景视频及图片的投影方法和反投影方法,通过对全景图像分割和多面体投影的方式,使得像素分布均匀,抑制全景图像投影所带来的图像质量的下降的问题。

本发明是通过下述技术方案来解决上述技术问题的:

本发明提供了一种全景视频及图片的投影方法,其特点是,所述全景视频及图片的投影方法包括以下步骤:

通过多面体向球面投影,将球面图像划分为多个表面;

通过映射变换,分别建立球面图像各个表面与多面体的各个面之间的映射关系;

分别将球面图像的各个表面中的像素投影到存在映射关系的多面体的面。

本发明的投影方法用于实现将全景视频或图片的内容转化为多面体形式的图像,从而便于后续图像的编码压缩。其中球面图像是全景视频的各个帧图片或者全景图片等包含全景图像信息载体。

并且本发明还将划分后的球面图像的像素投影至多面体的各个面来实现像素的均匀分布。其中本发明中像素投影使用现有的像素投影方式就可以实现像素的均匀分布。

较佳地,在通过多面体向球面投影,将球面图像划分为多个表面的过程中包括以下步骤:

将多面体设置于球面图像所在球体内,并以球心作为中心点;

将多面体的各个顶点和棱边映射至球面图像;

映射至球面图像的各个顶点和棱边将球面图像划分为多个表面。

较佳地,在通过多面体向球面投影,将球面图像划分为多个表面的过程前还包括以下步骤:

建立多面体,其中多面体的表面积与球面图像所在球体的表面积相同。

其中本发明中将多面体的各个面映射至球面上的过程中,通过多面体的顶点和棱边在球面上划分出对应于多面体各个面的区域。

并且在多面体的表面积与球面图像所在球体的表面积相同时能够达到较好的像素均匀分布。

较佳地,在将球面图像的各个表面中的像素投影到存在映射关系的多面体的面的过程中包括以下步骤:

对每一对存在映射关系的球面图像的表面和多面体的面执行如下步骤:

将球面图像的表面分割成多个图像块;

通过映射变换,分别在多面体的面上建立与球面图像的表面的各个图像块之间存在映射关系的块;

在所有存在映射关系的球面图像的表面和多面体的面均构建完成图像块和块的映射关系后,对所有存在映射关系的球面图像的表面和多面体的面执行如下步骤:

将球面图像的表面中各个图像块的像素投影到存在映射关系的多面体的面中的块。

本发明在将球面图像分割为多个区域,并将各个区域的图像映射至多面体的各个面的过程中,进一步对各个区域进一步分割并映射,将映射至多面体的图像进一步细化,更好的实现像素的均匀分布。

优选地,在多面体的面上建立与球面图像的表面的各个图像块之间存在映射关系的块的过程中包括以下步骤:

将球面图像的表面中各个图像块的各个顶点映射至多面体的面;

通过映射变换,映射至多面体的面的各个顶点将多面体的面划分为多个块。

优选地,在多面体的面上建立与球面图像的表面的各个图像块之间存在映射关系的块的过程后迭代执行以下步骤:

将图像块分割成多个图像区域;

通过映射变换,分别在多面体的块上建立与球面图像的图像块的各个图像区域之间存在映射关系的区域;

在所有存在映射关系的球面图像的表面和多面体的面均构建完成图像区域和区域的映射关系后,对所有存在映射关系的球面图像的表面和多面体的面执行如下步骤:

将球面图像的图像块中各个图像区域的像素投影到存在映射关系的多面体的块中的区域。

本发明进一步通过对图像进行分割,更好的实现像素的均匀分布,特别是通过迭代重复地分割图像,即不断地对分割映射后的图像区域进行进一步地分割映射,从而使得最终用于投影的图像区域最小化,例如将图像分割至单个像素。

需要注意的是,迭代的次数可以根据视频编解码以及图像质量的需要自由设定,并且在迭代完成后,将全景图像切割后的所有图像区域的像素投影到存在映射关系的区域中,从而实现全景图像到多面体的投影。

优选地,在多面体的块上建立与球面图像的图像块的各个图像区域之间存在映射关系的区域的过程中包括以下步骤:

将球面图像的图像块的各个图像区域的各个顶点映射至多面体的块;

通过映射变换,映射至多面体的块的各个顶点将多面体的块划分为多个区域。

优选地,在将球面图像的表面中各个图像块或图像区域的像素投影到存在映射关系的多面体的面中的块或区域的过程中包括以下步骤:

按照球面图像的表面中图像块或图像区域的顶点与多面体的面中块或区域的顶点的映射关系,通过像素差值算法将图像块或图像区域中图像像素投影至块或区域;或者

计算球面图像的表面中图像块或图像区域的各个图像像素与多面体的面中块或区域相对位置的映射关系,将图像块或图像区域中图像像素投影至块或区域。

本发明中利用现有图像算法中的像素差值算法以及其他像素投影方法实现球面图像到多面体的投影。

优选地,在将球面图像的表面或图像块分割成多个图像块或图像区域的过程中,将球面图像的表面或图像块均匀分割成多个图像块或图像区域。

优选地,在多面体的面上建立与球面图像的表面的各个图像块或各个图像区域之间存在映射关系的块或区域的过程中,各个图像块或图像区域映射的块或区域的面积相等。

本发明中均匀分割图像区域或图像块除了是基于面积的均匀分割之外,还可以是基于角度的均匀分割方式或任意网格形状的均匀方式,此外非均匀分割方式也同样适用于本发明的区域或快的切割,例如基于四边形网格的非均匀分割或任意网格形状的非均匀方式。

优选地,各个块或区域为四边形。

优选地,各个块或区域为正方形。正方形是较为简单方便的投影模型,有利于提高投影计算速度,并且正方形图像适合于现有的编码技术,而且正方形可以在vr视觉效果中保持横向和竖向上的一致性。

较佳地,所述映射变换为snyder变换(施奈德变换)、rd变换、cube变换、unicube变换、isocube变换、透视投影变换或lambert等积投影变换等。上述变换方法均为现有映射变换中常用的映射变化方法。

较佳地,所述多面体为正多面体。

优选地,所述多面体为立方体或正十二面体。立方体方便展开,适合于现有的编码技术,并且立方体模型是较为简单的投影模型,有利于提高投影计算速度,而且立方体模型提供了更为均匀的像素分布。

较佳地,所述各个表面包含多个图像像素。

优选地,所述各个图像块包括至少一个图像像素或者各个图像区域包括至少一个图像像素。

也就是说本发明分割图像的极限是分割的每个区域内部仅有单个像素。需要注意的是本发明采用分割图像的方式来投影图像,所以即使分割到每个区域只有一个像素,其核心仍旧是分割图像并投影,与现有技术中之间对整个图像的所有像素整体投影的方式截然不同。

本发明还提供了一种全景视频及图片的反投影方法,其特点是,所述全景视频及图片的反投影方法包括以下步骤:

通过多面体图像向球面投影,将球面划分为多个表面;

通过映射变换,分别建立多面体图像的各个面与球面各个表面之间的映射关系;

分别将多面体图像各个面中的像素投影到存在映射关系的球面的表面。

较佳地,所述通过多面体图像向球面投影,将球面划分为多个表面的过程中包括以下步骤:

将多面体图像设置于球面所在球内,并以球心作为中心点;

将多面体图像中多面体的各个顶点和棱边映射至球面;

映射至球面的各个顶点和棱边将球面划分为多个表面。

较佳地,在通过多面体向球面投影,将球面划分为多个表面的过程前还包括以下步骤:

建立球体,其中多面体图像所在多面体的表面积与球体球面的表面积相同。

较佳地,在将多面体图像各个面中的像素投影到存在映射关系的球面的表面的过程中包括以下步骤:

对每一对存在映射关系的多面体图像的面和球面的表面执行如下步骤:

将多面体图像的面均匀分割成多个图像块;

通过映射变换,分别在球面的表面上建立与多面体图像的面中各个图像块之间存在映射关系的块;

在所有存在映射关系的多面体图像的面和球面的表面均构建完成图像块和块的映射关系后,对所有存在映射关系的多面体图像的面和球面的表面执行如下步骤:

将多面体图像的面中各个图像块的像素投影到存在映射关系的球面的表面中的块。

本发明在将球面分割为多个区域,并将多面体的各个面映射至各个区域的过程中,进一步对各个区域进一步分割并映射,将映射至球面的图像进一步细化,更好的实现像素的均匀分布。

优选地,在球面的表面上建立与多面体图像的各个图像块之间存在映射关系的块的过程中包括以下步骤:

将多面体图像的面上各个图像块的各个顶点映射至球面的表面;

通过映射变换,映射至球面的表面的各个顶点将球面的表面划分为多个块。

优选地,在球面的表面上建立与多面体图像的面的各个图像块之间存在映射关系的块的过程后迭代执行以下步骤:

将图像块分割成多个图像区域;

通过映射变换,分别在球面的块上建立与多面体图像的图像块的各个图像区域之间存在映射关系的区域;

在所有存在映射关系的多面体图像的面和球面的表面均构建完成图像区域和区域的映射关系后,对所有存在映射关系的球面的表面和多面体图像的面执行如下步骤:

将多面体图像的图像块中各个图像区域的像素投影到存在映射关系的球面的块中的区域。

本发明进一步通过对图像进行分割,更好的实现像素的均匀分布,特别是通过迭代重复地分割图像,即不断地对分割后的图像区域进行进一步地分割,从而使得最终用于投影的图像区域最小化。

优选地,在球面的块上建立与多面体图像的图像块的各个图像区域之间存在映射关系的区域的过程中包括以下步骤:

将多面体图像的图像块的各个图像区域的各个顶点映射至球面的表面中的块;

通过映射变换,映射至球面的表面中的块的各个顶点将球面的块划分为多个区域。

优选地,在将多面体图像的面中各个图像块或图像区域的像素投影到存在映射关系的球面的表面中的块或区域的过程中包括以下步骤:

按照多面体图像的面中图像块或图像区域的顶点与球面的表面中块或区域的顶点的映射关系,通过像素差值算法将图像块或图像区域中图像像素投影至块或区域;或者

计算多面体图像的面中图像块或图像区域的各个图像像素与球面的表面中块或区域相对位置的映射关系,将图像块或图像区域中图像像素投影至块或区域。

优选地,在将多面体图像的面或图像块分割成多个图像块或图像区域的过程中,将多面体图像的面或图像块均匀分割成多个图像块或图像区域。

优选地,在球面的表面上建立与多面体图像的面的各个图像块或各个图像区域之间存在映射关系的块或区域的过程中,各个图像块或图像区域的面积相等。

本发明中均匀分割图像区域或图像块除了是基于面积的均匀分割之外,还可以是基于角度的均匀分割方式或任意网格形状的均匀方式,此外非均匀分割方式也同样适用于本发明的区域或快的切割,例如基于四边形网格的非均匀分割或任意网格形状的非均匀方式。

优选地,各个图像块或图像区域为四边形。

优选地,各个图像块或图像区域为正方形。正方形是较为简单方便的投影模型,有利于提高投影计算速度,并且正方形图像适合于现有的编码技术,而且正方形可以在vr视觉效果中保持横向和竖向上的一致性。

较佳地,所述映射变换为snyder变换、rd变换、cube变换、unicube变换、isocube变换、透视投影变换或lambert等积投影变换等。

较佳地,所述多面体为正多面体。

优选地,所述多面体为立方体或正十二面体。立方体方便展开,适合于现有的编码技术,并且立方体模型是较为简单的投影模型,有利于提高投影计算速度,而且立方体模型提供了更加均匀的像素分布。

较佳地,所述多面体的各个面包含多个图像像素。

优选地,所述各个图像块包括至少一个图像像素或者各个图像区域包括至少一个图像像素。

在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。

本发明的积极进步效果在于:

本发明通过图像切割和多面体投影,实现在球面的均匀分割和像素均匀分布,并且通过应用至投影和反投影,既解决了球面全景场景的均匀像素采用问题,又解决了全景播放下的均匀像素分布问题。所以可用于全景拍摄以及全景播放,且像素都保持在球面上分布的均匀性。

本发明多面体投影不但采用面更少,且投影面以及内部分割都是四边形尤其是矩形或正方形,更适合视频与图像编码,最终的压缩效率也更高。

而且本发明还通过对图形的多次切割,来进一步提高均匀像素采用和均匀像素分布。

附图说明

图1为现有技术的全景图片在球面上投影的像素密度分布图。

图2为本发明的实施例1的snyder变换的映射示意图。

图3为本发明的实施例2的分割投影的示意图。

图4为本发明的实施例2和现有技术的投影效果对比图。

图5为本发明的实施例7的分割投影的示意图。

图6为本发明的另一实施方式的分割投影的示意图。

图7为本发明的实施例7的图像投影后平行四边形图像转换为长方形图像的变换示意图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

现有技术中在全景图像投影中均是对整个图像的像素投影,而无论圆柱体投影还是立方体投影均会导致的像素分布不均匀以及像素数据冗余,进而影响全景图像的图像质量。而为了抑制这种投影导致的像素分布不均匀以及数据冗余并提高图像质量,现有技术只有依靠对全景图像投影后的图像进行优化处理,使得最终的球面上像素的分布均匀。而且这种后续处理会导致大量的计算,不利于高速视频图像的处理以及高清视频图像的处理。

本发明通过图像切割和多面体投影,在全景图片投影的过程中实现在球面的均匀分割和像素均匀分布,不但提高了投影后的图像质量,还减小了后续图像处理的计算量,适用于高速视频图像的处理和高清视频图像的处理。而且还通过对图形的多次切割,来进一步提高投影阶段的均匀像素采用和均匀像素分布。

而且本发明的图像切割和多面体投影不但可应用至投影,也适用于反投影,既解决了球面全景场景的均匀像素采用问题,又解决了全景播放下的均匀像素分布问题。所以可以用于球面均匀像素采样、球面均匀像素显示以及球面均匀网格划分,最终可以消除数据冗余,以在相同采样点数下获得更高的峰值信噪比(psnr)。

此外本发明利用多面体投影不但采用面更少,且投影面以及内部分割都是四边形尤其是矩形或正方形,更适合视频与图像编码,最终的压缩效率也更高,从而能够更好的适用于视频编解码。

下面通过下述实施例来对本发明进行进一步地详细地说明。

实施例1

本实施例将球面的图像或视频图像投影的方法的流程如下:

步骤s101、建立立方体,其中立方体的表面积与球面图像所在球体的表面积相同。通过立方体球面投影,将球面图像划分为多个表面。本实施例采用立方体,此外任意的正多边体、多边体等都可以用于本实施例。但是计算量以及效用来讲,正多边体包括立方体具有最好的效用。

具体的分割球面图像还包括步骤s1011、将多面体设置于球面图像所在球体内,并以球心作为中心点。

步骤s1012、将多面体的各个顶点和棱边映射至球面图像。

步骤s1013、映射至球面图像的各个顶点和棱边将球面图像划分为多个表面。

步骤s102、通过snyder变换,分别建立球面图像各个表面与多面体的各个面之间的映射关系。

举例来说,经由施耐德变换计算得出映射关系如图2所示,附图标记301所指的[a,b,c,d]是立方体投影到球面上的面,附图标记303所指[a',b',c',d']是立方体被投影到球面上的面。

具体的顶点映射步骤如下:

其中设定球面的半径为r,立方体模型内切球半径为r。将立方体每一个面根据对称性划分成三角形单元,如附图标记304所指出的三角形单元,则球面上对应面也被划分成球面三角形单元,如附图标记302所示。

基于立方体的划分如下:将立方体上的每一个面划分成8个三角形,则球面上的对应面也被划分成8个球面三角形。如附图标记301所示,通过af、be、km和nl四条边,将面301划分成8个球面三角形;如附图标记303所示,通过a'f'、b'e'、k'm'和n'l'四条边,将面303划分成8个三角形。

如附图标记302所示,对于球面上点p,根据其所在的划分区域,构建该点对应的极坐标(α,t),其中,α为球面角,即面poi和面aoi的夹角;t为球面距离所对应的弧度,即点p和点i的球面距离所对应的弧度。

如附图标记304所示,对于立方体上点p',根据其所在的划分区域,可构建对应的极坐标(θ,ρ),其中,θ为夹角,即角∠a'i'p';ρ为距离,即线段p'i'的长度。

根据下列公式建立球面点到立方体点的映射(p→p'),即将球面极坐标(α,t)映射到立方体极坐标(θ,ρ),具体计算公式如下:

h=arccos(sin(α)sin(g)cos(g)-cos(α)cos(g))(1)

其中,r是立方体当前投影面的内切球半径,是平面三角形a’n’i’的内角i’a’n’的弧度,g是球面三角形ani的内角ian的弧度,g是边ai(即点a与点i之间的大圆弧)所对应的弧度;

根据下列公式建立多面体点到球面点的映射(p'→p),即将立方体极坐标(θ,ρ)映射到球面极坐标(α,t),具体计算公式如下:

极角的变换使用牛顿迭代法求出(利用公式(1),(2),(3)),其中s由公式(3)求出:

δα=-f(α)/f'(α)(10)

首先设α的初始值为α0=θ,进行第一次迭代,计算得到

δα=-f(α0)/f'(α0)(11)

然后更新α的值:

α1=α0+δα(12)

此时一次迭代结束,经过若干轮迭代后即可得到较为精确的α的近似解;

而t可由公式(6)计算得出:

t=2arcsin(ρ·sin(q/2)/d)(13)

其中,变量q和d根据公式(4)和(5)求出。

通过上述公式可以计算得到立方体和球面之间的映射关系。

步骤s103、分别将球面图像的各个表面中的像素投影到存在映射关系的立方体的面。

本实施例中被分割的球面图像的各个区域中均包含多个像素,本实施例中分割映射投影的方式能够有效的抑制像素分布的不均匀。

实施例2

本实施例的球面的图像或视频图像投影的方法在实施例1的投影方法的基础上,对球面投影到立方体的面进一步分割并映射投影,进而进一步提高了像素的分布均匀性。具体方法流程如下:

步骤s201、建立立方体,其中立方体的表面积与球面图像所在球体的表面积相同。通过立方体球面投影,将球面图像划分为多个表面。

具体的分割球面图像还包括步骤s2011、将多面体设置于球面图像所在球体内,并以球心作为中心点。

步骤s2012、将多面体的各个顶点和棱边映射至球面图像。

步骤s2013、映射至球面图像的各个顶点和棱边将球面图像划分为多个表面。

步骤s202、通过snyder变换,分别建立球面图像各个表面与多面体的各个面之间的映射关系。其映射方法与实施例1中步骤s102相同,此处不再赘述。

步骤s203、对每一对存在映射关系的球面图像的表面和多面体的面执行如下步骤:

s2031、将球面图像的表面分割成多个图像块。

s2032、通过snyder变换,分别在多面体的面上建立与球面图像的表面的各个图像块之间存在映射关系的块。

具体分割步骤如下:

将球面图像的表面中各个图像块的各个顶点映射至多面体的面。

通过snyder变换,映射至多面体的面的各个顶点将多面体的面划分为多个块。

举例说明,对球面205的各子表面按照立方体各个面进行适当分割后。对球面的各个子表面206通过如附图标记207的划网格线的方式,将球面划分出若干分割区域。附图标记208所示的s'是划分出的网格分割区域,[a',b',c',d']所表征的是该网格s'的四个顶点。

通过snyder变换,建立球面分割顶点到多面体分割顶点的映射关系。即将附图标记206所示子表面中所有的网格顶点都通过snyder变换算法映射到立方体201的面202上。以网格s'为例,需要将[a',b',c',d']四个点通过snyder变换算法在立方体201的面202上计算出对应的[a,b,c,d]坐标位置,即附图标记204所示网格s,即计算[a',b',c',d']→[a,b,c,d]。

根据该映射关系,球面到立方体投影,就是将附图标记207所示球面分割网格线投影到附图标记203所示立方体分割网格线,进而建立上述[a',b',c',d']→[a,b,c,d]的映射关系,也就是建立s'→s的坐标映射关系。

可以注意到本实施例中将球面图像的表面均匀分割成面积相同的多个图像块。

步骤s204、在所有存在映射关系的球面图像的表面和多面体的面均构建完成图像块和块的映射关系后,对所有存在映射关系的球面图像的表面和多面体的面执行如下步骤:

将球面图像的表面中各个图像块的像素投影到存在映射关系的多面体的面中的块。所以球面图像到立方体的投影,就是将球面上s'内的像素投影到立方体的s面内。

具体地说,本实施例中按照球面图像的表面中图像块的顶点与立方体的面中块的顶点的映射关系,通过像素差值算法将图像块或图像区域中图像像素投影至块或区域。

实施例3

本实施例的球面的图像或视频图像投影的方法在实施例2的投影方法的基础上,对球面投影到立方体的面再次分割并映射投影,进而提高了像素的分布均匀性。具体方法流程如下:

步骤s301、将多面体的各个顶点和棱边映射至球面图像。

步骤s302、映射至球面图像的各个顶点和棱边将球面图像划分为多个表面。

步骤s303、通过snyder变换,分别建立球面图像各个表面与多面体的各个面之间的映射关系。其映射方法与实施例2中步骤s202相同,此处不再赘述。

步骤s304、对每一对存在映射关系的球面图像的表面和多面体的面执行如下步骤:

s3041、将球面图像的表面分割成多个图像块.

s3042、通过snyder变换,分别在多面体的面上建立与球面图像的表面的各个图像块之间存在映射关系的块。

步骤s305、再对各个图像块进行分割映射,具体包括如下步骤:

s3051、将图像块成多个图像区域。

s3052、通过snyder变换,分别在立方体的块上建立与球面图像的图像块的各个图像区域之间存在映射关系的区域。

具体地说,就是将球面图像的图像块的各个图像区域的各个顶点映射至立方体的块。

然后利用snyder变换,映射至立方体的块的各个顶点将立方体的块划分为多个区域。

其中需要注意的本实施例中所述步骤s305可以迭代的执行,也就是说,在进入极限分割,即每个图像区域只有一个像素之前,通过图像块划分出的图像区域的不断进一步地分割映射,来实现映射区域的最小化。

例如在本实施例s305执行完毕后,再次将通过s305得到的图像区域作为图像块进一步分割出更加细化的图像区域,并将立方体的区域作为块,再次对应细化的图像区域,划分区域。对于s305的执行的次数,可以依据实际计算能力和图像质量要求进行调整,本发明并不限定s305的迭代次数。

步骤s306、在所有存在映射关系的球面图像的表面和立方体的面均构建完成图像区域和区域的映射关系后,针对所有存在映射关系的球面图像的表面和立方体的面,将球面图像的图像块中各个图像区域的像素投影到存在映射关系的多面体的块中的区域。

本实施例中通过计算球面图像的表面中图像区域的各个图像像素与立方体的面中区域相对位置的映射关系,将图像区域中图像像素投影至各个区域。也就是说,本实施例中采用snyder变换求出各个网格区域内部每一个像素的投影。而且在极端分割的情况下每个图像区域的内部只有一个像素时,通过snyder变换直接求出区域内部唯一的像素的投影。

实施例4

本实施例将如上实施例1-3获得的立方体的图像或视频图像反投影至球面的方法的流程如下:

步骤s401、建立球体,其中立方体图像所在立方体的表面积与球体球面的表面积相同。通过立方体图像向球面投影,将球面划分为多个表面。

具体的分割球面还包括步骤s4011、将立方体图像设置于球面所在球内,并以球心作为中心点。

步骤s4012、将立方体图像中立方体的各个顶点和棱边映射至球面。

步骤s4013、映射至球面的各个顶点和棱边将球面划分为多个表面。

步骤s402、通过snyder变换,分别建立立方体图像的各个面与球面各个表面之间的映射关系。

举例来说,通过经由施耐德变换计算得出映射关系如图2所示,附图标记301所指的[a,b,c,d]是立方体投影到球面上的面,附图标记303所指[a',b',c',d']是立方体被投影到球面上的面。具体的顶点映射关系参见实施例1中步骤102描述,此处不再赘述。

步骤s403、分别将立方体图像各个面中的像素投影到存在映射关系的球面的表面。从而完成立方体图像到球面的全景图像的转换。

实施例5

本实施例的立方体的图像或视频图像反投影的方法在实施例4的反投影方法的基础上,对立方体投影到球面的面进一步分割并映射投影,进而进一步提高了像素的分布均匀性。具体方法流程如下:

步骤s501、建立球体,其中立方体图像所在立方体的表面积与球体球面的表面积相同。通过立方体图像向球面投影,将球面划分为多个表面。

具体的分割球面还包括步骤s5011、将立方体图像设置于球面所在球内,并以球心作为中心点。

步骤s5012、将立方体图像中立方体的各个顶点和棱边映射至球面。

步骤s5013、映射至球面的各个顶点和棱边将球面划分为多个表面。

步骤s502、通过snyder变换,分别建立立方体图像的各个面与球面各个表面之间的映射关系。与实施例的步骤s402相同,这里不再赘述。

步骤s503、对每一对存在映射关系的立方体图像的面和球面的表面执行如下步骤:

s5031、将立方体图像的面均匀分割成多个图像块。

s5032、立方体图像的面上各个图像块的各个顶点映射至球面的表面。

s5033、通过snyder变换,映射至球面的表面的各个顶点将球面的表面划分为多个块。

举例说明,对附图标记201所示的选取的立方体中各个表面进行适当分割。如图3中附图标记202所示,通过附图标记203所示划网格线的方式,将立方体的面划分出若干分割区域。在本实施例中,网格线都是直线,且每个网格分割区域都是面积均等的正方形,附图标记204所示的网格s,[a,b,c,d]是该网格s的四个顶点。

通过snyder变换,建立立方体分割顶点到球面分割顶点的映射关系。即将附图标记202所示的所有的网格顶点都通过snyder变换算法映射到球面上。以网格s为例,需要将[a,b,c,d]四个点通过snyder变换算法在球面上计算出对应的[a',b',c',d']坐标位置,即计算[a,b,c,d]→[a',b',c',d']。

根据该映射关系,立方体到球面的投影,就是将立方体的面分割投影到球面。通过建立上述[a,b,c,d]→[a',b',c',d']的映射关系,可以建立s→s'的坐标映射关系。

步骤s504、在所有存在映射关系的立方体图像的面和球面的表面均构建完成图像块和块的映射关系后,针对所有存在映射关系的立方体图像的面和球面的表面,将立方体图像的面中各个图像块的像素投影到存在映射关系的球面的表面中的块。立方体到球面投影,就是将多面体s面内的像素投影到球面上s'内。

具体地说,本实施例中按照球面图像的表面中图像块的顶点与立方体的面中块的顶点的映射关系,通过像素差值算法将图像块或图像区域中图像像素投影至块或区域。

实施例6

本实施例的立方体的图像或视频图像反投影的方法在实施例5的反投影方法的基础上,对立方体投影到球面的面再次分割并映射投影,进而提高了像素的分布均匀性。具体方法流程如下:

步骤s601、建立球体,其中立方体图像所在立方体的表面积与球体球面的表面积相同。通过立方体图像向球面投影,将球面划分为多个表面。

具体的分割球面还包括步骤s6011、将立方体图像设置于球面所在球内,并以球心作为中心点。

步骤s6012、将立方体图像中立方体的各个顶点和棱边映射至球面。

步骤s6013、映射至球面的各个顶点和棱边将球面划分为多个表面。

步骤s602、通过snyder变换,分别建立立方体图像的各个面与球面各个表面之间的映射关系。与实施例的步骤s402相同,这里不再赘述。

步骤s603、对每一对存在映射关系的立方体图像的面和球面的表面执行如下步骤:

s6031、将立方体图像的面均匀分割成多个图像块。

s6032、立方体图像的面上各个图像块的各个顶点映射至球面的表面。

s6033、通过snyder变换,映射至球面的表面的各个顶点将球面的表面划分为多个块。

步骤s604、再对各个图像块进行分割映射,具体包括如下步骤:

s6041、将图像块分割成多个图像区域.

s6042、通过snyder变换,分别在球面的块上建立与多面体图像的图像块的各个图像区域之间存在映射关系的区域

具体地说,将立方体图像的图像块的各个图像区域的各个顶点映射至球面的表面中的块。

通过snyder变换,映射至球面的表面中的块的各个顶点将球面的块划分为多个区域。

其中需要注意的本实施例中所述步骤s604可以迭代的执行,也就是说,在进入极限分割,即每个图像区域只有一个像素之前,通过图像块划分出的图像区域的不断进一步地分割映射,来实现映射区域的最小化。

例如在本实施例s604执行完毕后,再次将通过s604得到的图像区域作为图像块进一步分割出更加细化的图像区域,并将球面的区域作为块,再次对应细化的图像区域,划分区域。对于s604的执行的次数,可以依据实际计算能力和图像质量要求进行调整,本发明并不限定s604的迭代次数。

步骤s605、在所有存在映射关系的立方体图像的面和球面的表面均构建完成图像区域和区域的映射关系后,针对所有存在映射关系的球面的表面和立方体图像的面,将立方体图像的图像块中各个图像区域的像素投影到存在映射关系的球面的块中的区域

本实施例中通过计算立方体图像的表面中图像区域的各个图像像素与球面中区域相对位置的映射关系,将图像区域中图像像素投影至各个区域。也就是说,本实施例中采用snyder变换求出各个网格区域内部每一个像素的投影。而且在极端分割的情况下每个图像区域的内部只有一个像素时,通过snyder变换直接求出区域内部唯一的像素的投影。

图4所示是实施例2与现有技术投影的像素分布的对比效果,其中附图标记401所示是圆柱面投影后的球面像素分布密度示意图,附图标记402是立方体投影后的球面像素分布密度示意图,附图标记403是实施例2的投影方法投影后的球面像素分布密度示意图,从主观视觉效果上可见实施例2提出的投影方案可以实现球面上像素的均匀分布,均匀度远超现有方案。

此外从客观数据评价标准出发,以球面赤道为起始点,以π/14为步长仰角统计图4中相应球面范围内的像素密度。附图标记404所示图表是圆柱面投影下不同仰角范围内的像素密度,附图标记405所示图表是立方体投影下不同仰角范围内的像素密度,附图标记406所示图表是实施例2的投影方法下不同仰角范围内的像素密度。可见在客观数据评价上,实施例2的球面像素均匀度均好于目前已知的投影方法。

另外,采用球面点集均匀度可采用j.cui提出的评估公式:

计算结果d越低代表点集的均匀度越高,图4中给出了不同像素点数目对应的计算结果。同样可见实施例2的球面像素均匀度均好于目前已知的投影方法。

实施例7

本实施例提出应用于正四面体模型的图像或视频图像投影方法,并基于该投影方法将球面投影到正四面体的面进一步分割并映射投影,进而进一步提高了像素的分布均匀性。

步骤s701、建立正四面体,通过正四面体球面投影,将球面图像划分为四个表面。

具体的分割球面图像还包括步骤s7011、将正四面体中心与球心位置重合。

s7012、将正四面体的各个顶点和棱边通过透视投影映射至球的表面。

s7013、映射至球面505的各个顶点和棱边将球面图像划分为多个表面506。

s702、通过snyder变换,分别建立球面图像各个表面与正四面体的各个面之间的映射关系。

举例来说,经由snyder变换计算得出映射关系如图5所示,附图标记501所指的是正四面体,附图标记502所指的面对应于被投影到球面505上的面506。

具体的顶点映射步骤如下:

其中设定球面的半径为r,正四面体模型内切球半径为r。如图5所示,对于面506的分割方式可以采用四边形分割。

具体地说,将正四面体每一个面根据对称性划分成四边形单元,如附图标记503的方式分割面502,对应至球面就构成了附图标记507的分割方式。

如附图标记504所示划分出的四边形单元s’,则球面上对应面也被划分成球面四边形单元,如附图标记508所示的s。

此外本实施例的另外一种实现方式采用三角形分割,基于正四面体的划分如图6所示,将正四面体上的每一个面划分成6个三角形单元,则球面上的对应面也被划分成6个球面三角形单元。如附图标记601所示,通过am、bn、cl三条边将面601划分成6个球面三角形单元;如附图标记603所示通过a’m’、b’n’、c’l’三条边,将面603划分成6个三角形单元。其中正四面体的每个三角形单元与球面三角形单元的对应关系如图6中ami构成的三角形602和a’m’i’构成的三角形604之间的对应关系。其中,基于存在映射关系的三角形单元与球面三角形单元之间的snyder变换同实施例1中所述一致,这里就不再赘述。

s703、得到正四面体表面与球面之间点的一一映射关系之后,基于该映射关系将球面投影到正四面体的面进一步分割并映射投影,进而进一步提高了像素的分布均匀性。

s7031、将球面图像的表面分割为多个图像块。

s7032、通过snyder变换,分别在多面体的面上建立与球面图像的表面的各个图像块之间存在映射关系的块。

具体分割步骤如下:

通过snyder变换,映射至多面体的面的各个顶点将多面体的面划分为多个块。

举例说明,对球面的各子表面按照正四面体各个面进行适当分割后。对球面的各个子表面通过划网格线的方式,将球面划分出若干分割区域。附图标记508所示的s是划分出的网格分割区域,[a,b,c,d]所表征的是该网格s的四个顶点。

通过snyder变换,建立球面分割顶点到正四面体分割顶点的映射关系。即将附图标记505所示子表面506中所有的网格顶点都通过snyder变换算法映射到正四面体501的面502上。以网格s为例,需要将[a,b,c,d]四个点通过snyder变换算法在正四面体501的面502上计算出对应的[a',b',c',d']坐标位置,即附图标记504所示网格s',即计算[a,b,c,d]→[a',b',c',d']。

根据该映射关系,球面到正四面体投影,就是将附图标记507所示球面分割网格线投影到附图标记503所示正四面体分割网格线,进而建立上述[a,b,c,d]→[a',b',c',d']的映射关系,也就是建立s→s'的坐标映射关系。

此外,对于正四面体,还可以将正四面体的表面展开成为平行四边形,参见图7,如附图标记605所示,其中是由相邻两个面(例如面acb和面bcd)组成的菱形,而交接处的被分割的面与两个面均有重合。相比于其他分割方式,该分割方式可以使得子表面的分布更加均匀,形状较为一致。

此后进一步还可以通过仿射变换,将平行四边形图像转换为长方形图像,使得视频图像适合于现有的编码技术,如附图标记606所示。也可以采用其他方式,例如可以将平行四边形补齐为长方形,如附图标记607所示,在补齐后的长方形图像中,补齐部分可以填充为纯色而不影响编码效率,而非补齐部分,即原平行四边形部分仍然填充原平行四边形图像。

通过以上的全景视频及图片的投影方法和反投影方法的具体实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请的全景视频及图片的投影和反投影可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,所述计算机软件产品可以存储在存储介质中,如rom/ram(只读存储器/随机存取存储器)、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施例或者实施例的某些部分所述的方法。

本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc(个人电脑)、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

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