一种基于Kinect的抠像方法与流程

文档序号:11387656阅读:1140来源:国知局

【技术领域】

本发明属于图像处理领域,尤其涉及一种基于kinect的抠像方法。



背景技术:

抠像技术是一种十分重要的图像处理技术,它应用于影视作品创作中,还应用于医疗,农业,工业中。但通常情况下图像,图像中的前景部分和背景部分时常会出现覆盖问题,也就是说前景部分存在透明的像素,因此如何准确地分离前景部分和背景部分,是抠像技术研究的主要内容。



技术实现要素:

为了解决现有技术中的上述问题,基于对传统图像滤波算法的分析,本发明提出了借助kinect体感设备拍摄的深度图像,对kinect拍摄的彩色图像进行抠像。提出了一种新的颜色距离滤波器,三元图自动生成方法实现抠像。

本发明采用的技术方案具体如下:

一种基于kinect的抠像方法,包括以下步骤:

步骤1:通过openni和opencv函数库,使用kinect拍摄目标图像,得到彩色图像和深度图像,通过openni中的视角转换函数,将彩色图像和深度图像调整至同一视角;

步骤2:借助所述彩色图像信息对所述深度图像进行迭代的图像滤波,得到前景轮廓图像;

步骤3:将所述前景轮廓图像通过形态学腐蚀膨胀算法生成三元图,并将前景轮廓图像中在给定阈值范围内的像素定义为未知区域的像素;

步骤4:对步骤3生成的三元图进行去除细缝和孔洞的处理算法,生成最终的三元图。

进一步地,所述步骤2中使用颜色距离滤波器rf进行图像滤波,所述颜色距离滤波器rf通过以下函数定义,即:

其中,i表示深度图像,表示彩色图像,rf[i]p表示图像i中位置p的像素经过所述颜色距离滤波器输出的结果。分别是彩色图像中位置p和位置q的像素值;

σr是颜色距离参数,gσr就是颜色距离高斯函数,具体地

wp是权重值,其等于下式:

进一步地,图像滤波的迭代次数为5。

进一步地,步骤2中选择感兴趣的图像区域roi进行滤波,其中roi通过如下公式定义:

其中,s是对于物体抠像的kinect的深度图像二值化后的图像,或是对于人物抠像的人物识别图像,erode是腐蚀运算,dilate是膨胀运算。

进一步地,所述步骤3具体包括:设fs为经过滤波的图像,fsp是fs在位置p的像素值,在设置好阈值参数tl和th后,将fs用th阈值化后对其进行参数4*4矩阵的形态学腐蚀膨胀算法操作,得到初始的三元图,然后,如果fsp的值介于tl和th之间,那么位置p的像素被认为是未知区域的像素。

进一步地,所述步骤4具体包括:

步骤4.1:获取前景轮廓外周围的边界像素,记为背景像素,背景像素的集合记为背景像素集b_set;将rgb空间的每一个通道均分为16个区间,这样三个通道一共可得到4096个区间,将得到的背景像素与这些区间相匹配,检查其rgb像素值所在的区间,记录落入最多背景像素的若干区间及相邻区间,作为背景区间集b_bin;

步骤4.2:对于前景轮廓的像素p,记为前景像素,与步骤4.1相同地计算其所位于的区间,记录各个前景像素的所落入的区间,作为前景区间集f_bin,如果f_bin中存在一个或多个区间也属于背景区间集b_bin,则将该一个或多个区间所对应的前景像素记录为可能是细缝或孔洞的像素集f_cand;

步骤4.3:对于任意一个像素m∈f_cand,计算距离m最近的n个背景像素,以及该n个背景像素的rgb像素值所位于的区间,如果其中有一个区间属于背景区间集b_bin,则该像素m是细缝或孔洞的点,其中n是预定义的数值;

步骤4.4:将三元图中属于细缝或孔洞的点都定义为未知区域。

本发明的有益效果为:与传统基于三元图的抠像方法相比,省去了任何形式的人机交互,利用kinect自动生成抠像所用的三元图,再结合共用的样本点抠像方法,可以达到实时抠像效果。

【附图说明】

此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:

图1是本发明抠像方法的基本流程图。

【具体实施方式】

下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定。

