game(2)图像手绘效果

图像的手绘效果
参考:https://www.icourse163.org/learn/BIT-1001870002#/learn/content?type=detail&id=1210784855&cid=1213173515
手绘效果的几个特征:
1.黑白灰色
2.边界线条较重
3.相同或相近色彩趋于白色
4.略有光源效果

梯度的重构:
利用像素之间的梯度值或虚拟梯度值对图像进行重构,根据灰度变化来模拟人类视觉明暗效果。
在这里插入图片描述

#图像的手绘效果
from PIL import Image
import numpy as np
a = np.asarray(Image.open('./People.jpg').convert('L')).astype('float')
depth = 10.
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.0)
Uni_x = grad_x/A
Uni_y = grad_y/A
Uni_z = 1./A
#光源的俯视角度,弧度值
vec_el = np.pi/2.2
#光源的方位角度,弧度制
vec_az = np.pi/4.
#光源对X轴方向的影响
dx = np.cos(vec_el)*np.cos(vec_az)
#光源对y轴方向的影响
dy = np.cos(vec_el)*np.sin(vec_az)
#光源对Z轴方向的影响
dz = np.sin(vec_el)
#光源归一化处理
b = 255*(dx*Uni_x+dy*Uni_y+dz*Uni_z)
b = b.clip(0,255)
im = Image.fromarray(b.astype('uint8'))
im.save('./people1.jpg')
im.show('./people1.jpg')

结果:左边为原图,右边为手绘效果图
原图
手绘效果图

发布了48 篇原创文章 · 获赞 0 · 访问量 1882

猜你喜欢

转载自blog.csdn.net/weixin_43527195/article/details/89919272