首页 > 文章中心 > 正文

自适应LIC绘制法

1算法思想

流体艺术风格的一个显著特点就是整个画面呈现出活泼的流体波动感•为了模拟这一特征,我们从图像结构着手,计算图像亮度分量的切矢量场•由于切矢量场中存在一些不连续的流线,连续的流线可能呈现尖锐的转角,因此,对切矢量场进行增强、平滑处理以获得连续、平滑的结构矢量场v•我们用结构矢量场控制整个绘制过程•由于画家创作时并非严格按照特定的方向绘制,尤其流体艺术图的随意性更加强烈,为了模拟这种创作手法,本文对源图像增加一定的随机扰动产生纹理参考图像IR,使得绘制并非严格按照结构矢量场进行,体现一定的随意性,同时整个画面颜色也能呈现出跳跃、变化的效果•在结构矢量场控制下进行LIC绘制时,为了追求油画绘制的细腻感,根据图像局部特征自适应地产生可变的LIC积分步长、步数•

2本文算法

2•1绘制结构矢量场

非真实感绘制中已经广泛应用图像切矢量场指导画笔的走向并获得了不错的绘制效果[1-2,4],我们亦以源图像亮度分量的切矢量场为基础,对其进行增强、平滑处理获得结构矢量场v•具体可分4个步骤:Step1•计算源图像的亮度分量L•亮度分量的值由源图像IS中各像素的R,G,B三通道的值按照式(1)进行加权平均获得[5]:L=red×0•299+green×0•587+blue×0•114•(1)Step2•计算切矢量场•切矢量场以亮度图像的梯度场为基础产生,梯度场使用3×3的Sobel梯度算子对亮度分量中各像素进行处理获得[2]•点(x,y)的梯度(Gx,Gy)可采用水平和垂直方向的检测子Sh,Sv与该点做卷积得到,即Gx=Lhx;Gy=Lhy•(2)则点(x,y)切矢量可简单地通过X轴、Y轴的梯度交换得到,即v(x,y)=ΔL⊥=(-Gy,Gx)•(3)则该点梯度模(|ΔL|)定义为|Δ|G2y+G2x•(4)切矢量方向为α=tan-1(Gx/(-Gy))•Step3•增强切矢量场•应用图像切矢量场指导绘制时,在平坦区域往往不能获得很好的流体效果,这是由于这些区域非常平滑,矢量值很小甚至为零•为了避免这种情况,使得整个画面充满丰富的流体效果,需要对方向信息很弱的点进行增强•假定当前点的邻域为adjecent(p,R)(以p为中心,半径为R的圆域,如所示),则当前点的切矢量方向值由其邻域内所有点的加权和来增强:v′(x,y)=∑ni=1wi×vi•(5)增强时希望与中心点距离越大的点贡献越大,因此按如下方式定义权值:wi=Di/minD,(6)其中,Di为邻域内点pi与中心点p间的距离,minD为邻域内点与中心点间的最短距离,距离定义为RGB三通道间的欧氏距离Di=(Ri-Rp)2+(Gi-Gp)2+(Bi-Bp)2•(7)Step4•平滑切矢量场•由于切矢量场中存在呈现尖锐转角的流线,直接用增强后的矢量场作为结构矢量场控制绘制往往使得绘制效果不够平滑,因此需要对增强后的矢量场进行平滑处理•本文利用8-邻域内点的切矢量值来平滑当前点的方向,令v(x,y)为当前点p(x,y)的切矢量值,则按如下方式平滑:v1(x,y)={v(x-1,y+1)+v(x,y)+v(x+1,y-1)}{|v(x-1,y+1)+v(x,y)+v(x+1,y-1)|},(8)v2(x,y)={v1(x-1,y-1)+v1(x,y)+v1(x+1,y+1)}{|v1(x-1,y-1)+v1(x,y)+v1(x+1,y+1)|},(9)v3(x,y)={v2(x-1,y)+v2(x,y)+v2(x+1,y)}{|v2(x-1,y)+v2(x,y)+v2(x+1,y)|},(10)v′(x,y)={v3(x,y-1)+v3(x,y)+v3(x,y+1)}{|v3(x,y-1)+v3(x,y)+v3(x,y+1)|},(11)其中,v1(x,y),v2(x,y)分别为点p的两个对角邻域的点对其平滑后的结果;v3(x,y)分别为点p水平近邻点对其平滑后的值;v′(x,y)为最后平滑后的矢量场;||表示对切矢量取模运算•

2•2产生纹理参考图像

实验发现,进行LIC绘制时,如果严格按照结构矢量场数据处理源图像,绘制效果并不能呈现很强的流体波动感•在实际创作中,画笔在具有一定走势的情形下又带有随意性,在流体艺术图中这种随意性更加显著•因此为了更好地模拟这种创作的随意性,本文对源图像进行随机扰动,以一定百分比加入高斯噪声获得纹理参考图像,这样就使得绘制在结构矢量场控制下又能保证一定的自由度,同时整个画面颜色也能呈现活泼、跳跃的效果•

2•3自适应流体艺术图的LIC绘制

1993年,Cabral等人[4]提出了经典的LIC算法,该算法的基本思想是把图像矢量场v和纹理参考图像IR作为输入,根据矢量场数据对参考图像进行卷积,获得输出图像Iout•假定σ(s)是一条经过点p0且长度为2L的流线,则p0处的输出值为流线所经点按照卷积核函数进行积分得到.利用LIC算法产生流体艺术图,积分步长steplen和积分步数w是影响算法效率和精度的两个主要因素:步长太大结果很快就会发散而导致不可用;步数越多则会降低计算效率;同时固定的步长和步数又会使得整个流线轨迹过于生硬,缺乏变化•本文考虑到算法执行效率和精度要求,提出了一种自适应LIC方法,使积分步数和步长能够根据图像的局部特征自适应地变化•