在下述具体实施方式的说明中,iq表示图像i中位置为q的像素值,f[i]表示图像i通过f滤波器后的输出结果,s为空间距离域,r为颜色距离域,‖‖表示2范数。

参见附图1,本发明的基于kinect的抠像方法的具体步骤说明如下:

步骤1:通过openni和opencv函数库,使用kinect拍摄目标图像,得到彩色图像和深度图像,通过openni中的视角转换函数,将彩色图像和深度图像调整至同一视角。

步骤2:使用本发明的颜色距离滤波器(rf)借助所述彩色图像信息对所述深度图像进行迭代的图像滤波,得到边缘较为准确的前景轮廓图像。

所述颜色距离滤波器rf通过以下函数定义,即:

其中,i表示深度图像,表示彩色图像,rf[i]p表示图像i中位置p的像素经过所述颜色距离滤波器输出的结果。分别是彩色图像中位置p和位置q的像素值。

σr是颜色距离参数,gσr就是颜色距离高斯函数,具体地

其中exp是以自然常数e为底的指数函数。

wp是权重值,其等于下式:

但是,如果将整个图像进行滤波会花费很长时间,而且对于确知信息也没必要进行滤波,所以本发明选择感兴趣的图像区域roi进行滤波,由于kinect产生的数据主要在边界上有误差,因此通过如下公式定义roi:

其中,s是对于物体抠像的kinect的深度图像二值化后的图像,或是对于人物抠像的人物识别图像。erode是腐蚀运算,dilate是膨胀运算。

为了检测方法性能,本发明分别测试了颜色距离滤波器的迭代使用,最终经过实验发现,5次的迭代运算可以得到很好的运算效果,并且运算时间也可以接受。通过颜色距离滤波器的迭代使用,图像不仅不会受到空间因素的影响,并且还可以达到高斯平滑的滤波效果。

步骤3:将经过图像滤波后前景轮廓图像通过形态学腐蚀膨胀算法生成三元图,并将前景轮廓图像中在给定阈值范围内的像素定义为未知区域的像素。

具体地,设fs为经过滤波的图像,fsp是fs在位置p的像素值。在设置好阈值参数tl和th后,将fs用th阈值化后对其进行参数4*4矩阵的形态学腐蚀膨胀算法操作,得到初始的三元图。然后,如果fsp的值介于tl和th之间,那么位置p的像素被认为是未知区域的像素。即:

这样就获得了一个基本准确的三元图,通过实验发现5次迭代颜色距离滤波器使用的时间相对较少,并且得到的三元图比较准确,未知区域所占的比例也比较少。

步骤4:对步骤3生成的三元图进行去除细缝和孔洞的处理算法,生成最终的三元图。具体处理算法如下:

鉴于深度图像技术本身的精度问题,他们产生的深度信息无法非常准确地探测到前景内的细缝和孔洞。本发明提出了一种方法可以较为有效地来解决简单背景下的细缝和孔洞问题。首先假设,用颜色滤波器可以得到准确的前景轮廓,方法的核心是采样前景轮廓之外的背景像素用于剔除前景中的细缝和孔洞。

步骤4.1:获取前景轮廓外周围的边界像素,记为背景像素,背景像素的集合记为背景像素集b_set。将rgb空间的每一个通道均分为16个区间,这样三个通道一共可得到16*16*16=4096个区间,将得到的背景像素与这些区间相匹配,检查其rgb像素值所在的区间,记录落入最多背景像素的若干区间及相邻区间,作为背景区间集b_bin。

步骤4.2:对于前景轮廓的像素p,记为前景像素,与步骤4.1相同地计算其所位于的区间,记录各个前景像素的所落入的区间,作为前景区间集f_bin,如果f_bin中存在一个或多个区间,该区间也属于背景区间集b_bin,说明该区间对应的前景像素与背景颜色相似,则将该一个或多个区间所对应的前景像素记录为可能是细缝或孔洞的像素集f_cand。

步骤4.3:对于任意一个像素m∈f_cand,计算距离m最近的n个背景像素,以及该n个背景像素的rgb像素值所位于的区间,如果其中有一个区间属于背景区间集b_bin,则该像素m是细缝或孔洞的点。其中n是预定义的数值。

步骤4.4:将三元图中属于细缝或孔洞的点都定义为未知区域。

经过大量实践证明,上述方法可以成功地找到细缝或孔洞。

以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。

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