一种将镜头图像展开为全景图像的方法及装置与流程

文档序号:11657638阅读:409来源:国知局
一种将镜头图像展开为全景图像的方法及装置与流程

本发明属于图像处理技术领域,特别是涉及一种将镜头图像展开为全景图像的方法及装置。



背景技术:

随着vr技术(虚拟现实技术)的快速发展,人们对vr内容(虚拟现实内容)的需求也愈加强烈,全景图像以及全景视频是vr内容的重要组成部分之一,目前的全景图像一般是由一个大角度鱼眼镜头相机拍摄,或是由几个广角或鱼眼相机拍摄并将拍摄后的图像拼接而成,由于广角和鱼眼相机拍摄的图像都会带有畸变,所以需要通过算法将广角或鱼眼相机拍摄的图像展开为全景图像。目前的全景图像展开算法大多运行在cpu(中央处理器),少数全景图像展开算法运行在gpu(graphicprocessingunit,图形处理器,以下简称gpu),由于全景图像展开算法计算量很大,展开一帧图像需要的时间很长,一般都采用成本、能耗比较高,体积比较大的高性能cpu,然而cpu却很难做到高清的或是实时的图像展开,不能实现全景直播。



技术实现要素:

为解决上述技术问题,本发明提供了一种将镜头图像展开为全景图像的方法和装置,以实现快速地将镜头图像展开为全景图像,降低全景设备的成本、能耗和减小全景设备的体积。

第一方面,本发明实施例提供的一种将镜头图像展开为全景图像的方法,包括下述步骤:

步骤a,准备一个原始网格模型,计算新贴图坐标值,对所述原始网格模型的原始贴图坐标值和通过计算得到的所述新贴图坐标值进行坐标值变换,生成新网格模型并保存;

步骤b,准备一张待展开的镜头图像,将所述待展开的镜头图像赋予到所述步骤a中的新网格模型中,并通过gpu对所述新网格模型进行渲染,获取全景图像并保存。

进一步地,所述步骤a包括下述步骤:

步骤a1,准备一个原始网格模型;

步骤a2,准备一张用于参考的展开为全景的镜头图像;

步骤a3,将所述步骤a2中的用于参考的展开为全景的镜头图像赋予到所述步骤a1中的原始网格模型中;

步骤a4,根据所述步骤a3中用于参考的展开为全景的镜头图像在拍摄时镜头的朝向参数、视场角、畸变参数、图像偏心参数和位移参数计算所述用于参考的展开为全景的镜头图像所在的原始网格模型中的每个顶点的新贴图坐标值,并将所述原始网格模型中每个顶点的原始贴图坐标值都变更为其所对应的新贴图坐标值,生成新网格模型;

步骤a5,取出所述步骤a3中的用于参考的展开为全景的镜头图像,并保存所述步骤a4中的新网格模型。

进一步地,所述步骤b包括下述步骤:

步骤b1,准备一张待展开的镜头图像;

步骤b2,将所述步骤b1中的待展开的镜头图像赋予到所述步骤a5的新网格模型中;

步骤b3,通过gpu对所述步骤b2中的新网格模型进行渲染,得到与所述待展开的镜头图像对应的全景图像;

步骤b4,对所述步骤b3中的全景图像进行存储。

更进一步地,所述原始网格模型的形状可以为矩形、球体、360°环景、圆环、半球或其他平面几何图形或曲面立体几何图形。

再进一步地,所述镜头图像可以为鱼眼镜头图像、广角镜头图像或其他形式的镜头图像。

第二方面,本发明实施例提供的一种将镜头图像展开为全景图像的装置,包括:

新网格模型生成模块,用于存放原始网格模型和计算新贴图坐标值,对所述原始网格模型的原始贴图坐标值和通过计算得到的所述新贴图坐标值进行坐标值变换,生成新网格模型并保存;

全景图像获取模块,用于存放待展开的镜头图像,将所述待展开的镜头图像赋予到所述新网格模型生成模块中的新网格模型中,并通过gpu对所述新网格模型进行渲染,获取全景图像并保存,其与所述新网格模型生成模块相连接。

进一步地,所述新网格模型生成模块包括:

原始网格模型存放单元,用于存放原始网格模型;

用于参考的展开为全景的镜头图像存放单元,用于存放用于参考的展开为全景的镜头图像,其与所述原始网格模型存放单元相连接;

镜头图像第一赋予单元,用于将所述用于参考的展开为全景的镜头图像存放单元中的用于参考的展开为全景的镜头图像赋予到所述原始网格模型存放单元中的原始网格模型中,其与所述用于参考的展开为全景的镜头图像存放单元相连接;

网格模型贴图坐标处理单元,用于根据所述镜头图像第一赋予单元中用于参考的展开为全景的镜头图像在拍摄时镜头的朝向参数、视场角、畸变参数、图像偏心参数和位移参数计算所述用于参考的展开为全景的镜头图像所在的原始网格模型中的每个顶点的新贴图坐标值,并将所述原始网格模型中每个顶点的原始贴图坐标值都变更为其所对应的新贴图坐标值,生成新网格模型,其与所述镜头图像第一赋予单元相连接;

