基于扩散曲线的RGBD图像矢量化方法与流程

文档序号:12127684阅读:518来源:国知局

本发明涉及计算机图形学及图像处理技术领域,特别是涉及一种基于扩散曲线的RGBD图像矢量化方法。



背景技术:

图像矢量化方法为传统位图提供了另一种无损表达方式,为艺术家提供了对普通位图做艺术创作的便利工具。

当艺术家想对一张位图中的物体进行后期创作时,他们需要获得该物体的大体轮廓和内部细节。梯度网格(Gradient Mesh)是一种基于网格的矢量化图元,它可以渲染光滑的颜色过渡,并支持无极缩放等传统矢量图的特点,参见Sun J,Liang L,Wen F,et al.Image vectorization using optimized gradient meshes ACM Transactions on Graphics(TOG).ACM,2007,26(3):11.然而这种方法不方便进行后期处理,因为操作网格的过程非常繁琐,并且不直观。

扩散曲线(Diffusion Curves)是一种非常便利的矢量化图元,扩散曲线利用曲线向外扩散颜色,以达到光滑的颜色混合效果,参见Diffusion Curves:A Vector Representation for Smooth-Shaded Images,Alexandrina Orzan,Adrien Bousseau,Holger Winnemoller,Pascal Barla,Joelle Thollot,David Salesin.扩散曲线对于艺术家来说非常易于学习和掌握,只要绘制其边缘并添加颜色控制点。Alexandrina Orzan等人在其论文中提出一种针对RGB图像的矢量化方法,其能有效重建一些包含简单物体的真实照片和漫画。还有一些研究人员在拉普拉斯域上进行边缘提取,再进行矢量化工作,参见Xie G,Sun X,Tong X,et al.Hierarchical diffusion curves for accurate automatic image vectorization[J].ACM Transactions on Graphics(TOG),2014,33(6):230。该方法能有效重建包含复杂物体的真实照片矢量化。然而以上方法均是基于RGB图像的矢量化方法,存在诸多结构上的缺陷,会导致提取的边界特征不够清晰。



技术实现要素:

针对现有技术中存在的上述问题,本发明的目的在于提供一种基于扩散曲线的RGBD图像矢量化方法。该方法利用颜色信息和额外的深度信息,有效提取物体轮廓,解决了传统基于RGB扩散曲线矢量化方法边界不清晰的问题,为艺术家提供了一种方便后期创作的矢量化结果。

所述的基于扩散曲线的RGBD图像矢量化方法,其特征在于该方法包括以下步骤:

1)输入RGB彩色图像和对应的深度图D,等待处理;

2)将步骤1)中等待处理的RGB彩色图像进行多尺度Canny边缘提取,得到多尺度二值边缘图像;

3)对步骤2)中的多尺度二值边缘图像采用着色算法,得到彩色边缘图像;

4)将步骤1)中的深度图D进行深度修复,得到修复后的深度图D';

5)对步骤4)中修复后的深度图D'采用深度边缘提取算法,得到深度边缘图像;

6)将步骤3)中的彩色边缘图像和步骤5)中的深度边缘图像进行相减,得到细节边缘图像;

7)对步骤5)的深度边缘图像和步骤6)中的细节边缘图像进行像素链跟踪合并,得到一组折线段;

8)对步骤7)中的折线段进行颜色采样和贝塞尔曲线拟合,得到一组扩散曲线;

9)通过求解以步骤8)中扩散曲线上的颜色为约束的泊松方程,平滑地将颜色扩散并填满整个图像空间,得到矢量化结果。

所述的基于扩散曲线的RGBD图像矢量化方法,其特征在于步骤2)中所述的多尺度Canny边缘提取方法如下:对于一张RGB彩色图像,先对其在不同尺度上进行高斯模糊处理,生成对应的尺度空间,再对于尺度空间中的每一张图像先进行Canny边缘提取,生成与该尺度空间相对应的边缘图像栈,然后将不同尺度上的边缘图像合并成一张多尺度二值边缘图像。

所述的基于扩散曲线的RGBD图像矢量化方法,其特征在于步骤3)中的对多尺度二值边缘图像的着色算法如下:

步骤3-1,利用Sobel算子计算输入RGB彩色图像中每个像素的梯度;

步骤3-2,接着对多尺度二值边缘图像中的每一条像素链,实施如下算法:

步骤3-2-1,对当前像素链设置唯一的颜色C,找到其一个端点,从该端点像素开始遍历像素链;

步骤3-2-2,比较当前像素和八邻域像素的梯度,在八邻域像素中找到与当前像素的梯度最接近的像素,且八邻域像素与当前像素的夹角小于45度,则将这两个像素设置成相同的颜色C;八邻域像素范围内没有可选像素,则将选择域扩大至24像素,在扩大的邻域范围内寻找与当前像素的梯度最接近的像素,将当前像素和梯度最为接近像素以及两者中间的像素,设置成一样的颜色C;

步骤3-2-3,将当前像素指向步骤3-2-2中找到的像素;

步骤3-2-4,重复步骤3-2-2和3-2-3直到到达像素链的另一个端点像素。

所述的基于扩散曲线的RGBD图像矢量化方法,其特征在于步骤4)中的深度修复方法如下:首先,对深度信息丢失区域进行膨胀以消除不稳定的深度值,其次通过如下三边滤波公式来计算像素x处的深度值Dx

其中G(·)是高斯函数,W是归一化因子,F(x)是像素x的邻居像素集合,Gλ(x-y)是像素x和邻居像素y的空间距离,Dx'是像素x邻居像素的深度平均值,Dy是邻居y像素的深度值,Gξ(Dx'-Dy)是两者的深度差值,Ix,Iy分别为像素x和y处的颜色值,Gμ(Ix-Iy)是两者的颜色差值。

所述的基于扩散曲线的RGBD图像矢量化方法,其特征在于步骤5)中的深度边缘提取算法如下:首先根据图像的二阶导进行非极大值抑制;其次,连接那些极大值点以获得深度图的边缘结构。

所述的基于扩散曲线的RGBD图像矢量化方法,其特征在于步骤6)的对两个边缘图像的相减方法如下:对于深度边缘图像中每一个边缘像素,在彩色边缘图像中找到位置与之对应的像素,若彩色边缘图像中的对应像素及其八邻域中存在边缘像素,则将其存在的边缘像素消去,得到细节边缘图像。

所述的基于扩散曲线的RGBD图像矢量化方法,其特征在于步骤7)中的像素链跟踪合并方法如下:

步骤7-1,对于细节边缘图和深度边缘图中的每一条像素链,实施如下算法得到折线段:

步骤7-1-1,找到像素链的其中一个端点x,在x的上、下、左、右四个优先方向寻找可连接像素,若优先方向存在像素,就认定为可连接像素,若优先方向上不存在可连接像素,则在左上,左下、右上、右下次优方向上寻找可连接像素,若存在多个可连接像素,则选取能与当前像素组成最长线段的方向作为可连接方向,在可连接方向上找到该方向上的拐点像素,将其位置记录下;

步骤7-1-2,将x指向步骤7-1-1中找到的拐点像素;

步骤7-1-3,重步骤7-1-1和步骤7-1-2,直到x指向该像素链的另一个端点y;

步骤7-2,将细节边缘图生成的折线段集合和深度边缘图生成的折线段集合进行合并;

步骤7-3,为了增强边缘的连续性,将2个像素的距离且端点处的颜色偏差值小于一定阈值的折线段相连接,形成更长的折线段,其颜色偏差值计算函数如下:

其中a和b为像素端点,Ra,Ga,Ba分别表示a处的红色通道、绿色通道和蓝色通道的值,Rb,Gb,Bb分别表示b处的红色通道,绿色通道和蓝色通道的值。

所述的基于扩散曲线的RGBD图像矢量化方法,其特征在于步骤8)中的颜色采样方法如下:对于一条折线段上的每个像素,在RGB彩色图像中沿着其在像素链上的法线方向的正方向偏移3个像素的3*3像素区域内采样得到其众数颜色,完成采样后,对折线进行过滤,过滤原则为若某像素前后各5个像素内相似颜色个数少于阈值则将该像素删除,沿着折线段上的每个像素法向方向的负方向进行相同的颜色采样步骤,阈值为3个像素。

