自定义手绘“峰”

今天,做一个有趣的实验,通过代码画手绘风格画,例如下面:

 1 from PIL import Image
 2 import numpy as np
 3 vec_e1=np.pi/2.2
 4 vec_az=np.pi/4.
 5 depth=10.
 6 im=Image.open('C:\\Users\\李炎\\Desktop\\feng.jpg').convert('L')
 7 a=np.asarray(im).astype('float')
 8 grad=np.gradient(a)
 9 grad_x,grad_y=grad
10 grad_x=grad_x*depth/80.
11 grad_y=grad_y*depth/80.
12 dx=np.cos(vec_e1)*np.cos(vec_az)        #光源对图像x轴的影响
13 dy=np.cos(vec_e1)*np.sin(vec_az)
14 dz=np.sin(vec_e1)
15 A=np.sqrt(grad_x**2+grad_y**2+1.)
16 uni_x=grad_x/A
17 uni_y=grad_y/A
18 uni_z=1./A
19 a2=255*(dx*uni_x+dy*uni_y+dz*uni_z)
20 a2=a2.clip(0,255)
21 im2=Image.fromarray(a2.astype('uint8'))
22 im2.save('C:\\Users\\李炎\\Desktop\\3.jpg')

可以查看其效果:

原图:

 

操作后:

还可以调整里面的数值:

 

这样,就可以画出一个自己喜爱的画了,特别是自己的爱豆哦。

 

posted @ 2019-04-22 19:43  乘“疯”破浪  阅读(175)  评论(0编辑  收藏  举报