具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图3,图3是本发明实施例一全景图的天空背景填补方法流程图,如图3所示,该方法主要包括以下步骤:
步骤301、对平面直角坐标下的第一全景图的高度进行向天空方向上的尺寸扩展,得到平面直角坐标下的第二全景图;
步骤302、将第二全景图转换为对应的极坐标下的第三全景图;
步骤303、选择一天空背景图,用选择的天空背景图填补第三全景图中的天空背景区域;
步骤304、将填补了天空背景图的第三全景图转换为对应的平面直角坐标系下的第四全景图。
本步骤304是将极坐标系下的全景图转换为平面直角坐标系下的全景图,上述步骤302将平面直角坐标系下的全景图转换为极坐标系下的全景图,两个转换过程相反。
根据图3提供的方法可以看出,本实施例中,通过将平面直角坐标系下的第一全景图通过尺寸调整得到第二全景图后,将第二全景图转换为极坐标系下的第三全景图,然后再对极坐标系下的第三全景图进行天空背景的填补,最后再将填补了天空背景的第三全景图转换成平面直角坐标系下的第四全景图,这种方法利用了极坐标系下的全景图可以凸显天空背景具体缺失情况的这一特点实施天空背景填补操作,可以有效解决全景图的天空背景缺失问题。
参见图4,图4是本发明实施例二全景图的天空背景填补方法流程图,如图4所示,该方法主要包括以下步骤:
步骤401、在第一全景图的宽高比大于预设宽高比例时,向天空方向上扩展第一全景图的高度至第一全景图的宽高比为预设宽高比例,将经尺寸扩展后的第一全景图确定为平面直角坐标系下的第二全景图。
以上步骤401是图3所示步骤301的一种具体细化。
本实施例中,所述预设宽高比例可根据实际需求设置,例如可设置为2:1。在现有实现中,全景图的宽高比均大于2:1。
一般情况下,天空背景部分一般位于全景图的上方部分,这种情况下向天空方向上扩展实际上是向上扩展。
本实施例中,向天空方向上扩展第一全景图的高度至第一全景图的宽高比为预设宽高比例,将经尺寸扩展后的第一全景图确定为平面直角坐标系下的第二全景图,具体包括:
S11、根据预设宽高比例和第一全景图的宽度N确定高度M,构建一M*N的像素矩阵。
S12、按照像素矩阵的左下角与全景图的左下角对齐的原则将全景图中每一像素点的像素值赋值给像素矩阵中的对应元素,并将预设像素值赋值给像素矩阵中剩余未被赋值的每一元素;其中,第一全景图的左下角是指第一全景图中靠近地面端的最左侧角点。
S13、将由赋值后的像素矩阵确定的全景图确定为平面直角坐标下的第二全景图。
例如,假设全景图的宽度是400像素,高度是180像素,则如果预设宽高比为2:1,则可确定扩展后的全景图的高度是200(即M=200)时才可满足预设宽高比2:1,进而可建立以200*400的像素矩阵。之后可以按照像素矩阵的左下角与全景图的左下角对齐的原则进行像素赋值,即将全景图中各像素点的像素值赋值为像素矩阵的第20到399行中的对应元素。另外,对像素矩阵的第0到19行中各元素则进行统一赋值(即统一赋值为某一预设的像素值)。经赋值后的像素矩阵对应的全景图即为第二全景图,例如图5示出了对图1所示的第一全景图进行尺寸扩展后得到的第二全景图,图5上方部分的灰色区域即为扩展区域。
步骤402、将第二全景图转换为对应的极坐标下的第三全景图;
步骤403、选择一天空背景图,用选择的天空背景图填补第三全景图中的天空背景区域;
步骤404、将填补了天空背景图的第三全景图转换为平面直角坐标系下的第四全景图。
根据图4提供的方法可以看出,本实施例中,利用像素矩阵来实现对第一全景图的尺寸扩展得到第二全景图,实现方法简单,之后将第二全景图转换为极坐标系下的第三全景图后再进行天空背景的填补,这种方法利用了极坐标系下的全景图可以凸显天空背景具体缺失情况这一特点实施天空背景填补,可以有效解决全景图的天空背景缺失问题。
参见图6,图6是本发明实施例三全景图的天空背景填补方法流程图,如图6所示,该方法主要包括以下步骤:
步骤601、对平面直角坐标下的第一全景图的高度进行向天空方向上的尺寸扩展,得到平面直角坐标下的第二全景图;
步骤6021、将第二全景图的高度M按照预设比例放大为R,将R作为第三全景图的半径。
本实施例中,将将第二全景图的高度M按照预设比例放大为R,将R作为第三全景图的半径,其目的是为了让第二全景图转换为第三全景图时,第三全景图的畸变较小。
步骤6022、确定第三全景图的第一平面直角坐标系中每一坐标点对应的第二全景图的第二平面直角坐标系中的坐标点。
本实施例中,第三全景图的第一平面直角坐标系是指:以第三全景图的左上角的角点为原点的平面直角坐标系;第二全景图的第二平面直角坐标系是指:以第二全景图的左上角的角点为原点的平面直角坐标系。
步骤6023、将第三全景图的第一平面直角坐标系中的每一坐标点的像素值设置为该坐标点对应的第二全景图的第二平面直角坐标系中的坐标点的像素值。
上述步骤6021至步骤6023是图3所示步骤302的具体细化。
步骤603、选择一天空背景图,用选择的天空背景图填补第三全景图中的天空背景区域;
本实施例中,可以从预先配置的天空背景素材库中选择一天空背景图。该天空背景图可以是平面直角坐标系的。
步骤604、将填补了天空背景图的第三全景图转换为平面直角坐标系下的第四全景图。
根据图6提供的方法可以看出,本实施例中,在将第二全景图转换为极坐标系下的第三全景图时,是通过将第三全景图的第一平面直角坐标系中的坐标点与第二全景图的第二平面直角坐标系中的坐标点对应起来并赋值,从而将第二全景图转换为极坐标系下的第三全景图之后进行天空背景的填补,本实施例利用了极坐标系下的全景图可以凸显天空背景具体缺失情况的这一特点实施天空背景填补操作,可以有效解决全景图的天空背景缺失问题。
参见图7,图7是本发明实施例四全景图的天空背景填补方法流程图,如图7所示,该方法主要包括以下步骤:
步骤701、对平面直角坐标下的第一全景图的高度进行向天空方向上的尺寸扩展,得到平面直角坐标下的第二全景图;
步骤7021、将第二全景图的高度M按照预设比例放大为R,将R作为第三全景图的半径。
步骤7022、根据第三全景图的第一平面直角坐标系与第三全景图的极坐标系之间的转换关系、以及第三全景图的极坐标系与第二全景图的第二平面直角坐标系之间的转换关系,确定第三全景图的第一平面直角坐标系中的每一坐标点对应的第二全景图的第二平面直角坐标系中的坐标点。
本实施例中,第三全景图的第一平面直角坐标系是指:以第三全景图的左上角的角点为原点的平面直角坐标系;第二全景图的第二平面直角坐标系是指:以第二全景图的左上角的角点为原点的平面直角坐标系。
如图8所示,图8的左侧图a)中的uov坐标系是第三全景图的第一平面直角坐标系,第一平面直角坐标系的原点是第三全景图的左上角的角点。图8的右侧图b)中的uov坐标系是第二全景图的第二平面直角坐标系,第二平面直角坐标系下的原点是第二全景图的左上角的角点。另外,图8的左侧图a)中的XOY坐标系,是以第三全景图的极点为原点的一个平面直角坐标系。
从图8可以看出,对于第三全景图中的任一像素点P,假设像素点P在第三全景图的第一平面直角坐标系中的坐标点表示为P(i,j),像素点P在以第三全景图的极点为原点的平面直角坐标系(即上述XOY坐标系)中的坐标点表示为P(x,y),则两者具有如下转换关系1:x=i-R,y=R-j。
另外,假设上述像素点P在第三全景图的极坐标系中的极坐标点表示为(ρ,θ),则从图8可以看出,像素点P在以第三全景图的极点为原点的平面直角坐标系(即上述XOY坐标系)中的坐标点P(x,y)与第三全景图的极坐标系中的极坐标点(ρ,θ)之间存在如下转化关系2:ρ=sqrt(x2+y2),θ=arctan(y/x)。
因此可知,可以将第三全景图的第一平面直角坐标系中的坐标点P(i,j)转换为第三全景图的极坐标系中的极坐标点(ρ,θ),转换过程中利用上述XOY坐标系实现转换,具体是采用上述转换关系1和转换关系2实现。
本实施例中,第三全景图的极坐标系下的极坐标点(ρ,θ)都可以在第二全景图的第二平面直角坐标系中的一个坐标点P(m,n),两者具有如下转换关系3:m=ρ/delta_r,n=θ/delta_t;其中,delta_r=R/M,R为第三全景图的半径,M为第二全景图的高度,delta_t=2π/N,N为第二全景图的宽度。
根据以上分析可知,本实施例中,根据第三全景图的第一平面直角坐标系与第三全景图的极坐标系之间的转换关系、以及第三全景图的极坐标系与第二全景图的第二平面直角坐标系之间的转换关系,确定第三全景图的第一平面直角坐标系中的每一坐标点对应的第二全景图的第二平面直角坐标系中的坐标点,可具体包括:
S21、确定第三全景图的第一平面直角坐标系中的坐标点P(i,j)对应的在以第三全景图的极点为原点的平面直角坐标系中的坐标点P(x,y);其中,x=i-R,y=R-j;
S22、确定以第三全景图的极点为原点的平面直角坐标系中的坐标点P(x,y)对应的在第三全景图中的极坐标点(ρ,θ),其中,ρ=sqrt(x2+y2),θ=arctan(y/x);
S23、根据第三全景图的极坐标系与第二全景图的第二平面直角坐标系之间的转换关系,确定第三全景图的第一平面直角坐标系中的坐标点P(i,j)对应的第二全景图的第二平面直角坐标系中的坐标点P(m,n),其中,m=ρ/delta_r,n=θ/delta_t;
在上述步骤S21至步骤S23中,delta_r=R/M,R为第三全景图的半径,M为第二全景图的高度,delta_t=2π/N,N为第二全景图的宽度。
以上步骤7022是图6所示步骤6022的具体细化。
步骤7023、将第三全景图的第一平面直角坐标系中的每一坐标点的像素值设置为该坐标点对应的第二全景图的第二平面直角坐标系中的坐标点的像素值。
上述步骤7021至步骤7023是图3所示步骤302的具体细化。
步骤703、选择一天空背景图,用选择的天空背景图填补第三全景图中的天空背景区域;
步骤704、将填补了天空背景图的第三全景图转换为对应的平面直角坐标系下的第四全景图。
根据图7提供的方法可以看出,本实施例中,在将第二全景图转换为极坐标系下的第三全景图时,是根据第三全景图的第一平面直角坐标系与第三全景图的极坐标系之间的转换关系、以及第三全景图的极坐标系与第二全景图的第二平面直角坐标系之间的转换关系,将第三全景图的第一平面直角坐标系中的每一坐标点对应的第二全景图的第二平面直角坐标系中的坐标点对应起来并赋值,之后将第三全景图进行天空背景的填补后转换成平面直角坐标系下的第四全景图,本实施例利用了极坐标系下的全景图可以凸显的天空背景具体缺失情况的这一特点实施天空背景填补操作,可以有效解决全景图的天空背景缺失问题。
参见图9,图9是本发明实施例五全景图的天空背景填补方法流程图,如图9所示,该方法主要包括以下步骤:
步骤901、对平面直角坐标下的第一全景图的高度进行向天空方向上的尺寸扩展,得到平面直角坐标下的第二全景图;
步骤902、将第二全景图转换为对应的极坐标下的第三全景图;
步骤9031、选择一天空背景图,根据第三全景图中的天空背景边缘轮廓,对选择的天空背景图进行掩模处理;
第三全景图中,缺失的天空背景呈现为一个圆形区域,具体如图10中的圆形区域所示,可根据此圆形区域的轮廓,对选择的天空背景图进行掩模处理,掩模处理后的天空背景图与此圆形区域大小相同。
步骤9032、将经掩模处理后的天空背景图与第三全景图的天空背景边缘进行拼接。
本实施例中,将经掩模处理后的天空背景图与第三全景图的天空背景边缘进行拼接,以实现对第三全景图的天空背景区域填补。
以上步骤9031至9032是图3所示步骤303的具体细化。
步骤904、将填补了天空背景图的第三全景图转换为对应的平面直角坐标系下的第四全景图。
图11示出了将填补了天空背景图的第三全景图转换后得到的平面直角坐标系下的第四全景图。
根据图9提供的方法可以看出,本实施例中,通过将第二全景图转换为极坐标系下的第三全景图后再进行天空背景的填补,在进行天空背景填补时,是根据第三全景图中凸显出的天空背景轮廓对天空背景图进行掩模处理,截取出与天空背景轮廓相匹配的天空背景图,然后再拼接到第三全景图中的缺失的天空背景区域。此方法利用了全景极坐标图可以凸显出的天空背景缺失情况的这一特点实施天空背景填补操作,能够有效解决全景图的天空背景缺失问题。
参见图12,图12是本发明实施例六全景图的天空背景填补方法流程图,如图12所示,该方法主要包括以下步骤:
步骤1201、对平面直角坐标下的第一全景图的高度进行向天空方向上的尺寸扩展,得到平面直角坐标下的第二全景图;
步骤1202、将第二全景图转换为对应的极坐标下的第三全景图;
步骤12031、选择一天空背景图,根据第三全景图中的天空背景边缘轮廓,对选择的天空背景图进行掩模处理;
步骤12032、将经掩模处理后的天空背景图与第三全景图的天空背景边缘进行拼接。
步骤12033、对经掩模处理后的天空背景图与第三全景图之间的拼接位置进行线性融合处理。
本实施例中,将经掩模处理后的天空背景图与第三全景图的天空背景边缘进行拼接后,再对拼接位置进行线性融合处理,从而实现第三全景图的天空背景填补。
本实施例中,对经掩模处理后的天空背景图与第三全景图之间的拼接位置进行线性融合处理,具体包括:
S31、确定第三全景图的极点与所述拼接位置的距离r;
S32、确定由第三全景图中与第三全景图的极点的距离为r+t个像素的像素点的像素值构成的向量S1,以及由第三全景图中与第三全景图的极点的距离为r-t个像素的像素点的像素值组成的向量S2;
S33、根据向量S1和向量S2,确定第三全景图中与第三全景图的极点的距离为r+t个像素的像素点到第三全景图中与第三全景图的极点的距离为r-t个像素的像素点的平均像素步进向量Pstep=(S1-S2)/(2m-2);其中,m为大于1的自然数;
S34、基于所述平均像素进步向量Pstep,对从第三全景图中与第三全景图的极点的距离为r+t个像素的像素点到第三全景图中与第三全景图的极点的距离为r-t个像素的像素点之间的像素点进行像素值均匀化过度处理。
其中,上述步骤S34中,基于所述平均像素进步向量Pstep,对从第三全景图中与第三全景图的极点的距离为r+t个像素的像素点到第三全景图中与第三全景图的极点的距离为r-t个像素的像素点之间的像素点进行像素值均匀化过度处理,具体包括:
S34_1、将第三全景图中与第三全景图的极点的距离为r+t个像素的像素点、与第三全景图的极点的距离为r+t-1个像素的像素点、与第三全景图的极点的距离为r+t-2个像素的像素点、……、与第三全景图的极点的距离为r+1个像素的像素点、与第三全景图的极点的距离为r个像素的像素点,依次按照向量S1、S1-Pstep、S1-Pstep*2、……、S1-Pstep*(t-1)、S1-Pstep*t中的像素值进行赋值;
S34_2、将第三全景图中与第三全景图的极点的距离为r-t个像素的像素点、与第三全景图的极点的距离为r-t+1个像素的像素点、与第三全景图的极点的距离为r-t+2个像素的像素点、……、与第三全景图的极点的距离为r-1个像素的像素点,依次按照向量S2、S2+Pstep、S2+Pstep*2、……、S2+Pstep*(t-1)进行赋值。
以上步骤12031至12032是图3所示步骤303的具体细化。
步骤1204、将填补了天空背景图的第三全景图转换为对应的平面直角坐标系下的第四全景图。
根据图12提供的方法可以看出,通过将第二全景图转换为极坐标系下的第三全景图后再进行天空背景的填补,具体是截取出与天空背景轮廓相匹配的天空背景图,然后再拼接到第三全景图中的缺失的天空背景区域并对拼接位置进行线性融合处理,使得拼接位置处的像素值平滑变化。此方法利用了全景极坐标图可以凸显出的天空背景缺失情况的这一特点实施天空背景填补操作,能够有效解决全景图的天空背景缺失问题。
以上对本发明实施例提供的全景图的天空背景填补方法进行了详细说明,本发明还提供了一种全景图的天空背景填补装置,以下结合图12进行详细说明。
参见图13,图13是本发明实施例提供的全景图的天空背景填补装置的结构示意图,如图13所示,该装置包括:尺寸扩展单元1301、第一转换单元1302、填补单元1303、第二转换单元1304,其中,
尺寸扩展单元1301,用于对平面直角坐标系下的第一全景图的高度进行向天空方向上的尺寸扩展,得到平面直接坐标系下的第二全景图;
第一转换单元1302,用于将第二全景图转换为对应的极坐标系下的第三全景图;
填补单元1303,用于选择一天空背景图,用选择的天空背景图填补第三全景图中的天空背景区域;
第二转换单元1304,用于将填补了天空背景图的第三全景图转换为对应的平面直角坐标系下的第四全景图。
图13所示装置中,
尺寸扩展单元1301,对平面直角坐标下的第一全景图的高度进行向天空方向上的尺寸扩展,得到平面直角坐标下的第二全景图,包括:
在第一全景图的宽高比大于预设宽高比例时,向天空方向上扩展第一全景图的高度至第一全景图的宽高比为预设宽高比例,将经尺寸扩展后的第一全景图确定为平面直角坐标系下的第二全景图。
图13所示装置中,
尺寸扩展单元1301,向天空方向上扩展第一全景图的高度至第一全景图的宽高比为预设宽高比例,将经尺寸扩展后的第一全景图确定为平面直角坐标系下的第二全景图,包括:
根据预设宽高比例和第一全景图的宽度N确定高度M,构建一M*N的像素矩阵;
按照像素矩阵的左下角与第一全景图的左下角对齐的原则将第一全景图中每一像素点的像素值赋值给像素矩阵中的对应元素,并将预设像素值赋值给像素矩阵中剩余未被赋值的每一元素;其中,第一全景图的左下角是指第一全景图中靠近地面端的最左侧角点;
将由赋值后的像素矩阵确定的全景图确定为平面直角坐标下的第二全景图。
图13所示装置中,
第一转换单元1302,将第二全景图转换为对应的极坐标系下的第三全景图,包括:
将第二全景图的高度M按照预设比例放大为R,将R作为第三全景图的半径;
确定第三全景图的第一平面直角坐标系中每一坐标点对应的第二全景图的第二平面直角坐标系中的坐标点;
将第三全景图的第一平面直角坐标系中的每一坐标点的像素值设置为该坐标点对应的第二全景图的第二平面直角坐标系中的坐标点的像素值;
其中,第三全景图的第一平面直角坐标系是指:以第三全景图的左上角的角点为原点的平面直角坐标系;第二全景图的第二平面直角坐标系是指:以第二全景图的左上角的角点为原点的平面直角坐标系。
图13所示装置中,
第一转换单元1302,确定第三全景图的第一平面直角坐标系中每一坐标点对应的第二全景图的第二平面直角坐标系中的坐标点,包括:
根据第三全景图的第一平面直角坐标系与第三全景图的极坐标系之间的转换关系、以及第三全景图的极坐标系与第二全景图的第二平面直角坐标系之间的转换关系,确定第三全景图的第一平面直角坐标系中的每一坐标点对应的第二全景图的第二平面直角坐标系中的坐标点。
图13所示装置中,
第一转换单元1302,根据第三全景图的第一平面直角坐标系与第三全景图的极坐标系之间的转换关系、以及第三全景图的极坐标系与第二全景图的第二平面直角坐标系之间的转换关系,确定第三全景图的第一平面直角坐标系中的每一坐标点对应的第二全景图的第二平面直角坐标系中的坐标点,包括:
确定第三全景图的第一平面直角坐标系中的坐标点P(i,j)对应的在以第三全景图的极点为原点的平面直角坐标系中的坐标点P(x,y);其中,x=i-R,y=R-j;
确定以第三全景图的极点为原点的平面直角坐标系中的坐标点P(x,y)对应的在第三全景图中的极坐标点(ρ,θ),其中,ρ=sqrt(x2+y2),θ=arctan(y/x);
根据第三全景图的极坐标系与第二全景图的第二平面直角坐标系之间的转换关系,确定第三全景图的第一平面直角坐标系中的坐标点P(i,j)对应的第二全景图的第二平面直角坐标系中的坐标点P(m,n),其中,m=ρ/delta_r,n=θ/delta_t;
其中,delta_r=R/M,R为第三全景图的半径,M为第二全景图的高度,delta_t=2π/N,N为第二全景图的宽度。
图13所示装置中,
填补单元1303,用选择的天空背景图填补第三全景图中的天空背景区域,包括:
根据第三全景图中的天空背景边缘轮廓,对选择的天空背景图进行掩模处理;
将经掩模处理后的天空背景图与第三全景图的天空背景边缘进行拼接。
图13所示装置中,
填补单元1303,将经掩模处理后的天空背景图与第三全景图的天空背景边缘进行拼接之后,还包括:
对经掩模处理后的天空背景图与第三全景图之间的拼接位置进行线性融合处理,
所述线性融合处理包括:
确定第三全景图的极点与所述拼接位置的距离r;
确定由第三全景图中与第三全景图的极点的距离为r+t个像素的像素点的像素值构成的向量S1,以及由第三全景图中与第三全景图的极点的距离为r-t个像素的像素点的像素值组成的向量S2;
根据向量S1和向量S2,确定第三全景图中与第三全景图的极点的距离为r+t个像素的像素点到第三全景图中与第三全景图的极点的距离为r-t个像素的像素点的平均像素步进向量Pstep=(S1-S2)/(2m-2);其中,m为大于1的自然数;
基于所述平均像素进步向量Pstep,对从第三全景图中与第三全景图的极点的距离为r+t个像素的像素点到第三全景图中与第三全景图的极点的距离为r-t个像素的像素点之间的像素点进行像素值均匀化过度处理。
图13所示装置中,
填补单元1303,基于所述平均像素进步向量Pstep,对从第三全景图中与第三全景图的极点的距离为r+t个像素的像素点到第三全景图中与第三全景图的极点的距离为r-t个像素的像素点进行像素值均匀化过度处理,包括:
将第三全景图中与第三全景图的极点的距离为r+t个像素的像素点、与第三全景图的极点的距离为r+t-1个像素的像素点、与第三全景图的极点的距离为r+t-2个像素的像素点、……、与第三全景图的极点的距离为r+1个像素的像素点、与第三全景图的极点的距离为r个像素的像素点,依次按照向量S1、S1-Pstep、S1-Pstep*2、……、S1-Pstep*(t-1)、S1-Pstep*t中的像素值进行赋值;
将第三全景图中与第三全景图的极点的距离为r-t个像素的像素点、与第三全景图的极点的距离为r-t+1个像素的像素点、与第三全景图的极点的距离为r-t+2个像素的像素点、……、与第三全景图的极点的距离为r-1个像素的像素点,依次按照向量S2、S2+Pstep、S2+Pstep*2、……、S2+Pstep*(t-1)进行赋值。
本发明实施例还提供了一种电子设备,如图14所示,该电子设备包括:处理器1401和存储器1402;
所述存储器1402,用于存储有可被所述处理器1401执行的一个或多个计算机程序;所述处理器1401执行所述一个或多个计算机程序时实现如上述图3、4、6、7、9、12所示的全景图的天空背景填补方法中的步骤。
本发明实施例还提供了一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行如上述图3、4、6、7、9、12所示的全景图的天空背景填补方法中的步骤。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。