用Python将GIF图片转化成手绘图

今天带大家来将GIF图片转化成一张好看的手绘图片
用的是PIL读取图片
和numpy处理图片

完整代码如下:

from PIL import Image
import numpy as np

vec_el = np.pi/2.2  #光源俯视角度
vec_az = np.pi/4.   #光源方位角度
depth = 10.
im1 = Image.open("mayi_50.gif").convert('L')
a = np.asarray(im1).astype('float') #  可改为a = np.asarray(Image.open('TREE.jpg').convert('L')).astype(float)
grad = np.gradient(a)             #或取图像的梯度值
grad_x,grad_y=grad                #分别取纵横梯度值
grad_x = grad_x*depth/40.        #调节得到想得到的效果
grad_y = grad_y*depth/40.        #调节得到想得到的效果
dx = np.cos(vec_el)*np.cos(vec_az)#对光源X轴的影响
dy = np.cos(vec_el)*np.cos(vec_az)#对光源Y轴的影响
dz = np.sin(vec_el)               #对光源Z轴的影响
A = np.sqrt(grad_x**2+grad_y**2+1.)
uni_x = grad_x/A
uni_y = grad_y/A
uni_z = 1./A
a2 = 255*(dx*uni_x+dy*uni_y+dz*uni_z) #光源归一化
a2 = a2.clip(0,255)
im2 = Image.fromarray(a2.astype('uint8')) #重新构造图片
im2.save('mayi_51.gif') #改名保存

效果图:
在这里插入图片描述
在这里插入图片描述
一起学习python,小白指导,教学分享记得私信我

猜你喜欢

转载自blog.csdn.net/Miku_wx/article/details/112394997
今日推荐