所述的基于扩散曲线的RGBD图像矢量化方法,其特征在于步骤8)中的贝塞尔曲线拟合方法如下:利用折线两端切线方向作为中间控制点所在方向,通过最小二乘方法计算中间控制点位置,使贝塞尔曲线与折线段的偏差值最小,若贝塞尔曲线与折线段的最大偏差值大于阈值,则在该拐点处将折线段拆分,对拆分的折线段添加辅助点以保持贝塞尔曲线连续性,再分别进行拟合,直到最大偏差值小于阈值,

三次贝塞尔曲线B(t)的表达式为

B(t)=(1-t)3P0+3(1-t)2P1+3(1-t)2P2+t3P3

其中t为三次塞尔曲线的参数,0≤t≤1,P0、P1、P2、P3表示4个控制点。

通过采用上述技术,与现有技术相比,本发明的有益效果如下:

本发明针对现有的基于扩散曲线的RGB图像矢量化的缺点,采用了RGBD图像来获得其物体轮廓,利用颜色信息和额外的深度信息,更好的还原了物体的真实轮廓,解决了传统基于RGB扩散曲线矢量化方法边界不清晰的问题,同时也解决了某些颜色环境下多尺度Canny失效的情况,其算法明确,结果鲁棒,特别适用于RGBD图像的矢量化,为艺术家提供了一种方便后期创作的矢量化结果。

附图说明

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

具体实施方式

下面结合说明书附图对本发明的一种基于扩散曲线的RGBD图像矢量化方法通过实施方式进行详细说明。

如图1所示,本发明的一种基于扩散曲线的RGBD图像矢量化方法,包括输入待处理的原始RGB彩色图像和深度图像D,对RGB图像进行多尺度Canny边缘提取,对获得的多尺度二值边缘图像着色生成彩色边缘图像,修复深度图像,对修复后的深度图D’进行深度边缘提取生成深度边缘图像,将两个边缘图像相减得到细节边缘图像,对细节边缘图像和深度边缘图像进行追踪合并生成一组折线段,对折线段进行颜色采样和贝塞尔曲线拟合得到一组扩散曲线,以曲线上的颜色为约束求解泊松方程得到矢量化结果九个步骤。具体如下:

步骤1,输入待处理的RGB图像和深度图D,深度图是灰度图。

步骤2,对步骤(1)中的RGB图像进行多尺度的Canny边缘检测,得到多尺度Canny边缘图像,获得详尽的二值边缘图像。

首先,利用高斯模糊将原始RGB图像进行模糊处理,应用不同的权值参数,获得一个逐渐模糊的图像栈。然后,对图像栈中的每一个图像进行Canny边缘检测,得到对应的边缘图像栈。最后,将所有的边缘图像合并到一张边缘图像上。

为了避免合并过程中产生冗余的边缘信息,将一定距离阈值内的边缘进行合并。

步骤3,对获得的多尺度二值边缘采用着色算法,获得彩色边缘图像;

步骤3-1,利用Sobel算子计算输入RGB彩色图像中每个像素的梯度;

步骤3-2,接着对多尺度二值边缘图像中的每一条像素链,实施如下算法:

步骤3-2-1,对当前像素链设置唯一的颜色C,找到其一个端点,从该端点像素开始遍历像素链;

步骤3-2-2,比较当前像素和八邻域像素的梯度,在八邻域像素中找到与当前像素的梯度最接近的像素,且其与当前像素的夹角小于45度,则将这两个像素设置成相同的颜色C。若八领域范围内没有可选像素,则将选择域扩大至24像素(2像素宽的环形区域),在扩大的邻域范围内寻找与当前像素的梯度最接近的像素,此时45度条件不再使用。将当前像素和梯度最为接近像素以及两者中间的像素(若存在),设置成一样的颜色C;

步骤3-2-3,将当前像素指向步骤3-2-2中找到的像素;

步骤3-2-4,重复步骤3-2-2和3-2-3直到到达像素链的另一个端点像素。

