一种基于深度图的立体图像生成方法与流程

文档序号:11139290阅读:742来源:国知局
一种基于深度图的立体图像生成方法与制造工艺

本发明涉及计算机视觉领域,特指一种基于深度图的立体图像生成方法。



背景技术:

随着计算机视觉领域技术的进步,立体影像技术变得越来越热门。立体影像能够增强影像中场景的真实感和沉浸感,在文化娱乐、医疗、军事仿真、工程展览、教育领域得到了广泛应用,已成为各国科研和产业界关注的热点领域。

立体影像相关技术主要涉及立体影像生成、立体影像显示和立体影像感知三个方面。在传统的平行双目立体影像成像系统中,是通过同时传送拍摄的左视图和右视图生成立体影像,这种方法在影像数据量小的情况下是可行的,但在影像数据量大的情况下不太适用。

虽然近年来计算机芯片的处理能力得到了很大的提高,通信信道的带宽得到了增加,通信速度得到了加快,但是仍然难以处理信息量越来越大的影像文件。



技术实现要素:

针对传统平行双目立体视觉传输过程中,直接传输左视图和右视图信息量大,占用传输带宽资源多,传输效率低等问题,本发明提出了一种基于深度图的立体图像生成方法。本发明提出的立体成像方法只需要传输左视图或右视图的任意一幅视图以及相应的深度图即可,在影像接收端通过深度图像分析恢复出另一视图,得到立体图像。比起直接传输左视图和右视图,深度图像的信息量要比普通视图小得多,深度图像的传输在速度和效率上都要更高,且占用传输带宽小,既能节约资源又能提高效率。

本发明采用的技术方案是:

一种基于深度图的立体图像生成方法,包括以下步骤:

S1给定平行双目立体成像系统采集的左视图或右视图及其对应的深度图像,并对给定的这一幅深度图像进行预处理。

S2根据平行双目立体成像原理,通过左视图及其对应的深度图像还原出右视图,或者通过右视图及其对应的深度图像还原出左视图。

S3检测S2中还原得到的视图上的空洞像素点,并根据空洞像素点对应的深度信息和给定视图信息对还原出的视图进行空洞填补。

步骤S1中,利用形态学滤波和双边滤波对深度图像进行预处理,包括以下步骤:

(1)搜索深度图像上的空洞像素点,计算待处理空洞水平方向上最长的行所占的像素点个数,并将其记为s像素长度;

(2)根据s构造n×1的可变直线型形态学结构元素b;

可变直线型形态学结构元素b可表示为矩阵其中n是根据s的变化而变化的,s为深度图像上待处理空洞水平方向上最长的行所占的像素点个数,结构元素b的原点位于其中心;

(3)用结构元素b对深度图像进行膨胀运算,得到图像A;

膨胀运算公式为:

其中f为待处理图像函数(此处即为图像A),b是结构元素,Df、Db分别表示f、b的定义域,(t,m)为f的像素点坐标,(x,y)为b的像素点坐标。

(4)用结构元素b对图像A进行腐蚀运算,得到图像B;

腐蚀运算公式为:

(f⊙b)(t,m)=min{f(t+x,m+y)-b(x,y)|(t+x),(m+y)∈Df且(x,y)∈Db}

其中f为待处理图像函数(此处即为图像B),b是结构元素,Df、Db分别表示f、b的定义域,(t,m)为f的像素点坐标,(x,y)为b的像素点坐标。

(5)用双边滤波对图像B进行滤波,得到预处理后深度图像C。

步骤S2中,平行双目立体成像系统中,左摄像机与右摄像机的参数一致,两摄像机光轴平行且垂直于基线,构成一共极结构,两摄像机拍摄的左视图和右视图只有水平视差,设h为基线,k为相机焦距。对于空间同一特征点P(x,y,z),在左视图和右视图上的成像坐标分别为p(xl,yl,zl),p(xr,yr,zr),由几何三角知识有:于是可以得到视差d为d=xl-xr,从而可以得到特征点P在相机坐标系下的三维坐标计算公式为:其中Z即为特征点P的深度值。

由于h和k是已知的,由深度图像可以得到像素点的深度值Z,如果步骤S1中给出的是左视图,则可以得到左视图上像素点坐标xl,由公式和d=xl-xr便可求得右视图上对应的像素点坐标xr,还原出右视图;同理如果步骤S1中给出的是右视图,则可以得到右视图上像素点坐标xr,由公式和d=xl-xr便可求得左视图上对应的像素点坐标xl,还原出左视图。

步骤S3中,空洞填补的具体方法为:

S31首先对还原得到的视图上每一个像素点从左到右从上至下进行遍历,搜索还原得到的视图上的空洞像素点,其坐标记为(x,y).

S32根据空洞像素点的深度信息Z,相机参数h和k以及公式计算出视差值d.

S33根据步骤(2)中求出的视差值d,找到S1中采集的原始左视图或右视图中的坐标为((x,y-d),(x,y+d))的像素点,并将其像素值赋值给还原得到的视图中坐标为(x,y)的像素点,得到空洞修复视图.

S34将空洞修复后的视图进行中值滤波,进一步减少噪点,得到最终视图。

综上所述,本发明提出的一种基于深度图的立体图像生成方法主要包括以下三个步骤:深度图像预处理、视图还原、还原视图空洞修补。深度图像预处理以及还原视图空洞修补都是针对深度图像绘制技术会产生空洞的缺点提出的解决方法,深度图像预处理能减少还原视图中洞的产生,还原试图空洞修补能够进一步修复产生的空洞,得到质量更高的还原视图。本发明中使用的一种基于可变型结构元素的形态学滤波方法以及基于深度信息修复空洞的方法能有效地解决还原视图中的空洞问题,实用性强。

