一种基于小波变换的多尺度铅笔画生成算法
2016-12-28赵春晖
赵春晖,高 冰
(哈尔滨工程大学 信息与通信工程学院,哈尔滨 150001)
一种基于小波变换的多尺度铅笔画生成算法
赵春晖,高 冰
(哈尔滨工程大学 信息与通信工程学院,哈尔滨 150001)
近年来,非真实感绘制技术(non-photorealistic rendering,即NPR)在娱乐视频、医学等方面都有广泛的应用。现存的许多自然图像铅笔画生成算法,效果都不太理想,存在如铅笔画边缘线条粗重或者层次不够突出、缺少细节等一系列问题。在分析了传统的铅笔画生成算法的基础上,提出了一种改进的自然图像的铅笔画生成算法。该算法仿照艺术家手工绘制铅笔画的过程,使用小波变换的多尺度方法生成铅笔线条轮廓图,使得到的线条轮廓图保留了更多的细节信息且边缘线条不会十分粗重;再利用直方图匹配的方法得到与艺术家手工绘制铅笔画相同的色调,并使用一个优化将色调与铅笔画的纹理图结合从而得到色调纹理图;最后将线条轮廓图与色调纹理图合并得到效果良好的铅笔画。通过将该算法应用在各类图像上,发现由该算法得到的铅笔画效果与现存铅笔画生成算法相比,不仅保留了更多的细节,而且更加接近艺术家手工绘制的铅笔画。
自然图像; 铅笔画; 小波变换; 多尺度
随着生产生活的改善,以及图像采集设备的不断普及与使用,使得大众在生活上有了更多艺术上的追求,为了满足大众的喜好,学者们致力于将照片处理成铅笔画、漫画和油画等,久而久之这种艺术风格便逐渐成为一种娱乐方式。尤其是在使用非真实感绘制(NPR)技术[1]模拟绘制铅笔画时,通过使用明暗效果不同的线条以及各种色调,从而形成一种简单的、自然的效果,这种效果顿时吸引了大众和学者的目光。因此基于自然图像的铅笔画模拟绘制技术早已成为一个研究热点。
目前,铅笔画的仿真绘制技术分为基于三维空间和基于图像空间。基于三维空间的目的在于将其处理为风格化的场景或者模型。其中比较有代表性的是Sousa等提出的通过对纹理的合成、作画方法和绘制步骤的模拟来实现一种基于模型的三维铅笔画绘制方法[2];基于图像空间的铅笔画绘制技术随着数码相机的普及,使其得到高清图片比构建场景的三维模型更容易,因此广大学者更加倾向于研究基于二维模型的铅笔画仿真技术。
迄今为止,基于自然图像的计算机模拟绘制铅笔画的生成算法已经提出了好多。文献[3]和文献[4]中提出的PencilSketch2D 绘图系统,是人机交互式的模拟绘制铅笔画的技术,此方法需要大量的人力,因此应用范围不广。2012年,Lu等[5]在NPAR会议上发表了英文论文《Combing Sketch and Tone for PencilDrawing Production》,提出了一种模仿艺术家创作铅笔画的流程算法,从而对传统的模拟绘制铅笔画生成方法进行了改进。而本文算法的思想是建立在Lu等人的算法基础上,在产生线条的步骤上使用了小波多尺度分析方法,从而使最终铅笔画结果保留了更多的画面细节,更加贴近艺术家创作过程,也更加符合人眼的审美。
Mao X.等[6]在2001年发表了有关铅笔画绘制方法的论文,其主要方法是利用线积分卷积(LIC)提供流场的纹理方向的特点,将白噪声图像和向量场作为输入进行卷积运算,从而生成了具有铅笔画风格的纹理图像。2003年,李重等[7]提出了基于傅里叶变换的图像素描效果生成算法,其主要通过将灰度图像分别进行傅里叶正和逆变换,然后将每点的灰度值倒置求反,最后对图像进行锐化和平滑等处理从而实现图像的铅笔画效果。孙硕等[8]提出的一种有效的基于区域的铅笔画方法是一种新的基于线性卷积积分(LIC)的自动铅笔画生成方法,首先对图像进行图像分割,然后提出一种新的基于区域的白噪声和纹理方向的生成方法。同年,何伟强[9]提出将图像进行梯度和反相处理,然后再将图像灰度化,最后产生一个画面细腻的铅笔画生成算法。谢党恩等[10]提出一种铅笔滤镜生成算法及其在GPU上的实现,该算法通过分析真实的铅笔纹理的结构特征,抽象出铅笔笔画的简单数学模型,并根据该模型确定其对应的笔刷模板,进行获得铅笔画的纹理。这是一种借助于图形处理单元(GPU)实现的铅笔画算法。桑桑等[11]突破了传统的铅笔画生成算法中图像分割的限制,提出了一种基于纹理和边缘轮廓的铅笔画自动生成算法。程佳等[12]利用线性卷积(LIC)方法,自适应地处理图像,将绘制结果和通过霓虹处理得到的轮廓效果想结合得到效果较好的铅笔画。
随着学者对铅笔画生成算法的进一步研究,使得铅笔画的生成算法也日渐趋于成熟,但是这些方法往往只关注了画面整体的艺术风格,忽略了画面中的细节与层次信息,存在如铅笔画边缘线条粗重使其看起来像漫画或者层次不够突出、缺少细节等一系列问题,因此效果都差强人意。本文分析研究了Lu等人的算法框架,并且根据Lu等人的算法框架为基础提出了基于小波变换的多尺度线条轮廓提取方法,从而得到了多尺度的线条轮廓的生成过程,并使最终生成的线条轮廓图不仅包含不同层次的轮廓信息,还包含了画面中的重要细节信息[13]。
1 自然图像的铅笔画生成过程
图1 算法框图Fig.1 Algorithm block diagram
本文算法是建立在Lu等人算法基础上提出多尺度的线条轮廓生成过程,使得最终生成的线条轮廓图保留了更多的细节,从而能够更加准确的传达图像的思想。Lu等人的铅笔画生成算法不同于传统的铅笔画生成算法,它是完全仿照艺术家绘制艺术作品时的流程从而生成的算法,其算法框图见图1,主要分为3步:①Line Drawing Strokes 得到一幅线条轮廓图S;②Tone Mapping 得到一幅色调纹理图T;③将S和T合并得到最终结果,即R=S+T。
铅笔画线条的生成和底纹色调的生成同样重要,因为它们两者的效果相得益彰。其铅笔画效果图见图2,Lu等人算法生成的铅笔画不仅有铅笔画的整体线条轮廓,而且和艺术家手工绘制时使用的色调纹理图十分相似,大致符合人眼的视觉审美。但是该算法在提取线条时没有考虑到不同尺度的细节信息与层次性,因此本文提出基于小波变换的多尺度铅笔画线条生成算法,从而得到不同尺度的线条轮廓,使得最终铅笔画能够保留更多的细节。本文重点叙述小波变换的多尺度线条轮廓图生成算法,不再赘述色调纹理图的生成。
图2 Lu等人的铅笔画算法生成结果图Fig.2 Result of Lu′s penciled drawing generation algorithm
2 铅笔画线条轮廓生成算法
2.1 Lu等人的铅笔画线条生成算法
本文的铅笔画算法是在Lu等人的铅笔画算法框架的基础上提出的。Lu等人为了得到良好的铅笔画线条轮廓图,对梯度图进行了两次8个方向的卷积。
将输入的图像转变成灰度图像,然后计算这个灰度图像的梯度。首先计算幅度,公式如下:
(1)
其中G是灰度图像。∂x是水平方向的梯度,∂y是竖直方向的梯度。但是使用这个公式得到的结果里面含有太多的噪声并且边缘部分的线条有很多不连续的。为了得到更加稳定的效果,Lu等人采用以下方法。
这里采用22.5°旋转的方法选取8个方向,每个方向表示为φi,i∈{1…8}。对于每个确定方向的响应,计算如下:
Gi=φi*G
(2)
其中φi是第i个方向的线段,它被认为是一个卷积核,即φi为第i个方向的滤波核。卷积核的长度在Lu等的算法中设置成了图像长度或者宽度的1/30,颜色梯度沿着方向i形成滤波器响应图Gi。
得到各个方向的卷积结果后,对每一个像素点,具有最大卷积值的那一个方向的响应设置为G,其他方向设置为0,表示为:
(3)
其中p表示像素位置,Ci表示方向i的结果线条图。
取出8个方向的最大值再次进行滤波从而得到平滑的效果,然后将8个方向的结果合起来便会得到铅笔线条的结果:
(4)
合并得到的铅笔线条是在黑色背景上的白色线条图。通过对白色线条S′逐像素值取反,从而得到在白色背景上的黑色线条图S,为了得到组合成铅笔画效果图的线条图将其规范化到[0,1]。
2.2 基于小波变换的多尺度铅笔画线条轮廓生成算法
本文提出的基于小波变换的算法主要利用提升小波变换,从而提取不同尺度的轮廓与细节信息并合并最为线条轮廓图。提升小波变换过程可以分为分裂、预测、更新、重构4个步骤[14]。
首先,初始信号设为λ0,k,其分裂后的两个互不相交的奇数子集和偶数子集表达式如下:
λ-1,k=λ0.2,l,γ-1,k=λ0.2l+1
(5)
然后假设预测算子为p,则有
γ-1.k=P(λ-1,k)
(6)
预测算子p反映数据之间的关系,一般指分裂步骤之后的某一个像素与周围像素之间的波动情况。
经过分裂和预测可以得到图像的高频部分,即细节部分,但是要注意低频数据会发生改变,也就意味着和原始数据不一致,因此需更新从而避免低频数据产生差别而出错。更新过程的表达式如下:
λ-1,k=U(γ-1,k)
(7)
最后的重构就是将分解过程中的预测算子和更新算子中的“+”或“-”符号改成相反符号即可。
把图像的每一行(每一列)分别看作是一维信号,均对其进行一维提升变换,从而得到了相应的高频子带和低频子带。其中的高频子带的水平、竖直和对角的细节图像利用图像融合得到尺度1上的细节线条图;低频子带为尺度1上的轮廓图。若想对图像继续进行下一尺度的分解或者任意尺度的分解,可以对一级小波分解得到的低频子带继续做相同的操作[15-16]。在提升变换时,本文选择D5/3小波作为小波基。
D5/3小波又叫CDF(2,2)小波,只有一次提升的过程,其变换公式如下:
(8)
提升小波变换有许多不同的组合方法,本文进行了许多验证,最终选取效果较好的两种方法进行具体说明,并给出了两者的对比效果图。
2.2.1 小波变换的组合方法一
图3 方法一框图Fig.3 Block diagram of the first method
组合方法一对输入的灰度图像只进行一级小波分解,得到高频子带和低频子带,将低频子带的数据信息置为0,然后将高频子带中的水平、竖直和对角方向的子图像还原,将其与原图像提取的线条轮廓图进行合并,最后得到具有交叉感的铅笔画效果(图3)。通过组合方法一得到的尺度1上的铅笔画效果图见图4,图4(a)是原图,图4(b)是尺度1上的细节笔画,图4(c)是黑色背景下的白色线条图,图4(d)是白色背景下的黑色线条图。
这里需要注意的是所要合并的图像必须要大小一样。
图4 尺度1上的笔画效果,以及其合并后的效果图Fig.4 Impression drawings of scale 1 and combinating
2.2.2 小波变换的组合方法二
图5 算法二框图Fig.5 Block diagram of the second method
组合方法二将输入的灰度图像进行二级小波变换。首先使用一级小波变换,将得到的低频子带的数据信息置为0,高频子带的水平、竖直和对角的子图像进行还原,然后提取图像线条轮廓图;在进行二级小波变换,对低频和高频子带的处理方法同上,然后进行二次还原。最后将这两者合并在一起得到最后的线条轮廓图(图5)。通过组合方法二得到的尺度2上的铅笔画效果图见图6,原图见图6(a),一级小波分解的线条轮廓图见图6(b),一级小波分解的线条轮廓图见图6(c),合并后的笔画效果图见图6(d)。
在组合方法一和方法二中本文将低频子带的数据信息置为0,因此在图中不需要显示。
图6 尺度2上的笔画效果,以及其合并后的效果图Fig.6 Impression drawing of scale 2 and combination
3 仿真实验与分析
本文简要介绍了几种现有的铅笔画生成算法,重点研究了基于小波变换的多尺度分析算法的理论精髓,以实现对自然铅笔画算法的改进以及创新,将本文算法应用在各类图像上也都能得到良好的效果。
基于小波变换的多尺度铅笔画生成算法是在Lu等人的铅笔画的算法基础上实现的,应用在人物图像上的铅笔画效果图见图7。原图见图7(a),本文方法一和方法二的铅笔画效果图见图7(b)和图7(c),文献[9]中算法的铅笔画效果图见图7(d)。可以发现本文提出的两种方法都可以得到具有交叉感的线条,在最终的铅笔画效果图中,方法一可以保留更多原图的笔画细节,方法二能够更好的处理图像边缘。文献[9]中算法也能得到铅笔画效果的图像,但是画面细节信息丢失的比较严重,同时线条轮廓也不够清晰。
应用在植物图像上的铅笔画效果图见图8。原图见图8(a),文献[5]中算法的铅笔画效果图见图8(b),本文方法一和方法二的铅笔画效果图见图8(c)和图8(d)。3种方法都能够得到良好的铅笔画效果图,但是小波变换的算法采用了多尺度生成线条,因此得到更多的细节,尤其是通过方法一得到的铅笔画,花朵的边缘轮廓信息十分明显。
图7 小波变换的铅笔画线条轮廓图Fig.7 The pencil sharpener drawing line contour map of wavelet transform
图8 小波变换算法与文献[5]算法的铅笔画效果图Fig.8 Impression drawing of wavelet transform algorithm and Lu′s algorithm
应用在建筑物图像上的铅笔画效果图见图9。原图见图9(a),本文方法一和方法二的铅笔画效果图见图9(b)和图9(c),文献[7]中算法的铅笔画效果图见图9(d)。本文提出的小波变换组合方法一以及组合方法二都能够较好的传递出原图的场景信息,并且得到效果良好的铅笔画效果图像,而文献[7]等人算法的铅笔画效果图勾勒出了原图的轮廓,但是线条不够清晰,同时缺少了对于细节信息的处理导致细节信息比较模糊。
图9 文献[7]算法和小波变换的算法的铅笔画效果图Fig.9 Impression drawings of Li Zhong′s algorithm[7] and wavelet transfony algorithm
4 结 论
在对Lu等人模拟绘制铅笔画生成算法的学习、分析过程中,发现其在提取线条轮廓图时没有考虑多尺度的线条信息从而造成图像一些细节的丢失。本文依据其生成铅笔画算法的框架,重点学习基于小波变换的多尺度分析算法的理论精髓,通过使用小波提升变换公式对自然图像进行多尺度提取线条轮廓信息,得到多尺度的铅笔画线条轮廓图,使得最终的铅笔画保留了更多的细节信息,并且实现对原有算法的改进。
[1] Winkenbach G,Salesin D H.Computer-generated pen-and-ink illusration[C]//Proceedings of the 21stAnnual Conference on Computer Graphics and Interactive Techniques.New York:ACM Press,1994:91-100.
[2] Sousa M C,Buchanan J W.Computer generated graphite pencil rendering of 3D polygonal models[J].Computer Graphics Forum,1999,18(3):195-208.
[3] Vermeulen A H,Tanner P P.PencilSketch-a pencil-based paint system[C]//Proceedings of Graphics Interface’89 Conference,1989.
[4] Sousa M C,Buchanan J W.Observational model of blenders and erasers in computer-generated pencil rendering[C]//Proceedings Conference on Graphics Interface ’99,1999:157-166.
[5] Lu C W,Li X,Jia J Y.Combining sketch and tone for pencil drawing production [C]//Proceedings of Symposium on Non-Photorealistic Animation and Rendering.Aire-Ia-Ville,Switzer-land: Eurographics Association,2012:65-73.
[6] Mao X,Nagasaka Y,Imamiya A.Automatic Generation of Pencil DrawinG from 2D Images Using Line Integral Convolution[C]//Proceedings of the 7thInternational Conference on Computer Aided Design and Computer Graphics (CAD/GRAPHICS’ 01).2001,1(3):147-159.
[7] 李重,黄教,吴庋标.基于傅里叶变换的图像素描效果生成算法[J].计算机应用研究,2003,5:21-22.
[8] 孙硕,黄东卫.一种有效的基于区域的铅笔画方法[J].计算机工程与应用,2007,43(14):34-37.
[9] 何伟强.一种改进的图像素描生成算法[J].电脑与电信,2009(6):43-44.
[10] 谢党恩,赵杨,徐丹.一种铅笔滤镜生成算法及其在GPU上的实现[J].计算机辅助设计与图形学学报,2008,20(1):26-31
[11] 桑桑,郝鹏翼,丁友东,等.基于纹理和轮廓的铅笔素描画生成方法[J].上海大学学报:自然科学版,2010,16(3):312-317
[12] 程佳,康棣.铅笔画的自适应LIC绘制方法[J].计算机工程与应用,2011,47(16):198-203
[13] 黄志勇,姚远,张晶晶,等.改进的自然图像铅笔画效果生成[J].中国图像学报,2015(227):0437-0444.
[14] 王楠.遥感图像融合算法研究[D].北京:北京化工大学,2004:11-24.
[15] 邵国峰.基于多分辨率分析的图像融合技术研究[D].哈尔滨:哈尔滨工程大学,2013.
[16] 宋清昆,马丽,曹建坤,等.基于小波变换和均值滤波的图像去噪[J].黑龙江大学自然科学学报,2016,33(4):555-560.
An pencil drawing generation algorithm based on wavelet transform multiscale
ZHAO Chun-Hui,GAO Bing
(Collegeofinformationandcommunicationengineering,HarbinEngineeringUniversity,Harbin150001)
In recent years,non-photorealistic rendering(NPR)technology is widely used in the entertainment video,medicine,etc.The generation algorithm of pencil drawing results of many natural image are not satisfactory,and a series of problems exist,for example,the pencil edge lines are so coarse,the painting level is not prominent or the details are not enough.We mainly study the improved pencil drawing generation algorithm.This paper analyzes the traditional pencil drawing generation algorithm,and compare it with some pencil drawing generation algorithm,on this basis,an improved pencil drawing generation algorithm of the natural image is put forward.This algorithm is generated by modeling after the artist's hand drawn pencil drawing process,the line profile map is extracted based on wavelet transform multiscale method to make the line profile map retain more details and the edge lines will not be very coarse; then,using the histogram matching method to obtain the tone which is the same as the tone of artist manual pencil drawing,and the color texture map is obtained using optimization method by combining the tone and pencil texture map; finally,combining the line profile map and the tone texture map to obtain a pencil drawing with good result.Applying the algorithm in this article on all kinds of images,the results show that this algorithm retain more details and the results are more similar to those of the artist’s hand drawn pencil drawing compared with the existing pencil drawing generation algorithm.
natural image; pencil drawing; wavelet transform; multiscale
10.13524/j.2095-008x.2016.04.060
2016-09-12
国家自然科学基金资助项目(61405041,61571145)
赵春晖(1965-),男,黑龙江汤原人,教授,博士,博士研究生导师,研究方向:图像处理与模式识别,E-mail:zhaochunhui@hrbeu.edu.cn。
TN911
A
2095-008X(2016)04-0068-07