新网格模型存放单元,用于取出所述镜头图像第一赋予单元中的用于参考的展开为全景的镜头图像并保存所述网格模型贴图坐标处理单元中生成的新网格模型,其与所述网格模型贴图坐标处理单元相连接。

进一步地,所述全景图像获取模块包括:

待展开的镜头图像存放单元,用于存放待展开的镜头图像,其与所述新网格模型存放单元相连接;

镜头图像第二赋予单元,用于将所述待展开的镜头图像存放单元中的待展开的镜头图像赋予到所述新网格模型存放单元中的新网格模型内,其与所述待展开的镜头图像存放单元相连接;

新网格模型渲染单元,用于通过gpu对所述镜头图像第二赋予单元中的新网格模型进行渲染,得到与所述待展开的镜头图像对应的全景图像,其与所述镜头图像第二赋予单元相连接;

全景图像存放单元,用于将所述新网格模型渲染单元中的所述全景图像进行存储,其与所述新网格模型渲染单元相连接。

更进一步地,所述原始网格模型的形状可以为矩形、球体、360°环景、圆环、半球或其他平面几何图形或曲面立体几何图形。

再进一步地,所述镜头图像可以为鱼眼镜头图像、广角镜头图像或其他形式的镜头图像。

本发明通过将待展开的镜头图像作为材质贴图赋予到预先计算和更改好新贴图坐标值的新网格模型中,并通过gpu来对新网格模型进行渲染,可实现快速地将镜头图像展开为全景图像,使全景设备的成本、能耗大大降低,体积大大减小,同时,通过这种方法我们还可以实现高清、实时全景视频的制作。

附图说明

图1为本发明实施例提供的一种将镜头图像展开为全景图像的方法的流程示意图;

图2为图1中生成新网格模型的方法的流程示意图;

图3为图1中获取全景图像的方法的流程示意图;

图4为本发明实施例提供的一个矩形原始网格模型;

图5为本发明实施例提供的一张用于参考的展开为全景的鱼眼图像;

图6为本发明实施例提供的由鱼眼镜头相机拍摄的一张待展开的鱼眼图像;

图7为本发明实施例提供的新的矩形网格模型通过渲染后得到的全景图像;

图8为本发明实施例提供的一种将镜头图像展开为全景图像的装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

请参阅图1,图1是本发明实施例提供的一种将镜头图像展开为全景图像的方法的流程示意图,如图1所示,将镜头图像展开为全景图像的方法包括以下步骤:

步骤s20,准备一个原始网格模型,计算新贴图坐标值,对所述原始网格模型的原始贴图坐标值和通过计算得到的所述新贴图坐标值进行坐标值变换,生成新网格模型并保存;

步骤s21,准备一张待展开的镜头图像,将所述待展开的镜头图像赋予到所述步骤s20中的新网格模型中,并通过gpu对所述新网格模型进行渲染,获取全景图像并保存。

请参阅图2,图2为图1中生成新网格模型的方法的流程示意图,如图2所示,生成新网格模型的方法包括下述步骤:

步骤s201,准备一个原始网格模型;

步骤s202,准备一张用于参考的展开为全景的镜头图像;

步骤s203,将所述步骤s202中的用于参考的展开为全景的镜头图像赋予到所述步骤s201中的原始网格模型中;

步骤s204,根据所述步骤s203中用于参考的展开为全景的镜头图像在拍摄时镜头的朝向参数、视场角、畸变参数、图像偏心参数和位移参数计算所述用于参考的展开为全景的镜头图像所在的原始网格模型中的每个顶点的新贴图坐标值,并将所述原始网格模型中每个顶点的原始贴图坐标值都变更为其所对应的新贴图坐标值,生成新网格模型;

步骤s205,取出所述步骤s203中的用于参考的展开为全景的镜头图像,并保存所述步骤s204中的新网格模型。

请参阅图3,图3为图1中获取全景图像的方法的流程示意图,如图3所示,

获取全景图像的方法包括下述步骤:

步骤s211,准备一张待展开的镜头图像;

步骤s212,将所述步骤s211中的待展开的镜头图像赋予到所述步骤s205的新网格模型中;

步骤s213,通过gpu对所述步骤s212中的新网格模型进行渲染,得到与所述待展开的镜头图像对应的全景图像;

步骤s214,对所述步骤s213中的全景图像进行存储。

以一个矩形原始网格模型和鱼眼镜头相机拍摄的一张鱼眼图像为例:

首先在3dsmax或其他建模工具中制作一个长宽比为2:1的矩形原始网格模型,该矩形原始网格模型由多个正方形网格构成,所以矩形原始网格模型的长宽分段的比也是2:1,正常情况下,模型中的网格越密集,展开的全景图像质量越高,效果越好,如图4所示为一个长由50个正方形网格,宽由25个正方形网格构成的矩形原始网格模型;

如图5所示为一张用于参考的展开为全景的鱼眼图像;

