使用numpy 和 PIL 手绘效果
其中出现了一个错误:
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes
解决办法:
在路径前加 ‘r’
原因:在Python中 \ 是转义符,\u表示其后是UNICODE编码,因此\User在这里会报错,在字符串前面加个 r(rawstring 原生字符串),可以避免python与正则表达式语法的冲突!
参考:https://blog.csdn.net/qq_28286027/article/details/92759470
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 from PIL import Image 2 import numpy as np 3 el=np.pi/2.2 4 az=np.pi/4 5 depth=10 6 im=np.array(Image.open(r'C:\Users\lenovo\Desktop\壁纸呗\梦源系列 片尾03.png').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/100 11 grad_y = grad_y*depth/100 12 dx=np.cos(el)*np.cos(az) 13 dy=np.cos(el)*np.sin(az) 14 dz=np.sin(el) 15 A=np.sqrt(grad_x**2+grad_y**2+1.0) 16 uni_x=grad_x/A 17 uni_y=grad_y/A 18 uni_z=1.0/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(r'C:\Users\lenovo\Desktop\壁纸呗\hand drawn of mengyuan03.png')