文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取
http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef

手绘图确实很好看,但对于手残党的我,只能呵呵一笑,今天就用代码来实现手绘功能,把普通的图片转换为手绘图片。
代码
from PIL import Imageimport numpy as npa = np.asarray(Image.open(r'C:\Users\luopan\Desktop\1.jpg').convert('L')).astype('float')depth = 10. # (0-100)grad = np.gradient(a) # 取图像灰度的梯度值grad_x, grad_y = grad # 分别取横纵图像梯度值grad_x = grad_x depth / 100.grad_y = grad_y depth / 100.A = np.sqrt(grad_x 2 + grad_y 2 + 1.)uni_x = grad_x / Auni_y = grad_y / Auni_z = 1. / Avec_el = np.pi / 2.2 # 光源的俯视角度,弧度值vec_az = np.pi / 4. # 光源的方位角度,弧度值dx = np.cos(vec_el) np.cos(vec_az) # 光源对x 轴的影响dy = np.cos(vec_el) np.sin(vec_az) # 光源对y 轴的影响dz = np.sin(vec_el) # 光源对z 轴的影响b = 255 (dx uni_x + dy uni_y + dz uni_z) # 光源归一化b = b.clip(0, 255)im = Image.fromarray(b.astype('uint8')) # 重构图像im.save(r'C:\Users\luopan\Desktop\2.jpg')
效果
.