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')

結果:左邊爲原圖,右邊爲手繪效果圖
原圖
手繪效果圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章