全景图像处理方法和装置转让专利

申请号 : CN201510827569.X

文献号 : CN106791351B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘东辉

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明涉及一种全景图像处理方法和装置,所述方法包括:获取全景图像;根据所述全景图像中自顶部起第一数量的像素行中的像素值生成参考像素值;所述自顶部起第一数量的像素行包括拼接痕迹图像;对于所述全景图像中自顶部起第二数量的像素行中的像素值,若越靠近顶部则调整为越靠近所述参考像素值,若越远离顶部则调整为越靠近自身调整前的像素值;所述第二数量大于所述第一数量且小于所述全景图像的像素行总数量。本发明提供的全景图像处理方法和装置,克服了全景图像存在的拼接痕迹问题,并可避免因像素值调整产生明显分界线而造成图像失真。

权利要求 :

1.一种全景图像处理方法,所述方法包括:

获取全景图像;

根据所述全景图像中自顶部起第一数量的像素行中的像素值生成参考像素值;所述自顶部起第一数量的像素行包括拼接痕迹图像;

对于所述全景图像中自顶部起第二数量的像素行中的像素值,若越靠近顶部则调整为越靠近所述参考像素值,若越远离顶部则调整为越靠近自身调整前的像素值;所述第二数量大于所述第一数量且小于所述全景图像的像素行总数量。

2.根据权利要求1所述的方法,其特征在于,所述获取全景图像,包括:获取分别从沿水平面区分的不同方向拍摄的多个图像;

将所述多个图像中过曝的图像的亮度降低到与其余图像匹配;

将所述多个图像按照图像内容进行拼接,获得全景图像。

3.根据权利要求1所述的方法,其特征在于,所述方法还包括:预先收集若干全景图像样本,获取所述全景图像样本中统计的拼接痕迹图像所占从顶部开始的像素行的数量与相应的所述全景图像样本中像素行总数量的第一比例;

根据所述第一比例和获取的全景图像中的像素行总数量计算第一数量;

根据预设的大于所述第一比例的第二比例和获取的全景图像中的像素行总数量计算第二数量。

4.根据权利要求1所述的方法,其特征在于,所述根据所述全景图像中自顶部起第一数量的像素行中的像素值生成参考像素值,包括:计算所述全景图像中自顶部起第一数量的像素行中的像素值的平均值作为参考像素值。

5.根据权利要求1所述的方法,其特征在于,所述对于所述全景图像中自顶部起第二数量的像素行中的像素值,若越靠近顶部则调整为越靠近所述参考像素值,若越远离顶部则调整为越靠近自身调整前的像素值,包括:计算所述全景图像中自顶部起第二数量的像素行中的各个像素值分别与所述参考像素值的加权平均值作为待替换像素值,且计算时所述参考像素值的权重与所述各个像素值距离顶部的像素行数量负相关;

将所述自顶部起第二数量的像素行中的各个像素值分别替换为计算出的相应的所述待替换像素值。

6.根据权利要求1所述的方法,其特征在于,根据以下公式计算所述全景图像中自顶部起第二数量的像素行中的各个像素值的待替换像素值:其中,x为所述全景图像中自顶部起第二数量的像素行中像素的标识, 和 分别为红色通道、绿色通道和蓝色通道的参考像素值,h为所述第二数量,distx为像素x距离全景图像顶部的像素行数量;Rx、Gx和Bx分别为像素x在红色通道、绿色通道和蓝色通道的原始的像素值;R'x、G'x和B'x分别为像素x在红色通道、绿色通道和蓝色通道的待替换像素值。

7.一种全景图像处理装置,其特征在于,所述装置包括:

全景图像获取模块,用于获取全景图像;

参考像素值生成模块,用于根据所述全景图像中自顶部起第一数量的像素行中的像素值生成参考像素值;

像素值调整模块,用于对于所述全景图像中自顶部起第二数量的像素行中的像素值,若越靠近顶部则调整为越靠近所述参考像素值,若越远离顶部则调整为越靠近自身调整前的像素值;所述第二数量大于所述第一数量且小于所述全景图像的像素行总数量。

8.根据权利要求7所述的装置,其特征在于,所述全景图像获取模块包括:获取模块,用于获取分别从沿水平面区分的不同方向拍摄的多个图像;

过曝处理模块,用于将所述多个图像中过曝的图像的亮度降低到与其余图像匹配;

拼接模块,用于将所述多个图像按照图像内容进行拼接,获得全景图像。

9.根据权利要求7所述的装置,其特征在于,所述装置还包括:第一比例获取模块,用于预先收集若干全景图像样本,获取所述全景图像样本中统计的拼接痕迹图像所占从顶部开始的像素行的数量与相应的所述全景图像样本中像素行总数量的第一比例;

第一数量计算模块,用于根据所述第一比例和获取的全景图像中的像素行总数量计算第一数量;

第二数量计算模块,用于根据预设的大于所述第一比例的第二比例和获取的全景图像中的像素行总数量计算第二数量。

10.根据权利要求7所述的装置,其特征在于,所述参考像素值生成模块还用于计算所述全景图像中自顶部起第一数量的像素行中的像素值的平均值作为参考像素值。