步骤4,如图1所示,采用滤波技术,将原始深度图D进行修复,得到修复后的深度图D’;

首先,对深度信息丢失区域进行膨胀以消除不稳定的深度值。其次,根据深度丢失像素x与邻居像素的深度,空间距离和颜色差值的三边滤波来计算像素x处的深度值Dx

其中G(·)是高斯函数,W是归一化因子,F(x)是像素x的邻居像素集合,Gλ(x-y)是像素x和邻居像素y的空间距离,Dx'是像素x邻居像素的深度平均值,Dy是邻居y像素的深度值,Gξ(Dx'-Dy)是两者的深度差值,Ix,Iy分别为像素x和y处的颜色值,Gμ(Ix-Iy)是两者的颜色差值。

步骤5,对修复的深度图像进行深度边缘提取:

首先根据图像的二阶导进行非极大值抑制。其次,连接那些极大值点以获得深度图的边缘结构;

步骤6,将步骤(3)和步骤(5)的边缘结果进行相减,得到细节边缘图像;

对于深度边缘图像中每一个边缘像素,在彩色边缘图像中找到位置与之对应的像素,若彩色边缘图像中的对应像素及其八邻域中存在边缘像素,则将其存在的边缘像素消去,得到细节边缘图像。

步骤7,对步骤(5)和步骤(6)对边缘图像进行追踪合并,获得一组折线段;

步骤7-1,对于细节边缘图和深度边缘图中的每一条像素链,实施如下算法得到折线段:

步骤7-1-1,找到像素链的其中一个端点x,在x的上、下、左、右四个优先方向寻找可连接像素,若这四个方向上存在像素,就被认定为可连接像素,若优先方向上不存在可连接像素,则在次优方向上(左上,左下、右上、右下)寻找可连接像素。若存在多个可连接像素,则选取能与当前像素组成最长线段的方向作为可连接方向。在可连接方向上找到该方向上的拐点像素,将其位置记录下。

步骤7-1-2,将x指向步骤7-1-1中找到的拐点像素,

步骤7-1-3,重复以上步骤,直到x指向该像素链的另一个端点y。

步骤7-2,将细节边缘图生成的折线段集合和深度边缘图生成的折线段集合进行合并

步骤7-3,为了增强边缘的连续性,我们将2个像素的距离范围内且端点处的颜色偏差值小于一定阈值的折线段相连接,形成更长的折线段,其颜色偏差值计算函数如下:

其中a和b为像素端点,Ra,Ga,Ba分别表示a处的红色通道、绿色通道和蓝色通道的值,Rb,Gb,Bb分别表示b处的红色通道,绿色通道和蓝色通道的值。

步骤8,对步骤(7)中的跟踪结果进行颜色采样和贝塞尔曲线拟合,得到一组折线段;

其颜色采样方法如下:对于一条折线段上的每个像素,沿着其在像素链上的法线方向的正方向一定偏移量的3*3像素区域内采样得到其众数颜色,一定偏移量是指3个像素,完成采样后,对折线进行过滤,过滤原则为若某像素前后各5个像素内相似颜色个数少于阈值(阈值为3个像素)则将该像素删除。同理沿着折线段上的每个像素法向方向的负方向进行相同的颜色采样步骤。

其曲线拟合方法如下:所述贝塞尔曲线拟合方法如下:利用折线两端切线方向作为中间控制点所在方向,通过最小二乘方法计算中间控制点位置,使贝塞尔曲线与折线段的偏差值最小。若贝塞尔曲线与折线段的最大偏差值大于阈值,则在该拐点处将折线段拆分,对拆分的折线段添加辅助点以保持贝塞尔曲线连续性,再分别进行拟合,直到最大偏差值小于阈值。

三次贝塞尔曲线的表达式为:

B(t)=(1-t)3P0+3(1-t)2P1+3(1-t)2P2+t3P3

其中t为三次塞尔曲线的参数,0≤t≤1,P0、P1、P2、P3表示4个控制点;

步骤9,通过求解以步骤(8)中扩散曲线上的颜色为约束的泊松方程,平滑地将颜色扩散并填满整个图像空间,得到矢量化结果。

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