图像刺绣特效转化方法和装置与流程

文档序号:30849402发布日期:2022-07-23 05:25阅读:286来源:国知局
图像刺绣特效转化方法和装置与流程

1.本发明涉及图像处理技术领域,尤其涉及一种实时图像刺绣特效转化方法和装置。


背景技术:

2.图像刺绣特效是图像特效的一种,表现为使输入图像呈现出针线刺绣的效果,是一种基于非真实渲染的艺术风格。
3.目前图像刺绣特效的实现主要采用遗传算法、网格划分、多层绘制以及噪声曲线等方法实现的乱针刺绣。特效渲染的实时性和真实感是视频图像处理的重要内容,但已有的刺绣效果渲染缓慢或者感受不佳,内容上缺乏紧凑且规律的刺绣针线纹路,刺绣线条不明显,真实感不强,整体体验较差。


技术实现要素:

4.本发明提供了一种用于图像刺绣特效转化方法、装置以及计算机存储介质。
5.一种实时图像刺绣特效转化方法,包括步骤:计算待转化图像的灰度化图像;对灰度化图像马赛克化,得到马赛克图像;通过每一马赛克区域的水平方向梯度和垂直方向梯度,计算得到绣线段角度;获取每一马赛克区域的中心像素点和中心像素坐标,以马赛克区域中心像素点和绣线段角度绘制绣线段;多次偏移采样叠加绣线段,并根据中心像素的颜色对绣线段着色;输出图像刺绣特效转化后的图像。
6.优选的,所述多次偏移采样叠加绣线段,并着色生成绣线段步骤之后,还包括步骤:对绣线纹理进行立体效果处理:根据每个像素点水平方向和垂直方向相邻两像素的灰度差,计算凹凸贴图;通过所述凹凸贴图对刺绣线条进行凹凸化,得到待输出图像。
7.优选的,所述对灰度化图像马赛克化,得到马赛克图像的步骤,具体包括:根据设定的马赛克尺度参数,所述对灰度化图像马赛克化,根据马赛克尺度参数获取每一马赛克区域的中心像素和中心像素坐标,并将马赛克图像的uv采样坐标转化为中心像素坐标。
8.优选的,所述多次偏移采样叠加绣线段的步骤,具体包括:分别在待转化图像或灰度化图像的uv采样坐标的x方向和y方向添加设置的偏移量,对在马赛克图像上绘制的绣线段进行多次采样叠加。
9.优选的,所述以马赛克区域中心像素点和绣线段角度绘制绣线段的步骤包括:使马赛克区域内的坐标与其中心像素点坐标相同,由待转化图像采样坐标st和马赛克图像uv坐标相减,得到以马赛克区域中心为原点的笛卡尔坐标系,通过原点和角度绘制直线为绣线段。
10.优选的,所述根据中心像素的颜色对绣线段着色的步骤,还包括:绣线段叠加交错处的着色,取叠加像素点中灰度值最大的像素点颜色为着色颜色。
11.优选的,所述通过每一马赛克区域的水平方向梯度和垂直方向梯度,计算得到绣线段角度的步骤,具体包括:采用sobel算子在每个中心像素坐标的马赛克区域中计算所述马赛克图像的水平方向梯度和垂直方向梯度,根据所述水平方向梯度和垂直方向梯度计算当前中心像素坐标所处直线的角度为绣线段角度。
12.优选的,执行所述计算待转化图像的灰度化图像步骤后,还包括步骤:采用预设滤波器对在每个像素n*n周围内对像素求取均值并赋值给当前像素灰度化图像。
13.一种实时图像刺绣特效转化装置,包括:存储单元,存储用于实现上述的实时图像刺绣特效转化方法的计算机程序;处理单元,用于调取存储单元中的计算机程序实现上述的实时图像刺绣特效转化方法;图像输入单元,输入待转化图像;图像输出单元,输出图像刺绣特效转化后的图像。
14.本发明的有益效果:本发明相较于现有技术提出了一种新的图像刺绣特效转化方法,实现直接利用现代图形处理器可编程管线在gpu中加速计算与渲染图像,极大地提升了算法的处理效率,可在移动设备中实时处理。
15.应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
16.附图用于更好地理解本方案,不构成对本发明的限定。其中:图1是根据本发明实施例1的示意图;图2是根据本发明实施例2的示意图;图3是马赛克区域和中心像素示意图;图4是以一个黑色的圆作为范例作为效果展示图。
具体实施方式
17.以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
18.实施例1:一种实时图像刺绣特效转化方法,包括步骤:步骤100,计算待转化图像的灰度化图像;步骤200,对灰度化图像马赛克化,得到马赛克图像;步骤300,通过每一马赛克区域的水平方向梯度和垂直方向梯度,计算得到绣线段
角度;步骤400,获取每一马赛克区域的中心像素点和中心像素坐标,以马赛克区域中心像素点和绣线段角度绘制绣线段;步骤500,多次偏移采样叠加绣线段,并根据中心像素的颜色对绣线段着色;步骤700,输出图像刺绣特效转化后的图像。
19.其中,步骤100具体包括:获取待转化图像,将待转化图像的rgb图像转换为灰度图像,得到灰度化图像。
20.作为一种优选灰度计算公如式(1):gray = dot(vec3(0.3,0.59,0.11), src.rgb);
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ–
公式(1)其中,gray表示当前像素的灰度;src.rgb分别表示当前像素的r、g、b三通道;转化参数0.3,0.59,0.11可以调整。
21.在一种优选的方案中,步骤100还包括对灰度图像滤波的方法,具体采用以下方式:均值滤波采用预设大小的滤波器,在每个像素n*n周围内对像素求取均值并赋值给当前像素,减少噪声对刺绣线条的干扰,均值滤波应用广泛,具体过程不再赘述。
22.其中,步骤200所述对灰度化图像马赛克化,得到马赛克图像的步骤,具体包括:根据设定的马赛克尺度参数n,所述对灰度化图像马赛克化,根据马赛克尺度参数获取每一马赛克区域201(每一黑线方格)的中心像素202和中心像素坐标,并将马赛克图像的uv采样坐标转化为中心像素坐标。
23.详细的,马赛克尺度参数n取3,则如图2所示,每隔width/n列height/n行选取一个中心像素,其中width和height分别为原始图像的宽高,并将其(width/(2*n))*(height/(2*n))邻域内像素的uv采样坐标变为中心像素坐标,通过归一化坐标乘上马赛克尺度参数取整实现,将灰度化图像马赛克化保证当前区域梯度一致。
24.其中,马塞克采样uv坐标公式如式(2):uv = floor(st * n + 0.5) / n + 0.5 / n;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ–
公式(2)其中,st表示归一化0到1的采样坐标;n表示马赛克尺度参数;进一步的,描述步骤300,所述通过每一马赛克区域的水平方向梯度和垂直方向梯度,计算得到绣线段角度的步骤,具体包括:采用sobel算子在每个中心像素坐标的3*3马赛克区域中计算所述马赛克图像的水平方向梯度和垂直方向梯度,根据所述水平方向梯度和垂直方向梯度计算当前中心像素坐标所处直线的角度为绣线段角度。
25.其sobel算子分别为:;;并通过x和y两个方向的梯度计算当前中心像素所处直线的角度,计算公式如式(3):angle = arctan(diry/dirx) + deltaangle;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ–
公式(3)其中,angle表示当前像素所在直线的角度;diry表示y方向的梯度;dirx表示x方
向的梯度;deltaangle表示调节线条角度的变量,用于改变刺绣线条的方向。
26.进一步的关于步骤400,获取每一马赛克区域的中心像素点和中心像素坐标,以马赛克区域中心像素点和绣线段角度在每个马赛克区域内绘制绣线段,具体包括步骤:使马赛克区域内的坐标与其中心像素点坐标相同,由待转化图像采样坐标st和马赛克图像uv坐标相减,得到以马赛克区域中心为原点的笛卡尔坐标系,通过原点(即马赛克区域中心像素点)和角度绘制直线,直线绘制公式如式(4):line = smoothstep(0.0,linewidth,abs(uv2.y
ꢀ‑ꢀ
uv2.x*tan(angle)));
ꢀꢀ–
公式(4)其中,line表示绘制的直线;linewidth表示可调节的直线宽度;uv2表示以马赛克区域中心为原点的采样坐标;angle表示直线的角度。
27.进一步的步骤500,所述多次偏移采样叠加绣线段的步骤,具体包括:分别在待转化图像或灰度化图像的uv采样坐标的x方向和y方向添加设置的偏移量,对在马赛克图像上绘制的绣线段进行多次采样叠加。
28.其中,采样坐标计算如式(5):uv = uv + vec2(offsetx * i,offsety * j);
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ–
公式(5)其中,uv为采样坐标;offsetx为x方向的偏移量;offsety为y方向的偏移量;i表示x方向的偏移倍数;j表示y方向的偏移倍数;例如,uv = uv+ vec2(1.0/width, 1.0/height),以这个坐标采样的图是一张待转化图像(原图)左移一个单位,右移一个单位的图,像素的变化为 p(i,j) = p(i+1, j+1)。
29.进一步的步骤500,多次采样叠加后根据中心像素的颜色对绣线段着色,即完成了一种刺绣特效转化的图像。
30.作为一种优选方案,为了使得线条叠加后更加自然需要进行进一步的处理,由于每根绣线段只有一种颜色,通过与其所在的马赛克区域的中心像素颜色相乘得到,则多线条叠加后会出现混色情况,为了解决这一情况,对绣线段叠加交错处的着色进行进一步处理。即,取叠加像素点中灰度值最大的像素点颜色为着色颜色。
31.详细的,可以理解为绣线段叠加交错处的颜色取像素点颜色采用较亮的绣线段颜色,通过比较每跟绣线段的灰度值得到,计算公式如式(6):
ꢀꢀ

ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ–
公式(6)其中,p.rgb表示线条交织处的像素点的颜色值;p1.gray和p2.gray分别表示两条交织的线段;p1.rgb和p2.rgb分别表示两条交织线段的颜色值。
32.例如,设p表示交叉点,p1表示线段1,p2表示线段2,比较两条线段的灰度值,选择灰度值大的那根线的颜色作为交叉点p的颜色。
33.如图4,以一个黑色的圆作为范例作为效果展示,图4中的a是待转化图像的灰度化图像之后的马赛克图像;图4中的b是计算每个马赛克区域的绣线段角度 (黑到白表示0-180
°
);图4中的c根据角度给每个马赛克画线;图4中的d是多次采样叠加绣线段,更密集(这一步也会给线条着色,未展示),图4圆仅做示例,该圆只对边缘做了处理,内部或者其他地方也可以用背景纹理来替代,特此说明。
34.实施例2:
本实施例作为一种优选的方案,为了提高刺绣特效转化的效果,进一步提出了一种立体化效果的方案,具体基于实施例1方案中,所述多次偏移采样叠加绣线段,并着色生成绣线段步骤之后,增加步骤600:对绣线纹理进行立体效果处理:根据每个像素点水平方向和垂直方向相邻两像素的灰度差,计算凹凸贴图;通过所述凹凸贴图对刺绣线条进行凹凸化,得到待输出图像。
35.具体的,多次偏移采样叠加绣线段后形成具有刺绣纹理线条的图像,对其进行凹凸处理,得到更加真实立体的刺绣效果。
36.首先,分别计算每个像素点水平方向和垂直方向相邻两像素的灰度差,再对灰度差进行叉积操作并进行归一化得到凹凸贴图。最后,通过凹凸贴图对刺绣线条进行凹凸化,得到刺绣效果。
37.具体的凹凸贴图计算公式为公式(7):vec3 bump = normalize(cross(vec3(0.0, deltax * height, 1.0), vec3(1.0, deltay * height, 0.0)).zyx * 0.5 + 0.5);
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ–
公式(7)其中,bump表示凹凸贴图;deltax表示当前像素水平方向相邻两像素的梯度差;deltay表示当前像素垂直方向相邻两像素的梯度差;height表示凹凸程度。
38.凹凸化计算公式如式(8):p = p*((bump.r + bump.g)/bump.b
ꢀ‑ꢀ
theta)/(1.0-theta);
ꢀꢀꢀꢀ–
公式(8)其中,p表示当前像素;bump.r,bump.g,bump.b分别表示凹凸贴图在p点的r、g、b三通道值;theta表示凹凸贴图的滤波参数;通过凹凸处理得到的刺绣纹理更具立体感,使刺绣效果更加真实。
39.实施例3:一种实时图像刺绣特效转化装置,包括:存储单元,存储用于实现实施例1或实施例2发明的实时图像刺绣特效转化方法的计算机程序;处理单元,用于调取存储单元中的计算机程序实现实施例1或实施例2发明的实时图像刺绣特效转化方法;图像输入单元,输入待转化图像;图像输出单元,输出图像刺绣特效转化后的图像。
40.其中,处理单元还包括:灰度化处理单元,用于计算待转化图像的灰度化图像;马赛克处理单元,用于对灰度化图像马赛克化,得到马赛克图像;角度计算单元,用于通过每一马赛克区域的水平方向梯度和垂直方向梯度,计算得到绣线段角度;直线绘制单元,用于获取每一马赛克区域的中心像素点和中心像素坐标,以马赛克区域中心像素点和绣线段角度绘制绣线段;绣线纹理绘制单元,用于多次偏移采样叠加绣线段,并根据中心像素的颜色对绣线段着色,形成绣线纹理图像;凹凸处理单元,用于对绣线纹理进行立体效果处理:根据每个像素点水平方向和垂直方向相邻两像素的灰度差,计算凹凸贴图;通过所述凹凸贴图对刺绣线条进行凹凸化,
得到待输出图像。
41.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。
42.所述单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
43.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
44.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
45.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1