一种生成深度图的方法和装置
技术领域
本发明涉及图像处理技术领域,具体而言,涉及一种生成深度图的方法和装置。
背景技术
目前,对于单幅图像提取深度图,对原始图像分割为16*16大小的多个图像块,对每个图像块进行小波变换,得到256种系数值,再根据非零小波系数的个数来估计相对深度。这种方法得到的深度图则是按图像块为单位来赋深度值,仍然是使用图像中一部分像素点估计得到全局的深度信息,同样未充分利用图像中各个像素点的信息。如果逐个像素点提取深度信息,数据处理量会比较大,特别是应用在实时二维视频转三维视频时,由于数据处理量大,会影响实时播放效果,出现卡顿现象。
发明内容
有鉴于此,本发明的目的在于提供一种生成深度图的方法和装置,用于解决现有技术无法快速提取深度图的问题。
第一方面,本发明提供一种生成深度图的方法,包括:
将接收到的原始图像转换为原始灰度图;
根据预设的下采样倍数,对所述原始灰度图进行下采样,得到下采样灰度图;
按照设定像素范围,将所述下采样灰度图划分为多个图像块;
根据像素点的灰度值,以及预设的连通方向,在多个图像块中,确定至少一个连通的图像块,并计算相邻连通的图像块之间的权重值,所述权重值为相邻连通图像块的平均灰度值的差值;
基于确定的所述权重值,在所述至少一个连通的图像块中,确定至少一个连通区域,所述连通区域包括至少一个图像块;
针对确定的每个连通区域,根据该连通区域中像素点数目和区域范围,确定该连通区域的深度值;
基于确定的各个连通区域的深度值和原始灰度图,得到预处理深度图;
根据所述原始灰度图,对所述预处理深度图进行滤波,得到原始图像的深度图。
可选地,在所述对所述原始灰度图进行下采样,得到下采样灰度图之前,还包括:
对所述原始灰度图进行低通滤波。
可选地,所述对所述原始灰度图进行下采样,得到下采样灰度图,包括:
根据所述预设的下采样倍数,确定每一个下采样后的像素点的位置;
采用双线性差值算法,对所述原始灰度图进行上采样处理,获取每一个上采样后像素点的像素值;
根据所述每一个下采样后的像素点的像素值和位置,生成下采样灰度图。
可选地,所述基于确定的所述权重值,在所述至少一个连通的图像块中,确定至少一个连通区域,包括:
根据确定的各个权重值,在所述至少一个连通的图像块中,将符合预设条件的至少一个图像块确定为一个连通区域;
其中,针对一个连通区域包括一个图像块的情况,所述预设条件包括:该一个图像与其相邻前一个图像块以及相邻后一个图像块分别对应的权重均大于设定权重;
针对一个连通区域包括至少两个图像块的情况,所述预设条件包括:所述至少两个图像块中,每相邻图像块之间的权重均不大于设定权重,且所述至少两个图像块中按照连通方向位于最前位置的图像块与其相邻前一个图像块之间的权重大于设定权重,且所述至少两个图像块中按照连通方向位于最后位置的图像块与其相邻后一个图像块之间的权重大于设定权重。
可选地,在所述根据所述第一灰度图,对所述预处理深度图进行滤波,得到原始图像的深度图之前,还包括:
对所述预处理深度图进行上采样;
对上采样后的预处理深度图进行平滑处理。
可选地,所述对所述预处理深度图进行上采样,包括:
按照设定的上采样倍数,确定每一个上采样后的像素点的位置;
采用双线性差值算法,对所述预处理深度图进行上采样处理,获取每一个上采样后像素点的像素值;
根据所述每一个上采样后的像素点的像素值和位置,得到上采样后的预处理深度图。
第二方面,本发明实施例提供一种生成深度图的装置,包括:
图像转换单元,用于将接收到的原始图像转换为原始灰度图;
下采样单元,用于根据预设的下采样倍数,对所述原始灰度图进行下采样,得到下采样灰度图;
图像划分单元,用于按照设定像素范围,将所述下采样灰度图划分为多个图像块;
图像连通单元,用于根据像素点的灰度值,以及预设的连通方向,在多个图像块中,确定至少一个连通的图像块,并计算相邻连通的图像块之间的权重值,所述权重值为相邻连通图像块的平均灰度值的差值;
第一确定单元,用于基于确定的所述权重值,在所述至少一个连通的图像块中,确定至少一个连通区域,所述连通区域包括至少一个图像块;
第二确定单元,用于针对确定的每个连通区域,根据该连通区域中像素点数目和区域范围,确定该连通区域的深度值;
第一处理单元,用于基于确定的各个连通区域的深度值和原始灰度图,得到预处理深度图;
第二处理单元,用于根据所述原始灰度图,对所述预处理深度图进行滤波,得到原始图像的深度图。
可选地,还包括:低通滤波单元,所述低通滤波单元,用于对所述原始灰度图进行低通滤波。
可选地,所述下采样单元具体用于:
根据所述预设的下采样倍数,确定每一个下采样后的像素点的位置;
采用双线性差值算法,对所述原始灰度图进行上采样处理,获取每一个上采样后像素点的像素值;
根据所述每一个下采样后的像素点的像素值和位置,生成下采样灰度图。
可选地,所述第一确定单元具体用于:
根据确定的各个权重值,在所述至少一个连通的图像块中,将符合预设条件的至少一个图像块确定为一个连通区域;
其中,针对一个连通区域包括一个图像块的情况,所述预设条件包括:该一个图像与其相邻前一个图像块以及相邻后一个图像块分别对应的权重均大于设定权重;
针对一个连通区域包括至少两个图像块的情况,所述预设条件包括:所述至少两个图像块中,每相邻图像块之间的权重均不大于设定权重,且所述至少两个图像块中按照连通方向位于最前位置的图像块与其相邻前一个图像块之间的权重大于设定权重,且所述至少两个图像块中按照连通方向位于最后位置的图像块与其相邻后一个图像块之间的权重大于设定权重。
根据本发明的技术方案,在将原始灰度图划分为多个像素块之前,对原始灰度图进行下采样,可以有效降低数据的处理量,提高数据处理效率;对预处理深度图进行滤波处理可使得图像更加平滑,并有效降低快效应的影响,得到的深度图更加精准。。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明一实施例提供的一种生成深度图的方法的第一种流程示意图;
图2为本发明一实施例提供的一种生成深度图的方法的第二种流程示意图;
图3为本发明实施例提供的一种连通图像块的示意图;
图4为本发明实施例提供的一种连通区域示意图;
图5为本发明另一实施例提供的一种生成深度图的装置的第一种结构示意图;
图6为本发明另一实施例提供的一种生成深度图的装置的第二种结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明一实施例提供了一种生成深度图的方法,参考图1,该生成深度图的方法包括如下步骤:
S110,将接收到的原始图像转换为原始灰度图。
S120,根据预设的下采样倍数,对所述原始灰度图进行下采样,得到下采样灰度图。
S130,按照设定像素范围,将所述下采样灰度图划分为多个图像块。
S140,根据像素点的灰度值,以及预设的连通方向,在多个图像块中,确定至少一个连通的图像块,并计算相邻连通的图像块之间的权重值,所述权重值为相邻连通图像块的平均灰度值的差值。
S150,基于确定的所述权重值,在所述至少一个连通的图像块中,确定至少一个连通区域,所述连通区域包括至少一个图像块。
S160,针对确定的每个连通区域,根据该连通区域中像素点数目和区域范围,确定该连通区域的深度值。
S170,基于确定的各个连通区域的深度值和原始灰度图,得到预处理深度图。
S180,根据所述原始灰度图,对所述预处理深度图进行滤波,得到原始图像的深度图。
具体地,将接收到的原始图像转换为原始灰度图的算法在现有技术已有详细的说明,此处不做过多说明;像素点的灰度值一般为[0,255];设定像素范围可以视具体情况而定,例如,4*4像素;连通方向可以为自左向右、自上到下,也可以为预设图形样式;平均灰度值为图像块中所有像素点的灰度值之和与像素点数目的比值;权重值为相邻连通的图像块的平均灰度值的差值的绝对值。
在对所述预处理深度图进行滤波时,根据原始灰度图,采用联合双边滤波算法对预处理深度图进行滤波,使得原始图像的深度图更加平滑。
联合双边滤波算法的原理如下:
对输入图像进行滤波,通过参考图像实现联合双边滤波中权重的计算,遍历输入图像中的像素点,得到每个像素点的像素值Jp。
其中,p为输入图像中的像素点;
q为预设范围Ω内的像素点,预设范围Ω根据实际情况确定;
Ip为p像素点的像素值;
f、g分别是权重分布函数,一般为高斯函数;
为参考图像中与输入图像中像素点p对应的像素点的值;
为参考图像中与输入图像中像素点q对应的像素点的值;
kp为调节系数,一般为常数;
Jp为滤波后p像素点的额像素值。
其中,预处理深度图作为输入图像,原始灰度图作为参考图像进行联合双边滤波得到原始图像的深度图。
在本发明实施例中,在将原始灰度图划分为多个像素块之前,对原始灰度图进行下采样,可以有效降低数据的处理量,提高数据处理效率;对预处理深度图进行滤波处理可使得图像更加平滑,并有效降低快效应的影响,得到的深度图更加精准。
本发明一实施例公开了一个生成深度图的方法,如图2所示,该方法包括以下步骤:
S201,将接收到的原始图像转换为原始灰度图。
S202,对所述原始灰度图进行低通滤波。
S203,根据预设的下采样倍数,对所述原始灰度图进行下采样,得到下采样灰度图。
进一步地,根据预设的下采样倍数,确定每一个下采样后的像素点的位置;
采用双线性差值算法,对所述原始灰度图进行上采样处理,获取每一个上采样后像素点的像素值;
根据所述每一个下采样后的像素点的像素值和位置,生成下采样灰度图。
例如,假设下采样灰度图中像素点的坐标用(m,n)表示,原始灰度原图中像素点的坐标用(x,y)表示。将下采样灰度图中的像素点投影到原始灰度图中,确定(m,n)与(x,y)的相对位置,下采样灰度图中的像素点(m,n)与像素点(x,y)之间的水平偏移量为u,垂直偏移量为v,其中像素点(m,n)的灰度值是由其对应的原始灰度图中相邻4个像素点的像素计算得到,计算公式如下:
D(m,n)=[vocef(m) vocef(m+1)]
其中,D(m,n)为下采样灰度图中坐标为(m,n)的像素点的灰度值;
vcoef(m)为坐标为(m,n)的像素点垂直方向的权重系数;
vcoef(m+1)为坐标为(m+1,n)的像素点垂直方向的权重系数;
hcoef(n)为坐标为(m,n)的像素点水平方向的权重系数;
hcoef(n+1)为坐标为(m,n+1)的像素点水平方向的权重系数;
s(x,y)为坐标为(x,y)的像素点的灰度值;
s(x,y+1)为坐标为(x,y+1)的像素点的灰度值;
s(x+1,y)为坐标为(x+1,y)的像素点的灰度值;
s(x+1,y+1)为坐标为(x+1,y+1)的像素点的灰度值。
S204,按照设定像素范围,将所述下采样灰度图划分为多个图像块。
S205,根据像素点的灰度值,以及预设的连通方向,在多个图像块中,确定至少一个连通的图像块,并计算相邻连通的图像块之间的权重值,所述权重值为相邻连通图像块的平均灰度值的差值。
S206,根据确定的各个权重值,在所述至少一个连通的图像块中,将符合预设条件的至少一个图像块确定为一个连通区域;
其中,针对一个连通区域包括一个图像块的情况,所述预设条件包括:该一个图像与其相邻前一个图像块以及相邻后一个图像块分别对应的权重均大于设定权重;
针对一个连通区域包括至少两个图像块的情况,所述预设条件包括:所述至少两个图像块中,每相邻图像块之间的权重均不大于设定权重,且所述至少两个图像块中按照连通方向位于最前位置的图像块与其相邻前一个图像块之间的权重大于设定权重,且所述至少两个图像块中按照连通方向位于最后位置的图像块与其相邻后一个图像块之间的权重大于设定权重。
例如参考图3,将图3中的方向将多个图像块进行连通,计算每个图像块的平均灰度值,根据计算得到的各个平均灰度值,计算相邻图像块之间的权重值。根据确定的权重值,确定连通区域,连通区域可能存储包括一个图像块的情况和包括至少两个图像块的情况。
参考图4分别对上述两种情况进行说明,图像块1、2、3、6、7,1和2之间的权重值为G1,6和7之间的权重值为G2,7和3之间的灰度值为G3,1和2之间的灰度值为G4。
如果G1和G4均大于设定权重,则图像块2为一个连通区域。
如果G1大于设定权重、G2小于设定权重、G3大于设定权重,则图像块6和图像块7为一个连通区域。
S207,针对确定的每个连通区域,根据该连通区域中像素点数目和区域范围,确定该连通区域的深度值。
在连通区域为正方向或矩形时,根据以下公式确定各个连通区域的深度值:
其中,R表示任意一个连通区域;
depth(R)为连通区域R的深度值;
x为连通区域R中像素点的横坐标;
y为连通区域R中像素点的纵坐标;
width为连通区域R的宽度值;
heigth为连通区域R的高度值;
pixel_num(R)为连通区域R中像素点的总数目;
Wrl为宽度方向系数,Wud为高度方向系数,其中,|Wrl|+|Wud|=1。
在连通区域不是严格的正方向或矩形时,将连通区域划分为i个子连通区域,子连通区域一般为正方形或矩形,根据以下公式确定各个连通区域的深度值:
其中,R表示任意一个连通区域,i为子连通区域的数目,i∈(1,n),n为正整数;
depth(R)为连通区域R的深度值;
x为连通区域R中像素点的横坐标;
y为连通区域R中像素点的纵坐标;
width为连通区域R的宽度值;
heigth为连通区域R的高度值;
pixel_num(R)为连通区域R中像素点的总数目;
Wrl为宽度方向系数,Wud为高度方向系数,其中,|Wrl|+|Wud|=1。
S208,对所述预处理深度图进行上采样。
进一步地,在对所述预处理深度图进行上采样时,包括:
按照设定的上采样倍数,确定每一个上采样后的像素点的位置;
采用双线性差值算法,对所述预处理深度图进行上采样处理,获取每一个上采样后像素点的像素值;
根据所述每一个上采样后的像素点的像素值和位置,得到上采样后的预处理深度图。
例如,假设中上采样后的预处理深度图中像素点的坐标用(x,y)表示,预处理深度图的坐标用(m,n)表示。将预处理深度图中的像素点投影到上采样后的预处理深度图中,确定(m,n)与(x,y)的相对位置,上采样后的预处理深度图中的像素点(x,y)与像素点(m,n)之间的水平偏移量为u,垂直偏移量为v,计算公式如下:
其中,De(x,y)为下采样灰度图中坐标为(x,y)的像素点的灰度值;
vcoef(x)为坐标为(x,y)的像素点垂直方向的权重系数;
vcoef(x+1)为坐标为(x+1,y)的像素点垂直方向的权重系数;
hcoef(x)为坐标为(x,y)的像素点水平方向的权重系数;
hcoef(y+1)为坐标为(x,y+1)的像素点水平方向的权重系数;
d(m,n)为坐标为(m,n)的像素点的灰度值;
d(m,n+1)为坐标为(m,n+1)的像素点的灰度值;
s(m+1,n)为坐标为(m+1,n)的像素点的灰度值;
s(m+1,n+1)为坐标为(m+1,n+1)的像素点的灰度值。
S209,对上采样后的预处理深度图进行平滑处理。
进一步地,采用双边滤波对预处理深度图进行平滑处理,以改善深度图中的块效应,公式如下:
其中,xi为预处理深度图中的像素点,i∈(1,n),n为正整数;
Depth(xi)为像素点xi的深度值;
N(xi)为滤波器的系数的归一化因子,即常数;
Ω(xi)为像素点xi的邻域像素范围,该邻域像素范围为设定像素范围,该设定像素范围可以是以像素点xi作为中心点或起始点或任意一点的范围;
xj为属于Ω(xi)中的像素点,其中,像素点xj与像素点xi为不同的像素点;
u(xj)为像素点xj的亮度值;
u(xi)为像素点xi的亮度值;
depth(xj)为像素点xj的深度值,
σs为像素点xi的空域高斯函数标准差(对Ω(xi)范围内的像素点xi与像素点xj,计算像素点xi与各个像素点xj的像素空间距离,进一步,根据计算得到的各个像素空间距离计算像素点xi的空域高斯函数标准差);
σr为像素点xi的值域高斯函数标准差(对Ω(xi)范围内的像素点xi与像素点xj,计算u(xi)与各个u(xj)的差值,进一步,根据计算的各个差值,计算像素点xi的值域高斯函数标准差)。
S210,基于确定的各个连通区域的深度值和原始灰度图,得到预处理深度图。
S211,根据所述原始灰度图,对所述预处理深度图进行滤波,得到原始图像的深度图。
本发明另一实施例提供了一种生成深度图的装置,参考图5,该装置包括:图像转换单元510、下采样单元520、图像划分单元530、图像连通单元540、第一确定单元550、第二确定单元560、第一处理单元570和第二处理单元580。
图像转换单元510,用于将接收到的原始图像转换为原始灰度图。
下采样单元520,用于根据预设的下采样倍数,对所述原始灰度图进行下采样,得到下采样灰度图。
图像划分单元530,用于按照设定像素范围,将所述下采样灰度图划分为多个图像块。
图像连通单元540,用于根据像素点的灰度值,以及预设的连通方向,在多个图像块中,确定至少一个连通的图像块,并计算相邻连通的图像块之间的权重值,所述权重值为相邻连通图像块的平均灰度值的差值。
第一确定单元550,用于基于确定的所述权重值,在所述至少一个连通的图像块中,确定至少一个连通区域,所述连通区域包括至少一个图像块。
第二确定单元560,用于针对确定的每个连通区域,根据该连通区域中像素点数目和区域范围,确定该连通区域的深度值。
第一处理单元570,用于基于确定的各个连通区域的深度值和原始灰度图,得到预处理深度图。
第二处理单元580,用于根据所述原始灰度图,对所述预处理深度图进行滤波,得到原始图像的深度图。
可选地,所述下采样单元520具体用于:
根据所述预设的下采样倍数,确定每一个下采样后的像素点的位置;
采用双线性差值算法,对所述原始灰度图进行上采样处理,获取每一个上采样后像素点的像素值;
根据所述每一个下采样后的像素点的像素值和位置,生成下采样灰度图。
进一步地,所述第一确定单元550具体用于:
根据确定的各个权重值,在所述至少一个连通的图像块中,将符合预设条件的至少一个图像块确定为一个连通区域;
其中,针对一个连通区域包括一个图像块的情况,所述预设条件包括:该一个图像与其相邻前一个图像块以及相邻后一个图像块分别对应的权重均大于设定权重;
针对一个连通区域包括至少两个图像块的情况,所述预设条件包括:所述至少两个图像块中,每相邻图像块之间的权重均不大于设定权重,且所述至少两个图像块中按照连通方向位于最前位置的图像块与其相邻前一个图像块之间的权重大于设定权重,且所述至少两个图像块中按照连通方向位于最后位置的图像块与其相邻后一个图像块之间的权重大于设定权重。
进一步地,所述第一处理单元570还用于:
对所述预处理深度图进行上采样;
对上采样后的预处理深度图进行平滑处理。
在对预处理深度图进行上采样时,所述第一处理单元570用于按照设定的上采样倍数,确定每一个上采样后的像素点的位置;
采用双线性差值算法,对所述预处理深度图进行上采样处理,获取每一个上采样后像素点的像素值;
根据所述每一个上采样后的像素点的像素值和位置,得到上采样后的预处理深度图。
本发明另一实施例提供了一种生成深度图的装置,参考图6,该装置还包括:低通滤波单元590和上采样单元511。
图像转换单元510将接收到的原始图像转换为原始灰度图后,低通滤波单元590,用于对所述原始灰度图进行低通滤波。
本发明实施例所提供的一种生成深度图的装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。