今天,做一个有趣的实验,通过代码画手绘风格画,例如下面:
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')
可以查看其效果:
原图:
操作后:
还可以调整里面的数值:
这样,就可以画出一个自己喜爱的画了,特别是自己的爱豆哦。