将图5所示的用于参考的展开为全景的鱼眼图像作为贴图赋予到图4所示的矩形原始网格模型中,该矩形原始网格模型中的每个网格都是由四个顶点所组成的,每个网格的顶点内含有网格的位置坐标(x,y,z)和原始贴图坐标(u,v),我们需要根据该用于参考的展开为全景的鱼眼图像的朝向参数、视场角、畸变参数、图像偏心参数和位移参数等来计算该矩形原始网格模型中的每个顶点的新贴图坐标值,由于新贴图坐标值决定了该顶点使用鱼眼图像的哪些像素来贴到由该顶点组成的网格上,所以将该矩形原始网格模型中的每个顶点的原始贴图坐标值都更改为其所对应的新贴图坐标值,以位置坐标为(15,9)的顶点为例,该顶点的原始贴图坐标值为(0,0),通过计算,可以得出该点对应的新贴图坐标值为(0.1,0.3),于是我们把该顶点的原始贴图坐标值(0,0)更改为新贴图坐标值(0.1,0.3),并将上述矩形原始网格模型中的每个顶点的新贴图坐标值都按照这种方法设置好,生成新的矩形网格模型并保存;

如图6所示为由鱼眼镜头相机拍摄的一张待展开的鱼眼图像,将该待展开的鱼眼图像赋予到新的矩形网格模型中;

通过gpu对新的矩形网格模型进行渲染,得到与该鱼眼图像对应的全景图像并保存,如图7所示为新的矩形网格模型通过渲染后得到的全景图像。

本发明实施例中,计算和更改好新贴图坐标值的新网格模型可以保存,下次可以直接使用。

请参阅图8,图8是本发明实施例提供的一种将镜头图像展开为全景图像的装置的结构示意图,如图8所示,将镜头图像展开为全景图像的装置包括:

新网格模型生成模块30,用于存放原始网格模型和计算新贴图坐标值,对所述原始网格模型的原始贴图坐标值和通过计算得到的所述新贴图坐标值进行坐标值变换,生成新网格模型并保存;

全景图像获取模块31,用于存放待展开的镜头图像,将所述待展开的镜头图像赋予到所述新网格模型生成模块30中的新网格模型中,并通过gpu对所述新网格模型进行渲染,获取全景图像并保存,其与所述新网格模型生成模块30相连接。

本发明实施例中,新网格模型生成模块30包括:

原始网格模型存放单元301,用于存放原始网格模型;

用于参考的展开为全景的镜头图像存放单元302,用于存放用于参考的展开为全景的镜头图像,其与原始网格模型存放单元301相连接;

镜头图像第一赋予单元303,用于将所述用于参考的展开为全景的镜头图像存放单元302中的用于参考的展开为全景的镜头图像赋予到所述原始网格模型存放单元301中的原始网格模型中,其与所述用于参考的展开为全景的镜头图像存放单元302相连接;

网格模型贴图坐标处理单元304,用于根据所述镜头图像第一赋予单元303中用于参考的展开为全景的镜头图像在拍摄时镜头的朝向参数、视场角、畸变参数、图像偏心参数和位移参数计算所述用于参考的展开为全景的镜头图像所在的原始网格模型中的每个顶点的新贴图坐标值,并将所述原始网格模型中每个顶点的原始贴图坐标值都变更为其所对应的新贴图坐标值,生成新网格模型,其与所述镜头图像第一赋予单元303相连接;

新网格模型存放单元305,用于取出所述镜头图像第一赋予单元303中的用于参考的展开为全景的镜头图像并保存所述网格模型贴图坐标处理单元304中生成的新网格模型,其与所述网格模型贴图坐标处理单元304相连接。

全景图像获取模块31包括:

待展开的镜头图像存放单元311,用于存放待展开的镜头图像,其与所述新网格模型存放单元305相连接;

镜头图像第二赋予单元312,用于将所述待展开的镜头图像存放单元311中的待展开的镜头图像赋予到所述新网格模型存放单元305中的新网格模型内,其与所述待展开的镜头图像存放单元311相连接;

新网格模型渲染单元313,用于通过gpu对所述镜头图像第二赋予单元312中的新网格模型进行渲染,得到与所述待展开的镜头图像对应的全景图像,其与所述镜头图像第二赋予单元312相连接;

全景图像存放单元314,用于将所述新网格模型渲染单元313中的所述全景图像进行存储,其与所述新网格模型渲染单元313相连接。

本发明实施例中,原始网格模型和其对应的新网格模型的形状可以为矩形、球体、360°环景、圆环、半球或其他平面几何图形或曲面立体几何图形;镜头图像可以为鱼眼镜头图像、广角镜头图像或其他形式的镜头图像。

本发明通过将待展开的镜头图像作为材质贴图赋予到预先计算和更改好新贴图坐标值的新网格模型中,并通过gpu来对新网格模型进行渲染,可实现快速地将镜头图像展开为全景图像,使全景设备的成本、能耗大大降低,体积大大减小,同时,通过这种方法我们还可以实现高清、实时全景视频的制作。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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