2•3•1可变的积分步数、积分步长本文基本思路是根据结构矢量场数据变化的剧烈程度动态地改变相邻样本点间的积分步长[6],在方向变化较平坦的区域采用较长的积分步长,而在方向变化较剧烈的地方则相应地减小积分步长•由于结构矢量场中各点的梯度能够较好地表达矢量场中曲线的倾斜程度,因此我们选用x方向的导数来表征结构矢量场中矢量变化的剧烈程度,表示为函数E(v)=dv/dx•设定方向变化阈值为Emax,最大步长为maxsteplen,则下一样本点距离当前点的步长为steplen=maxsteplen×E/Emax•(14)对于积分步数,我们采用图像局部细节分布情况加以控制:当前点的邻域内细节越丰富则积分步数越小;邻域越平滑积分步数越大•由于区域标准差std(p)能较好地描述邻域内细节丰富程度,本算法通过函数w(p)产生当前点p0所需的积分.

2•3•2生成样本点计算出积分步长和步数后便可产生卷积所需的样本点•假定当前处理点为p0,其积分步数为w(p0),则共需w(p0)+1个采样点,记为集合:pi|i=-w2,-w-12,…,-1,0,1,…,w2•我们根据结构矢量场数据产生这w(p0)+1个点,假定p0点在结构矢量场中的方向为α(p0)(如所示),p-1,p1点分别为沿方向π+α(p0),α(p0)产生的两个样本点,且距离p0为steplen(p0):xp-1=steplen(p0)×cos(π+α(p0)),yp-1=steplen(p0)×sin(π+α(p0))•(18)xp1=steplen(p0)×cos(α(p0)),yp1=steplen(p0)×sin(α(p0))•(19)其余样本点按如下规则产生:当1<i<w(p0)/2时,pi+1为沿方向α(pi)且距离pi为steplen(pi)产生的点,即xpi+1=steplen(pi)×cos(α(pi)),ypi+1=steplen(pi)×sin(α(pi))•(20)当-w(p0)<i<-1时,沿方向α(pi)且距离pi为steplen(pi)产生pi-1,即xpi-1=steplen(pi)×cos(α(pi)),ypi-1=steplen(pi)×sin(α(pi))•(21)当w(p0)+1个样本点确定后,算法在RGB空间三通道中分别对纹理参考图像中这w(p0)+1个点进行卷积,获得p0点在输出图像中的新值.

2•4颜色模拟

自适应LIC绘制结束后虽能获得流体效果,但因源图像颜色可能过于单一,不能获得油画般丰富、生动的颜色效果,为此,需要对源图像进行渲染,模拟油画的颜色特征•本文采用Erik等人[7]的方法模拟流体艺术参考图像的颜色特征:首先将LIC绘制效果和流体艺术参考图IFlow从RGB空间转换到ιαβ空间,降低各通道间的相关性;再对绘制效果的亮度通道和彩色通道分别进行统计逼近,使其近似于流体艺术参考图的分布;最后再把渲染效果转换到RGB空间获得输出图像Iout•渲染方式如下:ι*=ι-〈ιout〉,α*=α-〈αout〉,β*=β-〈βout〉,(26)ι′=σιFlow/σιout+〈ιFlow〉,(27)α′=σαFlow/σαoutα*+〈αFlow〉,(28)β′=σβFlow/σβ*out+〈βFlow〉,(29)其中,〈ιout〉,〈αout〉,〈βout〉,〈ιFlow〉,〈αFlow〉,〈βFlow〉,σιout,σαout,σβout,σιFlow,σαFlow,σβFlow分别为LIC绘制结果图像和流体艺术参考图IFlowι,α,β通道的均值和方差•

3实验结果

本文选取多幅彩色图片来验证本文方法的可行性和有效性,运行环境是:Matlab6•5,P733CPU,256MB内存•模拟绘制1、模拟绘制2均采用梵高的自画像作为流体艺术参考图像,如(a)所示•(b)为模拟绘制1的源图像,大小为175×227;(c)为结构矢量场;(d)为对源图像随机扰动后的效果,共随机产生175×227×19%个高斯噪声•图6(e),(f)分别为设置不同参数后的LIC绘制效果,(e)中nummin=2,nummax=16,(f)中nummin=2,nummax=6•可以看出,两幅图的整个画面都能够呈现出活泼的流体波动感,但(f)中由于采样点范围更小,因此绘制效果显得更加细腻,(e)整个画面则更加粗犷、狂野•但两幅图像颜色仍比较单一,表现力不够强烈•(g),(h)分别为绘制效果1、绘制效果2的颜色渲染效果,可以看出渲染后两幅图像的画面颜色更加丰富,色彩更加鲜明、突出,表现力更加强烈•4结论本文应用LIC算法进行非真实感绘制,对源图像亮度分量的切矢量场进行增强、平滑处理获得结构矢量场,用结构矢量场控制整个LIC绘制过程•同时随机扰动源图像产生纹理参考图像,使得整个绘制画面充满灵动、活泼的波动感•在绘制过程中自适应地调整步长、步数,使得绘制效果粗糙感和细腻感获得不同程度的体现•最后对绘制效果进行颜色渲染,模拟出油画丰富的颜色效果•由于该算法无需模拟真实的画笔,对于不懂绘画技巧的人更容易学习、掌握•在未来工作中,我们将把该算法扩展到视频动画处理方面,开发出一种能够对视频动画进行快速风格渲染的软件.

文档上传者