11.根据权利要求7所述的装置,其特征在于,所述像素值调整模块包括:待替换像素值计算模块,用于计算所述全景图像中自顶部起第二数量的像素行中的各个像素值分别与所述参考像素值的加权平均值,且计算时所述参考像素值的权重与所述各个像素值距离顶部的像素行数量负相关;

像素值替换模块,用于将所述自顶部起第二数量的像素行中的各个像素值分别替换为计算出的相应的所述加权平均值。

12.根据权利要求11所述的装置,其特征在于,所述待替换像素值计算模块还用于根据以下公式计算所述全景图像中自顶部起第二数量的像素行中的各个像素值的待替换像素值:其中,x为所述全景图像中自顶部起第二数量的像素行中像素的标识 和 分别为红色通道、绿色通道和蓝色通道的参考像素值,h为所述第二数量,distx为像素x距离全景图像顶部的像素行数量;Rx、Gx和Bx分别为像素x在红色通道、绿色通道和蓝色通道的原始的像素值;R'x、G'x和B'x分别为像素x在红色通道、绿色通道和蓝色通道的待替换像素值。

说明书 :

全景图像处理方法和装置

技术领域

[0001] 本发明涉及图像处理技术领域,特别是涉及街景地图技术领域,尤其涉及一种全景图像处理方法和装置。

背景技术

[0002] 全景图像是将多个方向拍摄的图像拼接后获得的图像,目前在地图中被广泛应用,称为街景地图。街景地图是一种实景地图服务,可以为用户提供城市、街道或其他环境的360度全景图像。
[0003] 街景地图中的全景图像都是由多个相机拍摄后拼接所得,在拍摄过程中,不同方向的光照强度不完全一致,这样导致拍摄获得的多个图像的曝光度不一样。即使在拼接时会做匀光处理,但在拼接获得的全景图像上部还是会存在明显的明暗过渡现象,为拼接痕迹,也可称为折角。如图1中的101a和101b,是全景图像的天空部分存在的拼接痕迹的示意图。
[0004] 目前为克服全景图像的拼接痕迹问题,一种方式是人工利用专业图像处理软件(比如PhotoShop)进行处理,另一种方式则是在拼接图像时将亮度最高的图像作为基准图像,调整其它图像与基准图像亮度一致,然后再拼接。
[0005] 然而,人工处理的方式处理起来难度大、耗时多,影响处理效率,不适合大批量全景图像的处理。而调高亮度的方式实际是将图像过曝来去除明暗过渡的细节信息,从而避免因明暗过渡而产生的拼接痕迹,但这样拼接获得的全景图像整体过曝,丢失了图像细节。因此目前处理全景图像的方式不能有效地克服拼接痕迹问题。

发明内容

[0006] 基于此,有必要针对上述问题,提供一种能够有效克服全景图像的拼接痕迹问题的全景图像处理方法和装置。
[0007] 一种全景图像处理方法,所述方法包括:
[0008] 获取全景图像;
[0009] 根据所述全景图像中自顶部起第一数量的像素行中的像素值生成参考像素值;所述自顶部起第一数量的像素行包括拼接痕迹图像;
[0010] 对于所述全景图像中自顶部起第二数量的像素行中的像素值,若越靠近顶部则调整为越靠近所述参考像素值,若越远离顶部则调整为越靠近自身调整前的像素值;所述第二数量大于所述第一数量且小于所述全景图像的像素行总数量。
[0011] 一种全景图像处理装置,所述装置包括:
[0012] 全景图像获取模块,用于获取全景图像;
[0013] 参考像素值生成模块,用于根据所述全景图像中自顶部起第一数量的像素行中的像素值生成参考像素值;
[0014] 像素值调整模块,用于对于所述全景图像中自顶部起第二数量的像素行中的像素值,若越靠近顶部则调整为越靠近所述参考像素值,若越远离顶部则调整为越靠近自身调整前的像素值;所述第二数量大于所述第一数量且小于所述全景图像的像素行总数量。
[0015] 上述全景图像处理方法和装置,利用全景图像中自顶部起第一数量的像素行中的像素值计算获得参考像素值,该参考像素值可以体现出拼接痕迹图像所在区域的像素值特征,进而根据该参考像素值来调整自顶部起第二数量的像素行中的像素值。全景图像中经过调整的各个像素值,在垂直方向上越靠近顶部则越靠近参考像素值,若越远离顶部则越靠近自身调整前的像素值;在水平方向上体现为像素值的差异减弱,且越接近顶部差异越小。这样经过调整后,拼接痕迹图像的明暗突变变化为平缓过渡,克服了全景图像存在的拼接痕迹问题。而且由于第二数量大于第一数量且小于全景图像的像素行总数量,这样调整后原拼接痕迹图像所在区域的像素值平稳过渡到拼接痕迹图像以下的正常图像区域,可避免因像素值调整产生明显分界线而造成图像失真。

附图说明

