梯度的重构
利用像素之间的梯度值和虚拟深度值对图像进行重构,根据灰度变化来模拟人类视觉的明暗程度。
手绘效果的特征
- 黑白灰色
- 边界线条较重
- 相同或相近色彩趋于白色
- 略有光源效果
代码实现
用到的第三方库安装:
1
| pip install pillow,numpy
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
from PIL import Image import numpy as np
a = np.asarray(Image.open('./yunwuyue.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.) 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 dx = np.cos(vec_el) * np.cos(vec_az) dy = np.cos(vec_el) * np.sin(vec_az) 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('./yunwuyueHD.jpg')
|
展示

