基于多路图像的全景图像对齐方法、装置及便携式终端
技术领域
本发明属于图像处理领域,尤其涉及一种基于多路图像的全景图像对齐方法、装置及便携式终端。
背景技术
现有技术在拼接全景图像的时候,对于左图像和右图像,通常使用同一个旋转矩阵来拼接,但会造成左图像和右图像拼接缝隙都比较大。为了克服用同一个旋转矩阵来拼接导致的拼接缝隙都比较大的问题,现有技术采用左图像和右图像分别单独进行拼接,然而会造成左图像和右图像在全景图像里面,有些视差小,有些视差大,从而影响全景图像的立体效果。
发明内容
本发明的目的在于提供一种基于多路图像的全景图像对齐方法、装置及便携式终端,旨在解决采用左图像和右图像分别单独进行拼接,造成左图像和右图像在全景图像里面,有些视差小,有些视差大,从而影响全景图像的立体效果的问题。
第一方面,本发明提供了一种基于多路图像的全景图像对齐方法,所述方法包括:
获取多路球图像,所述多路球图像是用于拼接全景图像的多路图像分别映射到单位球上的多路球图像;
截取每路球图像的中间部分,分别根据每路球图像的中间部分计算每路球图像与相邻球图像中的中间部分旋转欧拉角;截取每路球图像的左边部分,分别根据每路球图像的左边部分计算每路球图像与相邻球图像中的左边部分旋转欧拉角,得到第一左边部分旋转矩阵;截取每路球图像的右边部分,分别根据每路球图像的右边部分计算每路球图像与相邻球图像中的右边部分旋转欧拉角,得到第一右边部分旋转矩阵;
使用所有路图像的中间部分旋转欧拉角拼接左边部分图像,得到第一左全景图像;使用所有路图像的中间部分旋转欧拉角拼接右边部分图像,得到第一右全景图像;使用所有路图像的左边部分旋转欧拉角拼接左边部分图像,得到第二左全景图像;使用所有路图像的右边部分旋转欧拉角拼接右边部分图像,得到第二右全景图像;
将第二左全景图像对齐到第一左全景图像,计算得到第二左边部分旋转矩阵,则左全景图的旋转矩阵等于第一左边部分旋转矩阵与第二左边部分旋转矩阵相乘,从而得到左全景图对齐后的旋转欧拉角;将第二右全景图像对齐到第一右全景图像,计算得到第二右边部分旋转矩阵,则右全景图的旋转矩阵等于第一右边部分旋转矩阵与第二右边部分旋转矩阵相乘,从而得到右全景图对齐后的旋转欧拉角。
第二方面,本发明提供了一种基于多路图像的全景图像对齐装置,所述装置包括:
获取模块,用于获取多路球图像,所述多路球图像是用于拼接全景图像的多路图像分别映射到单位球上的多路球图像;
计算模块,用于截取每路球图像的中间部分,分别根据每路球图像的中间部分计算每路球图像与相邻球图像中的中间部分旋转欧拉角;截取每路球图像的左边部分,分别根据每路球图像的左边部分计算每路球图像与相邻球图像中的左边部分旋转欧拉角,得到第一左边部分旋转矩阵;截取每路球图像的右边部分,分别根据每路球图像的右边部分计算每路球图像与相邻球图像中的右边部分旋转欧拉角,得到第一右边部分旋转矩阵;
拼接模块,用于使用所有路图像的中间部分旋转欧拉角拼接左边部分图像,得到第一左全景图像;使用所有路图像的中间部分旋转欧拉角拼接右边部分图像,得到第一右全景图像;使用所有路图像的左边部分旋转欧拉角拼接左边部分图像,得到第二左全景图像;使用所有路图像的右边部分旋转欧拉角拼接右边部分图像,得到第二右全景图像;
对齐模块,用于将第二左全景图像对齐到第一左全景图像,计算得到第二左边部分旋转矩阵,则左全景图的旋转矩阵等于第一左边部分旋转矩阵与第二左边部分旋转矩阵相乘,从而得到左全景图对齐后的旋转欧拉角;将第二右全景图像对齐到第一右全景图像,计算得到第二右边部分旋转矩阵,则右全景图的旋转矩阵等于第一右边部分旋转矩阵与第二右边部分旋转矩阵相乘,从而得到右全景图对齐后的旋转欧拉角。
第三方面,本发明提供了一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,所述计算机程序使得计算机执行如上述的基于多路图像的全景图像对齐方法。
第四方面,本发明提供了一种便携式终端,包括:
一个或多个处理器;
存储器;以及
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行以下步骤的指令:
获取多路球图像,所述多路球图像是用于拼接全景图像的多路图像分别映射到单位球上的多路球图像;
截取每路球图像的中间部分,分别根据每路球图像的中间部分计算每路球图像与相邻球图像中的中间部分旋转欧拉角;截取每路球图像的左边部分,分别根据每路球图像的左边部分计算每路球图像与相邻球图像中的左边部分旋转欧拉角,得到第一左边部分旋转矩阵;截取每路球图像的右边部分,分别根据每路球图像的右边部分计算每路球图像与相邻球图像中的右边部分旋转欧拉角,得到第一右边部分旋转矩阵;
使用所有路图像的中间部分旋转欧拉角拼接左边部分图像,得到第一左全景图像;使用所有路图像的中间部分旋转欧拉角拼接右边部分图像,得到第一右全景图像;使用所有路图像的左边部分旋转欧拉角拼接左边部分图像,得到第二左全景图像;使用所有路图像的右边部分旋转欧拉角拼接右边部分图像,得到第二右全景图像;
将第二左全景图像对齐到第一左全景图像,计算得到第二左边部分旋转矩阵,则左全景图的旋转矩阵等于第一左边部分旋转矩阵与第二左边部分旋转矩阵相乘,从而得到左全景图对齐后的旋转欧拉角;将第二右全景图像对齐到第一右全景图像,计算得到第二右边部分旋转矩阵,则右全景图的旋转矩阵等于第一右边部分旋转矩阵与第二右边部分旋转矩阵相乘,从而得到右全景图对齐后的旋转欧拉角。
在本发明中,由于将第二左全景图像对齐到第一左全景图像,计算得到第二左边部分旋转矩阵,则左全景图的旋转矩阵等于第一左边部分旋转矩阵与第二左边部分旋转矩阵相乘,从而得到左全景图对齐后的旋转欧拉角;将第二右全景图像对齐到第一右全景图像,计算得到第二右边部分旋转矩阵,则右全景图的旋转矩阵等于第一右边部分旋转矩阵与第二右边部分旋转矩阵相乘,从而得到右全景图对齐后的旋转欧拉角。因此实现了基于多路图像的全景图像对齐,全景图像的立体效果好。
附图说明
图1是本发明实施例一提供的基于多路图像的全景图像对齐方法流程图。
图2是本发明实施例二提供的基于多路图像的全景图像对齐装置的示意图。
图3是本发明实施例四提供的便携式终端的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
请参阅图1,本发明实施例一提供的基于多路图像的全景图像对齐方法包括以下步骤:
S101、获取多路球图像,所述多路球图像是用于拼接全景图像的多路图像分别映射到单位球上的多路球图像。
S102、截取每路球图像的中间部分,分别根据每路球图像的中间部分计算每路球图像与相邻球图像中的中间部分旋转欧拉角rollmid、pitchmid、yawmid;截取每路球图像的左边部分,分别根据每路球图像的左边部分计算每路球图像与相邻球图像中的左边部分旋转欧拉角rollleft0、pitchleft0、yawleft0,得到第一左边部分旋转矩阵Rleft0;截取每路球图像的右边部分,分别根据每路球图像的右边部分计算每路球图像与相邻球图像中的右边部分旋转欧拉角rollright0、pitchright0、yawright0,得到第一右边部分旋转矩阵Rright0。
在本发明实施例一中,所述分别根据每路球图像的中间部分计算每路球图像与相邻球图像中的中间部分旋转欧拉角rollmid、pitchmid、yawmid具体可以包括以下步骤:
截取每路球图像的中间部分;
针对每路球图像的中间部分提取多个特征点;
将每路球图像的中间部分的多个特征点分别与相邻球图像的中间部分的多个特征点进行匹配,得到多对特征点对;
针对每路球图像,在该路球图像的旋转过程中,获取多对特征点对的距离和最小时对应的旋转欧拉角,作为每路球图像与相邻球图像中的中间部分旋转欧拉角rollmid、pitchmid、yawmid。
在本发明实施例一中,所述分别根据每路球图像的左边部分计算每路球图像与相邻球图像中的左边部分旋转欧拉角rollleft0、pitchleft0、yawleft0具体可以包括以下步骤:
截取每路球图像的左边部分;
针对每路球图像的左边部分提取多个特征点;
将每路球图像的左边部分的多个特征点分别与相邻球图像的左边部分的多个特征点进行匹配,得到多对特征点对;
针对每路球图像,在该路球图像的旋转过程中,获取多对特征点对的距离和最小时对应的旋转欧拉角,作为每路球图像与相邻球图像中的左边部分旋转欧拉角rollleft0、pitchleft0、yawleft0。
在本发明实施例一中,所述分别根据每路球图像的右边部分计算每路球图像与相邻球图像中的右边部分旋转欧拉角rollright0、pitchright0、yawright0具体可以包括以下步骤:
截取每路球图像的右边部分;
针对每路球图像的右边部分提取多个特征点;
将每路球图像的右边部分的多个特征点分别与相邻球图像的右边部分的多个特征点进行匹配,得到多对特征点对;
针对每路球图像,在该路球图像的旋转过程中,获取多对特征点对的距离和最小时对应的旋转欧拉角,作为每路球图像与相邻球图像中的右边部分旋转欧拉角rollright0、pitchright0、yawright0。
S103、使用所有路图像的中间部分旋转欧拉角rollmid、pitchmid、yawmid拼接左边部分图像,得到第一左全景图像Ileft0;使用所有路图像的中间部分旋转欧拉角rollmid、pitchmid、yawmid拼接右边部分图像,得到第一右全景图像Iright0;使用所有路图像的左边部分旋转欧拉角rollleft0、pitchleft0、yawleft0拼接左边部分图像,得到第二左全景图像Ileft1;使用所有路图像的右边部分旋转欧拉角rollright0、pitchright0、yawright0拼接右边部分图像,得到第二右全景图像Iright1。
其中,拼接的方法可以采用申请公布日为2016年10月12日,公布号为CN106023070A公开的实时全景拼接方法,或者是现有技术常用的拼接方法等,在此不再赘述。
S104、将第二左全景图像Ileft1对齐到第一左全景图像Ileft0,计算得到第二左边部分旋转矩阵为Rleft1,则左全景图的旋转矩阵Rleft2=Rleft0*Rleft1,从而得到左全景图对齐后的旋转欧拉角rollleft1、pitchleft1、yawleft1;将第二右全景图像Iright1对齐到第一右全景图像Iright0,计算得到第二右边部分旋转矩阵为Rright1,则右全景图的旋转矩阵Rright2=Rright0*Rright1,从而得到右全景图对齐后的旋转欧拉角rollright1、pitchright1、yawright1。
在本发明实施例一中,所述将第二左全景图像Ileft1对齐到第一左全景图像Ileft0,计算得到第二左边部分旋转矩阵为Rleft1具体包括以下步骤:
将第一左全景图像Ileft0映射到第一立方体Cle f t0,将第二左全景图像Ileft1映射到第二立方体Cleft1上;
分别提取第一立方体Cleft0和第二立方体Cleft1的每个面上的特征点对F;
计算最优的第二左边部分旋转矩阵Rleft1,使得F的距离和最小。
所述将第二右全景图像Iright1对齐到第一右全景图像Iright0,计算得到第二右边部分旋转矩阵为Rright1具体包括以下步骤:
将第一右全景图像Iright0映射到第三立方体Cright0,将第二右全景图像Iright1映射到第四立方体Cright1上;
分别提取第三立方体Cright0和第四立方体Cright1的每个面上的特征点对F;
计算最优的第二右边部分旋转矩阵Rright1,使得F的距离和最小。
实施例二:
请参阅图2,本发明实施例二提供的基于多路图像的全景图像对齐装置包括:
获取模块11,用于获取多路球图像,所述多路球图像是用于拼接全景图像的多路图像分别映射到单位球上的多路球图像;
计算模块12,用于截取每路球图像的中间部分,分别根据每路球图像的中间部分计算每路球图像与相邻球图像中的中间部分旋转欧拉角;截取每路球图像的左边部分,分别根据每路球图像的左边部分计算每路球图像与相邻球图像中的左边部分旋转欧拉角,得到第一左边部分旋转矩阵;截取每路球图像的右边部分,分别根据每路球图像的右边部分计算每路球图像与相邻球图像中的右边部分旋转欧拉角,得到第一右边部分旋转矩阵;
拼接模块13,用于使用所有路图像的中间部分旋转欧拉角拼接左边部分图像,得到第一左全景图像;使用所有路图像的中间部分旋转欧拉角拼接右边部分图像,得到第一右全景图像;使用所有路图像的左边部分旋转欧拉角拼接左边部分图像,得到第二左全景图像;使用所有路图像的右边部分旋转欧拉角拼接右边部分图像,得到第二右全景图像;
对齐模块14,用于将第二左全景图像对齐到第一左全景图像,计算得到第二左边部分旋转矩阵,则左全景图的旋转矩阵等于第一左边部分旋转矩阵与第二左边部分旋转矩阵相乘,从而得到左全景图对齐后的旋转欧拉角;将第二右全景图像对齐到第一右全景图像,计算得到第二右边部分旋转矩阵,则右全景图的旋转矩阵等于第一右边部分旋转矩阵与第二右边部分旋转矩阵相乘,从而得到右全景图对齐后的旋转欧拉角。
在本发明实施例二中,所述分别根据每路球图像的中间部分计算每路球图像与相邻球图像中的中间部分旋转欧拉角具体可以包括:
截取每路球图像的中间部分;
针对每路球图像的中间部分提取多个特征点;
将每路球图像的中间部分的多个特征点分别与相邻球图像的中间部分的多个特征点进行匹配,得到多对特征点对;
针对每路球图像,在该路球图像的旋转过程中,获取多对特征点对的距离和最小时对应的旋转欧拉角,作为每路球图像与相邻球图像中的中间部分旋转欧拉角;
所述分别根据每路球图像的左边部分计算每路球图像与相邻球图像中的左边部分旋转欧拉角具体可以包括:
截取每路球图像的左边部分;
针对每路球图像的左边部分提取多个特征点;
将每路球图像的左边部分的多个特征点分别与相邻球图像的左边部分的多个特征点进行匹配,得到多对特征点对;
针对每路球图像,在该路球图像的旋转过程中,获取多对特征点对的距离和最小时对应的旋转欧拉角,作为每路球图像与相邻球图像中的左边部分旋转欧拉角;
所述分别根据每路球图像的右边部分计算每路球图像与相邻球图像中的右边部分旋转欧拉角具体可以包括:
截取每路球图像的右边部分;
针对每路球图像的右边部分提取多个特征点;
将每路球图像的右边部分的多个特征点分别与相邻球图像的右边部分的多个特征点进行匹配,得到多对特征点对;
针对每路球图像,在该路球图像的旋转过程中,获取多对特征点对的距离和最小时对应的旋转欧拉角,作为每路球图像与相邻球图像中的右边部分旋转欧拉角。
在本发明实施例二中,所述将第二左全景图像对齐到第一左全景图像,计算得到第二左边部分旋转矩阵具体可以包括:
将第一左全景图像映射到第一立方体,将第二左全景图像映射到第二立方体上;
分别提取第一立方体和第二立方体的每个面上的特征点对;
计算最优的第二左边部分旋转矩阵,使得特征点对的距离和最小;
所述将第二右全景图像对齐到第一右全景图像,计算得到第二右边部分旋转矩阵具体可以包括:
将第一右全景图像映射到第三立方体,将第二右全景图像映射到第四立方体上;
分别提取第三立方体和第四立方体的每个面上的特征点对;
计算最优的第二右边部分旋转矩阵,使得特征点对的距离和最小。
本发明实施例三还提供了一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,所述计算机程序使得计算机执行如本发明实施例一的基于多路图像的全景图像对齐方法。
实施例四:
图3示出了本发明实施例四提供的便携式终端的具体结构框图,该便携式终端100,包括:
一个或多个处理器102;
存储器101;以及
一个或多个程序,其中所述一个或多个程序被存储在所述存储器101中,并且被配置成由所述一个或多个处理器102执行,所述程序包括用于执行以下步骤的指令:
获取多路球图像,所述多路球图像是用于拼接全景图像的多路图像分别映射到单位球上的多路球图像;
截取每路球图像的中间部分,分别根据每路球图像的中间部分计算每路球图像与相邻球图像中的中间部分旋转欧拉角;截取每路球图像的左边部分,分别根据每路球图像的左边部分计算每路球图像与相邻球图像中的左边部分旋转欧拉角,得到第一左边部分旋转矩阵;截取每路球图像的右边部分,分别根据每路球图像的右边部分计算每路球图像与相邻球图像中的右边部分旋转欧拉角,得到第一右边部分旋转矩阵;
使用所有路图像的中间部分旋转欧拉角拼接左边部分图像,得到第一左全景图像;使用所有路图像的中间部分旋转欧拉角拼接右边部分图像,得到第一右全景图像;使用所有路图像的左边部分旋转欧拉角拼接左边部分图像,得到第二左全景图像;使用所有路图像的右边部分旋转欧拉角拼接右边部分图像,得到第二右全景图像;
将第二左全景图像对齐到第一左全景图像,计算得到第二左边部分旋转矩阵,则左全景图的旋转矩阵等于第一左边部分旋转矩阵与第二左边部分旋转矩阵相乘,从而得到左全景图对齐后的旋转欧拉角;将第二右全景图像对齐到第一右全景图像,计算得到第二右边部分旋转矩阵,则右全景图的旋转矩阵等于第一右边部分旋转矩阵与第二右边部分旋转矩阵相乘,从而得到右全景图对齐后的旋转欧拉角。
在本发明实施例四中,所述截取每路球图像的中间部分,分别根据每路球图像的中间部分计算每路球图像与相邻球图像中的中间部分旋转欧拉角具体可以包括以下步骤:
截取每路球图像的中间部分;
针对每路球图像的中间部分提取多个特征点;
将每路球图像的中间部分的多个特征点分别与相邻球图像的中间部分的多个特征点进行匹配,得到多对特征点对;
针对每路球图像,在该路球图像的旋转过程中,获取多对特征点对的距离和最小时对应的旋转欧拉角,作为每路球图像与相邻球图像中的中间部分旋转欧拉角;
所述截取每路球图像的左边部分,分别根据每路球图像的左边部分计算每路球图像与相邻球图像中的左边部分旋转欧拉角具体包括:
截取每路球图像的左边部分;
针对每路球图像的左边部分提取多个特征点;
将每路球图像的左边部分的多个特征点分别与相邻球图像的左边部分的多个特征点进行匹配,得到多对特征点对;
针对每路球图像,在该路球图像的旋转过程中,获取多对特征点对的距离和最小时对应的旋转欧拉角,作为每路球图像与相邻球图像中的左边部分旋转欧拉角;
所述截取每路球图像的右边部分,分别根据每路球图像的右边部分计算每路球图像与相邻球图像中的右边部分旋转欧拉角具体包括:
截取每路球图像的右边部分;
针对每路球图像的右边部分提取多个特征点;
将每路球图像的右边部分的多个特征点分别与相邻球图像的右边部分的多个特征点进行匹配,得到多对特征点对;
针对每路球图像,在该路球图像的旋转过程中,获取多对特征点对的距离和最小时对应的旋转欧拉角,作为每路球图像与相邻球图像中的右边部分旋转欧拉角。
在本发明实施例四中,所述将第二左全景图像对齐到第一左全景图像,计算得到第二左边部分旋转矩阵具体可以包括以下步骤:
将第一左全景图像映射到第一立方体,将第二左全景图像映射到第二立方体上;
分别提取第一立方体和第二立方体的每个面上的特征点对;
计算最优的第二左边部分旋转矩阵,使得特征点对的距离和最小;
所述将第二右全景图像对齐到第一右全景图像,计算得到第二右边部分旋转矩阵具体包括:
将第一右全景图像映射到第三立方体,将第二右全景图像映射到第四立方体上;
分别提取第三立方体和第四立方体的每个面上的特征点对;
计算最优的第二右边部分旋转矩阵,使得特征点对的距离和最小。
在本发明实施例中,由于将第二左全景图像对齐到第一左全景图像,计算得到第二左边部分旋转矩阵,则左全景图的旋转矩阵等于第一左边部分旋转矩阵与第二左边部分旋转矩阵相乘,从而得到左全景图对齐后的旋转欧拉角;将第二右全景图像对齐到第一右全景图像,计算得到第二右边部分旋转矩阵,则右全景图的旋转矩阵等于第一右边部分旋转矩阵与第二右边部分旋转矩阵相乘,从而得到右全景图对齐后的旋转欧拉角。因此实现了基于多路图像的全景图像对齐,全景图像的立体效果好。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。