[0016] 图1为全景图像中拼接痕迹图像所在位置的局部区域示意图;
[0017] 图2为一个实施例中用于实现全景图像处理方法的电子设备的组成结构示意图;
[0018] 图3为一个实施例中全景图像处理方法的流程示意图;
[0019] 图4为一个实施例中全景图像中自顶部起第一数量的像素行中的像素的示意图;
[0020] 图5为一个实施例中获取全景图像的步骤的流程示意图;
[0021] 图6为一个实施例中沿水平面区分的不同方向的示意图;
[0022] 图7为一个实施例中计算第一数量和第二数量的步骤的流程示意图;
[0023] 图8为一个实施例中对于全景图像中自顶部起第二数量的像素行中的像素值,若越靠近顶部则调整为越靠近参考像素值,若越远离顶部则调整为越靠近自身调整前的像素值的步骤的流程示意图;
[0024] 图9为一个实施例中全景图像被处理前和处理后拼接痕迹图像所在位置的局部区域对比示意图;
[0025] 图10为一个实施例中全景图像处理装置的结构框图;
[0026] 图11为另一个实施例中全景图像处理装置的结构框图;
[0027] 图12为再一个实施例中全景图像处理装置的结构框图;
[0028] 图13为一个实施例中全景图像处理装置的结构框图。

具体实施方式

