本发明专利技术公开了一种基于增量Voronoi序列的分层油画笔刷绘制方法,首先使用增量Voronoi序列和图像切线方向场确定笔刷流线;然后依据笔刷流线使用笔刷的样式与笔刷高度场进行纹理贴图对笔刷流线进行渲染模拟油画的物理效果;最后使用不同尺度的笔刷按照从大到小的顺序迭代并绘制出最终结果。本发明专利技术不仅能模拟真实的油画绘制过程,而且生成的油画效果层次感强,充分体现了图像的结构特征和油画细节。
An incremental Voronoi sequence based brush painting method for layered oil painting
【技术实现步骤摘要】
一种基于增量Voronoi序列的分层油画笔刷绘制方法
本专利技术属于非真实感渲染的图像风格化领域,涉及一种基于增量Voronoi序列的分层油画笔刷绘制方法。
技术介绍
为了实现逼真的油画效果,多数传统的图像油画风格化方法通过对油画笔刷的大小、方向等特征进行模拟来生成油画结果。还有一些方法从纹理合成的角度入手,从参考油画图像中提取纹理并应用到目标图像上,以得到油画风格化效果。此外,一些工作使用流体仿真来模拟笔刷、油、画布之间的交互,以获得高度真实感的油画细节。非真实感渲染主要用于突出图像表达的信息,忽略图像当中不重要的细节信息;或者模拟艺术家绘画,生成具有艺术效果的图像。非真实感渲染通常用于模拟各种视觉艺术的绘制风格(如国画、水彩、素描、油画、版画等)或根据具体应用需求来制定渲染风格,在动画、游戏等娱乐领域和工程、工业设计中有着广阔的应用。在非真实感渲染中,将真实图像转化成具有艺术风格的图像是近年来一类热门研究话题。在各种非真实感渲染风格中,油画以悠久的历史、深厚的底蕴和丰富的表现力而广为流传,它既可以精确地描绘场景,也可以通过一定的艺术夸张手段传达画家的情感。创作一幅高质量的油画作品需将绘画工具、技巧和经验有效的结合。
技术实现思路
针对现有技术中的缺陷和不足,本专利技术提供了一种基于增量Voronoi序列的分层油画笔刷绘制方法,采用不同尺度的笔刷按照从粗到细的顺序逐层绘制的方法。为达到上述目的,本专利技术采取如下的技术方案:一种基于增量Voronoi序列的分层油画笔刷绘制方法,根据增量Voronoi序列和图像切线方向场确定笔刷流线,并依据笔刷流线使用不同尺度的笔刷按照从粗到细的顺序逐层绘制得到最终绘制结果,具体包括以下步骤:步骤1、确定输入内容及初始化:步骤1.1,输入目标图像、笔刷、增量Voronoi序列和当前层画布,初始状态时的当前层画布为白色画布;步骤1.2,定义采样点计数器,并设置其值为0;定义笔刷流线顶点数组,顶点数组中包含绘制一笔笔刷流线所需点的坐标,并设置该顶点数组为空;步骤2、计算步骤1.1中的当前层画布与目标图像间各位置的像素差异;利用Sobel滤波计算目标图像各位置的切线方向;步骤3、生成笔刷流线并进行渲染:步骤3.1,比较采样点计数器的值和增量Voronoi序列长度的大小,若采样点计数器的值小于增量Voronoi序列的长度,执行下一步;否则,转步骤4;步骤3.2,通过采样点计数器的值得到增量Voronoi序列相应值,得到当前笔刷流线的初始位置,将该位置记为当前位置;得到当前位置的切线方向和颜色值;将采样点计数器的值增加1;步骤3.3,确定笔刷流线的顶点数组:步骤3.3.1,比较当前笔刷流线的顶点数组的长度与笔刷绘制的最长长度;若顶点数组的长度小于笔刷绘制的最长长度,执行下一步;否则,转步骤3.4生成并渲染笔刷流线;步骤3.3.2,对当前位置的像素差异、切线方向及颜色值进行阈值判断;若没有超出阈值,执行下一步;否则,转步骤3.4生成并渲染笔刷流线;步骤3.3.3,判断当前位置是否在当前层已经被绘制;若没有被绘制,执行下一步;否则,转步骤3.4生成并渲染笔刷流线;步骤3.3.4,将当前位置加入到顶点数组中;步骤3.3.5,根据当前位置的切线方向和笔刷半径计算新的当前位置,并利用新的当前位置更新当前位置,同时,转步骤3.3.1,对更新后的当前位置循环执行步骤3.3.1至3.3.5,直至笔刷流线顶点数组的长度大于笔刷绘制的最长长度则转步骤3.4;步骤3.4,根据笔刷流线的顶点数组生成笔刷流线并进行渲染:步骤3.4.1,比较顶点数组的长度与笔刷绘制的最短长度,若顶点数组的长度大于笔刷绘制的最短长度,执行下一步;否则,否则,将笔刷流线的顶点数组置空并转步骤3,循环步骤3.1至3.4绘制更多的笔刷流线;步骤3.4.2,连接顶点数组中各顶点生成笔刷流线,依据笔刷流线使用笔刷的样式与笔刷高度场进行纹理贴图对笔刷流线进行渲染;同时,将笔刷流线的顶点数组置空并转步骤3,循环步骤3.1至3.4绘制更多的笔刷流线,直至采样点计数器的值大于等于增量Voronoi序列的长度,转步骤4;步骤4,输出当前层画布,并采用输出的当前层画布作为步骤1的输入,同时更换笔刷的半径,再次执行步骤1至步骤4进行下一层画布的绘制,n次迭代后得到最终油画绘制结果。本专利技术还包括如下技术特征:具体的,步骤1所述笔刷的属性包括笔刷的样式、笔刷高度场、笔刷的半径、笔刷绘制的最长长度及笔刷绘制的最短长度。具体的,所述增量Voronoi序列的生成为:首先在采样空间内随机生成种子点,根据种子点对采样空间进行Voronoi划分,从而得到对应的Delaunay三角形;然后,将Delaunay三角形中最大外接圆的圆心作为新的采样点加入到增量Voronoi序列;最后,通过不断的迭代生成最终的增量Voronoi序列;增量Voronoi序列最终样本点的数量为该序列的长度。具体的,步骤3.3.2所述的阈值判断包括:从步骤2中得到的当前层画布和目标图像各位置的像素差异中当前位置的像素差异;从步骤2中得到的目标图像各位置的切线方向中当前位置的切线方向与顶点数组中位于当前位置前一位置切线方向的差值;当前位置坐标与笔刷流线的顶点数组的第一个顶点坐标的颜色值差值。本专利技术与现有技术相比,有益的技术效果是:本专利技术提供的一种基于增量Voronoi序列的分层油画笔刷绘制方法,采用不同尺度的笔刷按照从粗到细的顺序逐层绘制。不仅能模拟真实的油画绘制过程,而且生成的油画效果层次感强,充分体现了图像的结构特征和油画细节。附图说明图1为本专利技术方法的绘制流程图;图2为本专利技术方法的增量Voronoi序列的采样点分布图;图3为本专利技术方法绘制一笔笔刷流线的流线生成及渲染图,其中,图3(a)为一笔笔刷流线顶点数组中的各顶点;图3(b)为连接顶点数组中各顶点生成的笔刷流线;图3(c)为使用笔刷的样式对笔刷流线进行渲染的结果;图3(d)为使用笔刷的样式和笔刷高度图对笔刷流线进行渲染的结果;图4为本专利技术方法从大到小不同笔刷半径的笔刷流线图,其中,图4(a)为目标图像;图4(b)为第一层笔刷流线图;图4(c)为第二层笔刷流线图;图4(d)为第三层笔刷流线图;图5为本专利技术方法从大到小不同笔刷半径逐层绘制的结果,其中,图5(a)为目标图像;图5(b)为第一层油画绘制结果;图5(c)为第二层油画绘制结果;图5(d)为最终油画绘制结果。具体实施方式本专利技术给出一种基于增量Voronoi序列的分层油画笔刷绘制方法,如图1所示为本方法的绘制流程图,根据增量Voronoi序列和图像切线方向场确定笔刷流线;然后依据笔刷流线使用笔刷的样式与笔刷高度场进行纹理贴图对笔刷流线进行渲染模拟油画的物理效果;再使用不同尺度的笔刷按照从大到小的顺序迭代并绘制出最终结果。本实施方式中的增量V本文档来自技高网...
【技术保护点】
1.一种基于增量Voronoi序列的分层油画笔刷绘制方法,其特征在于,根据增量Voronoi序列和图像切线方向场确定笔刷流线,并依据笔刷流线使用不同尺度的笔刷按照从粗到细的顺序逐层绘制得到最终绘制结果,具体包括以下步骤:/n步骤1、确定输入内容及初始化:/n步骤1.1,输入目标图像、笔刷、增量Voronoi序列和当前层画布,初始状态时的当前层画布为白色画布;/n步骤1.2,定义采样点计数器,并设置其值为0;定义笔刷流线顶点数组,顶点数组中包含绘制一笔笔刷流线所需点的坐标,并设置该顶点数组为空;/n步骤2、计算步骤1.1中的当前层画布与目标图像间各位置的像素差异;利用Sobel滤波计算目标图像各位置的切线方向;/n步骤3、生成笔刷流线并进行渲染:/n步骤3.1,比较采样点计数器的值和增量Voronoi序列长度的大小,若采样点计数器的值小于增量Voronoi序列的长度,执行下一步;否则,转步骤4;/n步骤3.2,通过采样点计数器的值得到增量Voronoi序列相应值,得到当前笔刷流线的初始位置,将该位置记为当前位置;得到当前位置的切线方向和颜色值;将采样点计数器的值增加1;/n步骤3.3,确定笔刷流线的顶点数组:/n步骤3.3.1,比较当前笔刷流线的顶点数组的长度与笔刷绘制的最长长度;若顶点数组的长度小于笔刷绘制的最长长度,执行下一步;否则,转步骤3.4生成并渲染笔刷流线;/n步骤3.3.2,对当前位置的像素差异、切线方向及颜色值进行阈值判断;若没有超出阈值,执行下一步;否则,转步骤3.4生成并渲染笔刷流线;/n步骤3.3.3,判断当前位置是否在当前层已经被绘制;若没有被绘制,执行下一步;否则,转步骤3.4生成并渲染笔刷流线;/n步骤3.3.4,将当前位置加入到顶点数组中;/n步骤3.3.5,根据当前位置的切线方向和笔刷半径计算新的当前位置,并利用新的当前位置更新当前位置,同时,转步骤3.3.1,对更新后的当前位置循环执行步骤3.3.1至3.3.5,直至笔刷流线顶点数组的长度大于笔刷绘制的最长长度则转步骤3.4;/n步骤3.4,根据笔刷流线的顶点数组生成笔刷流线并进行渲染:/n步骤3.4.1,比较顶点数组的长度与笔刷绘制的最短长度,若顶点数组的长度大于笔刷绘制的最短长度,执行下一步;否则,否则,将笔刷流线的顶点数组置空并转步骤3,循环步骤3.1至3.4绘制更多的笔刷流线;/n步骤3.4.2,连接顶点数组中各顶点生成笔刷流线,依据笔刷流线使用笔刷的样式与笔刷高度场进行纹理贴图对笔刷流线进行渲染;同时,将笔刷流线的顶点数组置空并转步骤3,循环步骤3.1至3.4绘制更多的笔刷流线,直至采样点计数器的值大于等于增量Voronoi序列的长度,转步骤4;/n步骤4,输出当前层画布,并采用输出的当前层画布作为步骤1的输入,同时更换笔刷的半径,再次执行步骤1至步骤4进行下一层画布的绘制,n次迭代后得到最终油画绘制结果。/n...
【技术特征摘要】
1.一种基于增量Voronoi序列的分层油画笔刷绘制方法,其特征在于,根据增量Voronoi序列和图像切线方向场确定笔刷流线,并依据笔刷流线使用不同尺度的笔刷按照从粗到细的顺序逐层绘制得到最终绘制结果,具体包括以下步骤:
步骤1、确定输入内容及初始化:
步骤1.1,输入目标图像、笔刷、增量Voronoi序列和当前层画布,初始状态时的当前层画布为白色画布;
步骤1.2,定义采样点计数器,并设置其值为0;定义笔刷流线顶点数组,顶点数组中包含绘制一笔笔刷流线所需点的坐标,并设置该顶点数组为空;
步骤2、计算步骤1.1中的当前层画布与目标图像间各位置的像素差异;利用Sobel滤波计算目标图像各位置的切线方向;
步骤3、生成笔刷流线并进行渲染:
步骤3.1,比较采样点计数器的值和增量Voronoi序列长度的大小,若采样点计数器的值小于增量Voronoi序列的长度,执行下一步;否则,转步骤4;
步骤3.2,通过采样点计数器的值得到增量Voronoi序列相应值,得到当前笔刷流线的初始位置,将该位置记为当前位置;得到当前位置的切线方向和颜色值;将采样点计数器的值增加1;
步骤3.3,确定笔刷流线的顶点数组:
步骤3.3.1,比较当前笔刷流线的顶点数组的长度与笔刷绘制的最长长度;若顶点数组的长度小于笔刷绘制的最长长度,执行下一步;否则,转步骤3.4生成并渲染笔刷流线;
步骤3.3.2,对当前位置的像素差异、切线方向及颜色值进行阈值判断;若没有超出阈值,执行下一步;否则,转步骤3.4生成并渲染笔刷流线;
步骤3.3.3,判断当前位置是否在当前层已经被绘制;若没有被绘制,执行下一步;否则,转步骤3.4生成并渲染笔刷流线;
步骤3.3.4,将当前位置加入到顶点数组中;
步骤3.3.5,根据当前位置的切线方向和笔刷半径计算新的当前位置,并利用新的当前位置更新当前位置,同时,转步骤3.3.1,对更新后的当前位置循环执行步骤3.3.1至3.3.5,直至笔刷流线顶点数组的长度大于笔刷绘制的最长长度则转步骤...
【专利技术属性】
技术研发人员:柳有权,荆树旭,陈颖,
申请(专利权)人:长安大学,
类型:发明
国别省市:陕西;61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。