附图说明

图1是平行双目立体视觉系统的原理图;

图2基于深度图像的立体图像生成方法示意图;

图3深度图像预处理方法流程图;

图4还原视图空洞填补方法流程图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步说明。

本发明提出的一种基于深度图的立体图像生成方法是以平行双目立体视觉模型为基础的。

首先给定平行双目立体成像系统采集的左视图或右视图及其对应的深度图像,并对给定的这一幅深度图像进行预处理。

深度图像在采集过程中由于设备自身以及周围环境等影响,通常含有大量空洞和噪声,如果直接使用会影响到后续效果,故需要对深度图像进行预处理操作。其具体过程是先用形态学滤波对深度图像进行一次滤波,然后对一次滤波后的深度图像采用双边滤波进行二次滤波。

形态学滤波是基于数学形态学的一种非线性滤波,它的基本运算有4个:膨胀运算、俯视运算、开运算和闭运算。灰度膨胀实际上是一个求局部最大值的操作,膨胀操作能够扩充物体的边缘部分,使物体范围增大;灰度腐蚀实际上是一个求局部最小值的操作,腐蚀操作会缩减物体的边缘部分,减小物体范围。

灰度膨胀公式为:

灰度腐蚀公式为:

(f⊙b)(t,m)=min{f(t+x,m+y)-b(x,y)|(t+x),(m+y)∈Df且(x,y)∈Db}

其中f为待处理图像函数,b是结构元素,Df、Db分别表示f、b的定义域,(t,m)为f的像素点坐标,(x,y)为b的像素点坐标。

双目视觉系统中的两部摄像机位于同一水平线上,所拍摄的左右视图之间只存在水平方向上的视差,通过深度图像还原出的视图中出现黑洞是由于深度图中水平方向的深度值突变引起的,深度值的水平突变处即为深度图的水平边缘处,若要减少还原视图中的洞需要对深度图水平边沿做平滑滤波处理。针对这种情况本发明提出了一种可变直线型形态学结构元素对空洞处进行滤波处理,填补黑洞。设该可变直线型形态学结构元素为b,可表示为矩阵其大小为n×1,其中n是根据s的变化而变化的,s为深度图像上待处理空洞水平方向上最长的行所占的像素点个数,结构元素b的原点位于其中心。

本发明首先利用形态学滤波和双边滤波对深度图像进行一次滤波,具体步骤为:

(1)搜索深度图像上的空洞像素点,计算待处理空洞水平方向上最长的行所占的像素点个数,并将其记为s像素长度;

(2)根据s构造n×1的可变直线型形态学结构元素b;

可变直线型形态学结构元素b可表示为矩阵其中n是根据s的变化而变化的,s为深度图像上待处理空洞水平方向上最长的行所占的像素点个数,结构元素b的原点位于其中心;

(3)用结构元素b对深度图像进行膨胀运算,得到图像A;

膨胀运算公式为:

其中f为待处理图像函数(此处即为图像A),b是结构元素,Df、Db分别表示f、b的定义域,(t,m)为f的像素点坐标,(x,y)为b的像素点坐标;

(4)用结构元素b对图像A进行腐蚀运算,得到图像B;

腐蚀运算公式为:

(f⊙b)(t,m)=min{f(t+x,m+y)-b(x,y)|(t+x),(m+y)∈Df且(x,y)∈Db}

其中f为待处理图像函数(此处即为图像B),b是结构元素,Df、Db分别表示f、b的定义域,(t,m)为f的像素点坐标,(x,y)为b的像素点坐标。

图像B即为一次滤波得到的图像。通过形态学进行一次滤波后的图像会出现毛糙现象,故需要对图像B进行二次滤波,平滑毛糙。本发明采用的是双边滤波器,因为双边滤波器由两个核函数组成,滤波时同时参考了空间域上的相关性和像素值的相似程度,在滤波的同时考虑到了图像的边缘信息,使图像能在边缘信息保持较好的情况下得到平滑。

通过双边滤波,得到预处理深度图像后,进行第二步操作,通过给出的左(右)视图和预处理后深度图还原出右(左)视图。平行双目立体视觉模型如图1所示,图中左摄像机与右摄像机的参数一致,光轴平行,且垂直于基线,构成一共极结构,两相机拍摄的左视图和右视图只有水平视差,图中h为基线,k为相机焦距。对于空间同一特征点P(x,y,z),在左视图和右视图上的成像坐标分别为p(xl,yl,zl),p(xr,yr,zr),由几何三角知识有:于是可以得到视差d为d=xl-xr,从而可以得到特征点P在相机坐标系下的三维坐标计算公式为:其中Z即为特征点P的深度值。由于h和k是已知的,由深度图像可以得到像素点的深度值Z,给出的左(右)视图可以得到像素点坐标xl(xr),由公式和d=xl-xr便可求得右(左)视图的xr(xl)坐标像素点,还原出右(左)视图。

最后,通过空洞像素点的深度信息对还原出的视图进行空洞填补。其具体过程为:

(1)首先对还原出的视图上每一个像素点从左到右从上至下进行遍历,搜索图像空洞像素点,其坐标记为(x,y);

(2)根据空洞像素点的深度信息Z,相机参数h和k以及上面所述的公式计算出视差值d;

(3)根据步骤(2)中求出的视差d,找到原始拍摄到的左视图(右视图)中的坐标为(x,y-d)((x,y+d))的像素点,并将其像素值赋值给还原出的视图中坐标为(x,y)的像素点,得到空洞修复视图;

(4)将空洞修复后的视图进行中值滤波,进一步减少噪点,得到最终视图。

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