[0029] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0030] 如图2所示,在一个实施例中,提供了一种电子设备200,包括通过系统总线连接的处理器、非易失性存储介质和内存储器。其中处理器具有计算功能和控制电子设备200工作的功能,该处理器被配置为执行一种全景图像处理方法。非易失性存储介质包括磁存储介质、光存储介质和闪存式存储介质中的至少一种。非易失性存储介质存储有操作系统和全景图像处理装置,全景图像处理装置用于实现一种全景图像处理方法。内存储器用于为操作系统和全景图像处理装置的运行提供高速缓存。
[0031] 如图3所示,在一个实施例中,提供了一种全景图像处理方法,本实施例以该方法应用于上述图2中的电子设备200来举例说明。该方法具体包括如下步骤:
[0032] 步骤302,获取全景图像。
[0033] 具体地,全景图像是将分别从沿水平面区分的不同方向拍摄的多个图像拼接所获得的图像,这里拼接是指按照这多个图像的内容连续性所进行的拼接,使得拼接获得的全景图像在内容上连续。全景图像可以是360度全景图像,此时全景图像包括从一个观察点水平旋转360度所观察到的景象,此时全景图像左边缘可与右边缘无缝连接。
[0034] 电子设备可获取预先拼接得到的全景图像,也可以获取多个方向拍摄的图像来实时合成全景图像。预先拼接得到的全景图像可从本地或通过网络获取,用于拼接全景图像的多个图像可以从本地获取、通过网络获取或者实时拍摄获得。
[0035] 步骤304,根据全景图像中自顶部起第一数量的像素行中的像素值生成参考像素值;自顶部起第一数量的像素行包括拼接痕迹图像。
[0036] 具体地,全景图像的顶部是指当全景图像中的内容的方向基本与在现实世界中的方向一致时该全景图像的上边缘。基本垂直是指近似垂直,并不要求在数学上严格垂直。若全景图像具有多个颜色通道,则对每个颜色通道的像素值单独处理。颜色通道可以是RGB(红色、绿色和蓝色通道),还可以是CMYK(青色、洋红、黄色和黑色通道)。
[0037] 全景图像是由像素组成的,各像素按行列排列,像素行就是排列成一行的像素。全景图像中自顶部起第一数量的像素行,是指当将全景图像中的像素行从顶部由1开始顺序编号时,从编号为1的像素行到编号为第一数量的像素行形成的像素行总数量为第一数量的像素行的集合。
[0038] 拼接痕迹图像是指将多个亮度不一致的图像拼接成全景图像时在拼接处产生的明显的像素值突变的角状痕迹,该痕迹由于拼接时的图像畸变而呈一定角度,一般在天空处比较明显。拼接痕迹图像如图1中的101a和101b。自顶部起第一数量的像素行包括拼接痕迹图像,是指这第一数量的像素行构成的图像区域包括拼接痕迹图像。
[0039] 在一个实施例中,步骤304包括:计算全景图像中自顶部起第一数量的像素行中的像素值的平均值作为参考像素值。具体可将自顶部起第一数量的像素行中的像素值求和后再除以这些像素值的总数来计算平均值,将该平均值作为参考像素值。
[0040] 在一个实施例中,可采用以下公式(1)计算参考像素值:
[0041]
[0042]   公式(1)
[0043]
[0044] 其中,m∈[1,n]为全景图像中自顶部起第一数量的像素行中像素的标识;n为全景图像中自顶部起第一数量的像素行中像素的总数;Rm、Gm和Bm分别为像素m在红色通道、绿色通道和蓝色通道的像素值; 和 分别为红色通道、绿色通道和蓝色通道的参考像素值。
[0045] 参照图4,假设第一数量为height,全景图像的像素总列数为width,则n=height*width;m=1+(he-1)*width,he∈[1,height]表示像素m所在像素行的序号。
[0046] 在一个实施例中,可在全景图像中自顶部起第一数量的像素行中的像素值的平均值上增加或减少预设数值作为参考像素值。在一个实施例中,可计算全景图像中自顶部起第一数量的像素行中的像素值的加权平均值作为参考像素值。计算加权平均值时的权重可以根据需要进行设置和调整,比如可统计全景图像中自顶部起第一数量的像素行中各取值的像素值的数量,按照统计的数量设置计算加权平均值时的权重。
[0047] 步骤306,对于全景图像中自顶部起第二数量的像素行中的像素值,若越靠近顶部则调整为越靠近参考像素值,若越远离顶部则调整为越靠近自身调整前的像素值;第二数量大于第一数量且小于全景图像的像素行总数量。
[0048] 具体地,全景图像中自顶部起第二数量的像素行,是指当将全景图像中的像素行从顶部由1开始顺序编号时,从编号为1的像素行到编号为第二数量的像素行形成的像素行总数量为第二数量的像素行的集合。
[0049] 对自顶部起第二数量的像素行中的像素值进行调整,使得调整后的像素值在以参考像素值和原始的像素值为端值的区间范围内取值。原始的像素值是指调整前的像素值。而且,当被调整的像素越靠近全景图像的顶部时,调整后的像素值越趋近甚至等于参考像素值;当被调整的像素越远离全景图像的顶部时,调整后的像素值越趋近甚至等于原始的像素值。
[0050] 在一个实施例中,对于需要调整的每一个像素值,在以参考像素值和相应的原始的像素值为端值的区间范围内取值,越靠近顶部则取值越靠近参考像素值,越远离顶部则越靠近相应的原始的像素值,从而将原始的像素值调整为相应的取值,这样便可以实现对全景图像中自顶部起第二数量的像素行中的像素值进行调整。
[0051] 上述全景图像处理方法,利用全景图像中自顶部起第一数量的像素行中的像素值计算获得参考像素值,该参考像素值可以体现出拼接痕迹图像所在区域的像素值特征,进而根据该参考像素值来调整自顶部起第二数量的像素行中的像素值。全景图像中经过调整的各个像素值,在垂直方向上越靠近顶部则越靠近参考像素值,若越远离顶部则越靠近自身调整前的像素值;在水平方向上体现为像素值的差异减弱,且越接近顶部差异越小。这样经过调整后,拼接痕迹图像的明暗突变变化为平缓过渡,克服了全景图像存在的拼接痕迹问题。而且由于第二数量大于第一数量且小于全景图像的像素行总数量,这样调整后原拼接痕迹图像所在区域的像素值平稳过渡到拼接痕迹图像以下的正常图像区域,可避免因像素值调整产生明显分界线而造成图像失真。
[0052] 如图5所示,在一个实施例中,步骤302具体包括以下步骤:
[0053] 步骤502,获取分别从沿水平面区分的不同方向拍摄的多个图像。
[0054] 具体地,可参照图6,D1、D2和D3分别为沿水平面的三个方向,且分别指向不同的方向,分别从D1、D2和D3这三个方向进行拍摄可获得多个用于拼接获得全景图像的三个图像。多个图像中的多个至少为2个,拍摄获得的图像的数量与拍摄的方向是一一对应的。
[0055] 在一个实施例中,可通过沿水平面区分的不同方向设置的摄像头拍摄获得从沿水平面区分的不同方向拍摄的多个图像。在另一个实施例中,可通过将摄像头水平转动的同时每隔预设时间间隔拍摄的方式获得从沿水平面区分的不同方向拍摄的多个图像。
[0056] 步骤504,将多个图像中过曝的图像的亮度降低到与其余图像匹配。
[0057] 具体地,过曝就是指由于环境光过亮、光圈过大和/或快门过慢等原因造成的图像中亮度过高、颜色泛白的情况。将过曝的图像的各个颜色通道的亮度降低,从而与多个图像中其余的图像亮度匹配。这样将多个图像的亮度调整到基本一致,保证拼接获得的全景图像整体曝光的准确。
[0058] 其中降低亮度具体可通过整体降低过曝的图像的像素值来实现,若存在多个颜色通道则分别将各个颜色通道的像素值整体降低。整体降低像素值具体可线性地降低像素值,即每个像素值降低的幅度相同。整体降低像素值还可以曲线性地降低像素值,即各个像素值降低的幅度呈曲线,这样可以尽量保留一些重要的细节信息。若降低后的像素值会超过像素值的取值范围的边界值则置为相应的边界值。
[0059] 步骤506,将多个图像按照图像内容进行拼接,获得全景图像。
[0060] 具体地,多个图像是有顺序的,这种顺序体现了多个图像在图像内容上的连续,拼接图像时按照这种顺序将多个图像进行拼接,以保证拼接获得的全景图像在内容上的连续性。拼接时相邻的两个图像之间在内容上最好有重叠,重叠的内容便于在将相邻图像拼接时确定拼接的边界以及将图像进行形变,从而使得拼接的全景图像更加流畅、准确。
[0061] 本实施例中,通过降低过曝的图像像素值来降低亮度,使得多个图像的亮度基本保持一致,这样可以保证拼接获得的全景图像整体上曝光准确。而且拼接图像产生的拼接痕迹图像可以通过上述步骤302至步骤306克服,从而使得全景图像的成像效果更加准确,应用在街景地图中全景图像能够更加准确地反映真实的地理环境,为用户导航提供更加准确的信息。
[0062] 如图7所示,在一个实施例中,该全景图像处理方法还包括计算第一数量和第二数量的步骤,具体包括如下步骤:
[0063] 步骤702,获取全景图像样本中统计的拼接痕迹图像所占从顶部开始的像素行的数量与相应的全景图像样本中像素行总数量的第一比例。
[0064] 具体地,可预先收集若干全景图像样本,确定这些全景图像样本中拼接痕迹图像的位置,从而确定拼接痕迹图像所占用的像素行的数量,这些像素行的数量是从相应的全景图像样本的顶部开始算的。然后将确定的拼接痕迹图像所占用的像素行的数量除以相应的全景图像样本中的像素行总数量获得候选比例,取这些候选比例的平均值、最大值或者出现次数最多的候选比例作为第一比例。第一比例可取4%至8%,优选可取5%.[0065] 步骤704,根据第一比例和获取的全景图像中的像素行总数量计算第一数量。
[0066] 具体地,获得所获取的全景图像相应的像素行总数量,从而计算所获得的像素行总数量乘以第一比例的乘积,获得第一数量。
[0067] 步骤706,根据预设的大于第一比例的第二比例和获取的全景图像中的像素行总数量计算第二数量。
[0068] 具体地,预先设置大于第一比例的第二比例,计算获取的全景图像中的像素行总数量乘以第二比例的乘积,获得第二数量。其中第二比例可以取8%至15%,优选可取10%.[0069] 本实施例中,通过预先设置的第一比例和第二比例来相应地计算第一数量和第二数量,可以适用于对各种高度的全景图像进行处理,适应性强。
[0070] 如图8所示,在一个实施例中,步骤306具体包括如下步骤:
[0071] 步骤802,计算全景图像中自顶部起第二数量的像素行中的各个像素值分别与参考像素值的加权平均值作为待替换像素值,且计算时参考像素值的权重与各个像素值距离顶部的像素行数量负相关。
[0072] 具体地,可利用以下公式(2)来计算加权平均值作为待替换像素值:
[0073]
[0074]   公式(2)
[0075]
[0076] 其中,λ∈[0,1]与distx负相关,x∈[1,h*width]为全景图像中自顶部起第二数量的像素行中像素的标识;distx∈[0,h]为像素x距离全景图像顶部的像素行数量;h为第二数量,width为全景图像的像素列总数量; 和 分别为红色通道、绿色通道和蓝色通道的参考像素值;Rx、Gx和Bx分别为像素x在红色通道、绿色通道和蓝色通道的原始的像素值;R'x、G'x和B'x分别为像素x在红色通道、绿色通道和蓝色通道的待替换像素值;λ为红色通道、绿色通道和蓝色通道的参考像素值的权重。
[0077] λ与distx负相关,是指λ随着distx的增大而减小,随着distx的减小而增大。其中λ与distx可以是线性负相关关系,比如λ=1-distx/h。λ与distx也可以是非线性负相关关系,比如 还可以取其它以distx为自变量单调递减且值域范围为[0,1]的其它函数来表示λ与distx之间负相关的关系,这里不再赘述。
[0078] 在一个实施例中,根据以下公式(3)计算全景图像中自顶部起第二数量的像素行中的各个像素值的待替换像素值:
[0079]
[0080]   公式(3)
[0081]
[0082] 其中,x∈[1,h*width]为全景图像中自顶部起第二数量的像素行中像素的标识,和 分别为红色通道、绿色通道和蓝色通道的参考像素值,h为第二数量,width为全景图像的像素列总数量;distx为像素x距离全景图像顶部的像素行数量;Rx、Gx和Bx分别为像素x在红色通道、绿色通道和蓝色通道的原始的像素值;R'x、G'x和B'x分别为像素x在红色通道、绿色通道和蓝色通道的待替换像素值。
[0083] 上述公式(3)可以变形为公式(4):
[0084]
[0085]   公式(4)
[0086]
[0087] 其中1-distx/h为红色通道、绿色通道和蓝色通道的参考像素值的权重λ,因此利用上述公式(3)和(4)计算出的待替换像素值,是全景图像中自顶部起第二数量的像素行中的各个像素值分别与参考像素值的加权平均值。
[0088] 步骤804,将自顶部起第二数量的像素行中的各个像素值分别替换为计算出的相应的待替换像素值。
[0089] 具体地,可以遍历自顶部起第二数量的像素行中的各个像素,将自顶部起第二数量的像素行中各颜色通道的像素值Rx、Gx和Bx,替换为相应的待替换像素值R'x、G'x和B'x,从而完成像素值的调整。具体在遍历时可以按照x从1到h*width的顺序即逐行遍历,也可以逐列遍历,还可以按照其它可选顺序遍历x的取值范围内的取值。
[0090] 举例说明,利用步骤802和步骤804对图1中的两个图像所在的全景图像进行处理后,得到的处理后的结果如图9所示,拼接痕迹问题被克服了。
[0091] 本实施例中,计算全景图像中自顶部起第二数量的像素行中的各个像素值分别与参考像素值的加权平均值作为待替换像素值替换掉原始的像素值,并且在计算加权平均值时参考像素值的权重与各个像素值距离顶部的像素行数量呈线性负相关关系。这样计算简单,对电子设备硬件要求低,而且处理后像素值过渡平缓,图像不失真,处理结果非常理想。
[0092] 如图10所示,在一个实施例中,提供了一种全景图像处理装置1000,具有实现上述各个实施例的全景图像处理方法的功能模块。该全景图像处理装置1000包括全景图像获取模块1001、参考像素值生成模块1002和像素值调整模块1003。
[0093] 全景图像获取模块1001,用于获取全景图像。
[0094] 具体地,全景图像是将分别从沿水平面区分的不同方向拍摄的多个图像拼接所获得的图像,这里拼接是指按照这多个图像的内容连续性所进行的拼接,使得拼接获得的全景图像在内容上连续。全景图像可以是360度全景图像,此时全景图像包括从一个观察点水平旋转360度所观察到的景象,此时全景图像左边缘可与右边缘无缝连接。
[0095] 全景图像获取模块1001可用于获取预先拼接得到的全景图像,也可以获取多个方向拍摄的图像来实时合成全景图像。预先拼接得到的全景图像可从本地或通过网络获取,用于拼接全景图像的多个图像可以从本地获取、通过网络获取或者实时拍摄获得。
[0096] 参考像素值生成模块1002,用于根据全景图像中自顶部起第一数量的像素行中的像素值生成参考像素值。
[0097] 具体地,全景图像的顶部是指当全景图像中的内容的方向基本与在现实世界中的方向一致时该全景图像的上边缘。基本垂直是指近似垂直,并不要求在数学上严格垂直。若全景图像具有多个颜色通道,则对每个颜色通道的像素值单独处理。颜色通道可以是RGB(红色、绿色和蓝色通道),还可以是CMYK(青色、洋红、黄色和黑色通道)。
[0098] 全景图像是由像素组成的,各像素按行列排列,像素行就是排列成一行的像素。全景图像中自顶部起第一数量的像素行,是指当将全景图像中的像素行从顶部由1开始顺序编号时,从编号为1的像素行到编号为第一数量的像素行形成的像素行总数量为第一数量的像素行的集合。
[0099] 拼接痕迹图像是指将多个亮度不一致的图像拼接成全景图像时在拼接处产生的明显的像素值突变的角状痕迹,该痕迹由于拼接时的图像畸变而呈一定角度,一般在天空处比较明显。拼接痕迹图像如图1中的101a和101b。自顶部起第一数量的像素行包括拼接痕迹图像,是指这第一数量的像素行构成的图像区域包括拼接痕迹图像。
[0100] 在一个实施例中,参考像素值生成模块1002还用于计算全景图像中自顶部起第一数量的像素行中的像素值的平均值作为参考像素值。具体参考像素值生成模块1002可用于将自顶部起第一数量的像素行中的像素值求和后再除以这些像素值的总数来计算平均值,将该平均值作为参考像素值。
[0101] 在一个实施例中,参考像素值生成模块1002可采用以下公式(1)计算参考像素值:
[0102]
[0103]   公式(1)
[0104]
[0105] 其中,m∈[1,n]为全景图像中自顶部起第一数量的像素行中像素的标识;n为全景图像中自顶部起第一数量的像素行中像素的总数;Rm、Gm和Bm分别为像素m在红色通道、绿色通道和蓝色通道的像素值; 和 分别为红色通道、绿色通道和蓝色通道的参考像素值。
[0106] 参照图4,假设第一数量为height,全景图像的像素总列数为width,则n=height*width;m=1+(he-1)*width,he∈[1,height]表示像素m所在像素行的序号。
[0107] 在一个实施例中,参考像素值生成模块1002可用于在全景图像中自顶部起第一数量的像素行中的像素值的平均值上增加或减少预设数值作为参考像素值。一个实施例中,参考像素值生成模块1002可用于计算全景图像中自顶部起第一数量的像素行中的像素值的加权平均值作为参考像素值。计算加权平均值时的权重可以根据需要进行设置和调整,比如可统计全景图像中自顶部起第一数量的像素行中各取值的像素值的数量,按照统计的数量设置计算加权平均值时的权重。
[0108] 像素值调整模块1003,用于对于全景图像中自顶部起第二数量的像素行中的像素值,若越靠近顶部则调整为越靠近参考像素值,若越远离顶部则调整为越靠近自身调整前的像素值;第二数量大于第一数量且小于全景图像的像素行总数量。
[0109] 具体地,全景图像中自顶部起第二数量的像素行,是指当将全景图像中的像素行从顶部由1开始顺序编号时,从编号为1的像素行到编号为第二数量的像素行形成的像素行总数量为第二数量的像素行的集合。
[0110] 像素值调整模块1003用于对自顶部起第二数量的像素行中的像素值进行调整,使得调整后的像素值在以参考像素值和原始的像素值为端值的区间范围内取值。原始的像素值是指调整前的像素值。而且,当被调整的像素越靠近全景图像的顶部时,调整后的像素值越趋近甚至等于参考像素值;当被调整的像素越远离全景图像的顶部时,调整后的像素值越趋近甚至等于原始的像素值。
[0111] 在一个实施例中,像素值调整模块1003用于对于需要调整的每一个像素值,在以参考像素值和相应的原始的像素值为端值的区间范围内取值,越靠近顶部则取值越靠近参考像素值,越远离顶部则越靠近相应的原始的像素值,从而将原始的像素值调整为相应的取值,这样便可以实现对全景图像中自顶部起第二数量的像素行中的像素值进行调整。
[0112] 上述全景图像处理装置1000,利用全景图像中自顶部起第一数量的像素行中的像素值计算获得参考像素值,该参考像素值可以体现出拼接痕迹图像所在区域的像素值特征,进而根据该参考像素值来调整自顶部起第二数量的像素行中的像素值。全景图像中经过调整的各个像素值,在垂直方向上越靠近顶部则越靠近参考像素值,若越远离顶部则越靠近自身调整前的像素值;在水平方向上体现为像素值的差异减弱,且越接近顶部差异越小。这样经过调整后,拼接痕迹图像的明暗突变变化为平缓过渡,克服了全景图像存在的拼接痕迹问题。而且由于第二数量大于第一数量且小于全景图像的像素行总数量,这样调整后原拼接痕迹图像所在区域的像素值平稳过渡到拼接痕迹图像以下的正常图像区域,可避免因像素值调整产生明显分界线而造成图像失真。
[0113] 如图11所示,在一个实施例中,全景图像获取模块1001包括:获取模块1001a、过曝处理模块1001b和拼接模块1001c。
[0114] 获取模块1001a,用于获取分别从沿水平面区分的不同方向拍摄的多个图像。
[0115] 具体地,可参照图6,D1、D2和D3分别为沿水平面的三个方向,且分别指向不同的方向,分别从D1、D2和D3这三个方向进行拍摄可获得多个用于拼接获得全景图像的三个图像。多个图像中的多个至少为2个,拍摄获得的图像的数量与拍摄的方向是一一对应的。
[0116] 在一个实施例中,获取模块1001a可用于通过沿水平面区分的不同方向设置的摄像头拍摄获得从沿水平面区分的不同方向拍摄的多个图像。在另一个实施例中,获取模块1001a可用于通过将摄像头水平转动的同时每隔预设时间间隔拍摄的方式获得从沿水平面区分的不同方向拍摄的多个图像。
[0117] 过曝处理模块1001b,用于将多个图像中过曝的图像的亮度降低到与其余图像匹配。
[0118] 具体地,过曝就是指由于环境光过亮、光圈过大和/或快门过慢等原因造成的图像中亮度过高、颜色泛白的情况。将过曝的图像的各个颜色通道的亮度降低,从而与多个图像中其余的图像亮度匹配。这样将多个图像的亮度调整到基本一致,保证拼接获得的全景图像整体曝光的准确。
[0119] 其中降低亮度具体可通过整体降低过曝的图像的像素值来实现,若存在多个颜色通道则分别将各个颜色通道的像素值整体降低。整体降低像素值具体可线性地降低像素值,即每个像素值降低的幅度相同。整体降低像素值还可以曲线性地降低像素值,即各个像素值降低的幅度呈曲线,这样可以尽量保留一些重要的细节信息。若降低后的像素值会超过像素值的取值范围的边界值则置为相应的边界值。
[0120] 拼接模块1001c,用于将多个图像按照图像内容进行拼接,获得全景图像。
[0121] 具体地,多个图像是有顺序的,这种顺序体现了多个图像在图像内容上的连续,拼接图像时按照这种顺序将多个图像进行拼接,以保证拼接获得的全景图像在内容上的连续性。拼接时相邻的两个图像之间在内容上最好有重叠,重叠的内容便于在将相邻图像拼接时确定拼接的边界以及将图像进行形变,从而使得拼接的全景图像更加流畅、准确。
[0122] 本实施例中,通过降低过曝的图像像素值来降低亮度,使得多个图像的亮度基本保持一致,这样可以保证拼接获得的全景图像整体上曝光准确。而且拼接图像产生的拼接痕迹图像可以通过上述步骤302至步骤306克服,从而使得全景图像的成像效果更加准确,应用在街景地图中全景图像能够更加准确地反映真实的地理环境,为用户导航提供更加准确的信息。
[0123] 如图12所示,在一个实施例中,全景图像处理装置1000还包括:第一比例获取模块1004、第一数量计算模块1005和第二数量计算模块1006。
[0124] 第一比例获取模块1004,用于获取全景图像样本中统计的拼接痕迹图像所占从顶部开始的像素行的数量与相应的全景图像样本中像素行总数量的第一比例。
[0125] 具体地,可预先收集若干全景图像样本,确定这些全景图像样本中拼接痕迹图像的位置,从而确定拼接痕迹图像所占用的像素行的数量,这些像素行的数量是从相应的全景图像样本的顶部开始算的。然后将确定的拼接痕迹图像所占用的像素行的数量除以相应的全景图像样本中的像素行总数量获得候选比例,取这些候选比例的平均值、最大值或者出现次数最多的候选比例作为第一比例。第一比例可取4%至8%,优选可取5%.[0126] 第一数量计算模块1005,用于根据第一比例和获取的全景图像中的像素行总数量计算第一数量。
[0127] 具体地,第一数量计算模块1005用于获得所获取的全景图像相应的像素行总数量,从而计算所获得的像素行总数量乘以第一比例的乘积,获得第一数量。
[0128] 第二数量计算模块1006,用于根据预设的大于第一比例的第二比例和获取的全景图像中的像素行总数量计算第二数量。
[0129] 具体地,第二数量计算模块1006用于预先设置大于第一比例的第二比例,计算获取的全景图像中的像素行总数量乘以第二比例的乘积,获得第二数量。其中第二比例可以取8%至15%,优选可取10%.
[0130] 本实施例中,通过预先设置的第一比例和第二比例来相应地计算第一数量和第二数量,可以适用于对各种高度的全景图像进行处理,适应性强。
[0131] 如图13所示,在一个实施例中,像素值调整模块1003包括:待替换像素值计算模块1003a和像素值替换模块1003b。
[0132] 待替换像素值计算模块1003a,用于计算全景图像中自顶部起第二数量的像素行中的各个像素值分别与参考像素值的加权平均值,且计算时参考像素值的权重与各个像素值距离顶部的像素行数量负相关。
[0133] 具体地,待替换像素值计算模块1003a可用于利用以下公式(2)来计算加权平均值作为待替换像素值:
[0134]
[0135]   公式(2)
[0136]
[0137] 其中,λ∈[0,1]与distx负相关,x∈[1,h*width]为全景图像中自顶部起第二数量的像素行中像素的标识;distx∈[0,h]为像素x距离全景图像顶部的像素行数量;h为第二数量,width为全景图像的像素列总数量; 和 分别为红色通道、绿色通道和蓝色通道的参考像素值;Rx、Gx和Bx分别为像素x在红色通道、绿色通道和蓝色通道的原始的像素值;R'x、G'x和B'x分别为像素x在红色通道、绿色通道和蓝色通道的待替换像素值;λ为红色通道、绿色通道和蓝色通道的参考像素值的权重。
[0138] λ与distx负相关,是指λ随着distx的增大而减小,随着distx的减小而增大。其中λ与distx可以是线性负相关关系,比如λ=1-distx/h。λ与distx也可以是非线性负相关关系,比如 还可以取其它以distx为自变量单调递减且值域范围为[0,1]的其它函数来表示λ与distx之间负相关的关系,这里不再赘述。
[0139] 在一个实施例中,待替换像素值计算模块1003a可用于根据以下公式(3)计算全景图像中自顶部起第二数量的像素行中的各个像素值的待替换像素值:
[0140]
[0141]   公式(3)
[0142]
[0143] 其中,x∈[1,h*width]为全景图像中自顶部起第二数量的像素行中像素的标识,和 分别为红色通道、绿色通道和蓝色通道的参考像素值,h为第二数量,width为全景图像的像素列总数量;distx为像素x距离全景图像顶部的像素行数量;Rx、Gx和Bx分别为像素x在红色通道、绿色通道和蓝色通道的原始的像素值;R'x、G'x和B'x分别为像素x在红色通道、绿色通道和蓝色通道的待替换像素值。
[0144] 上述公式(3)可以变形为公式(4):
[0145]
[0146]    公式(4)
[0147]
[0148] 其中1-distx/h为红色通道、绿色通道和蓝色通道的参考像素值的权重λ,因此利用上述公式(3)和(4)计算出的待替换像素值,是全景图像中自顶部起第二数量的像素行中的各个像素值分别与参考像素值的加权平均值。
[0149] 像素值替换模块1003b,用于将自顶部起第二数量的像素行中的各个像素值分别替换为计算出的相应的加权平均值。
[0150] 具体地,像素值替换模块1003b可用于遍历自顶部起第二数量的像素行中的各个像素,将自顶部起第二数量的像素行中各颜色通道的像素值Rx、Gx和Bx,替换为相应的待替换像素值R'x、G'x和B'x,从而完成像素值的调整。具体在遍历时可以按照x从1到h*width的顺序即逐行遍历,也可以逐列遍历,还可以按照其它可选顺序遍历x的取值范围内的取值。
[0151] 本实施例中,计算全景图像中自顶部起第二数量的像素行中的各个像素值分别与参考像素值的加权平均值作为待替换像素值替换掉原始的像素值,并且在计算加权平均值时参考像素值的权重与各个像素值距离顶部的像素行数量呈线性负相关关系。这样计算简单,对电子设备硬件要求低,而且处理后像素值过渡平缓,图像不失真,处理结果非常理想。
[0152] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
[0153] 以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0154] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。