標籤:

python圖片轉素描

python圖片轉素描

來自專欄 python入門

520就要到了,Python可以為你的女朋友帶來什麼驚喜呢?學會下面這段圖像轉換成素描風格的代碼,就可以拿去哄(pian)女朋友了!如果她問起來,還可以說是你自己畫的,贏得她的芳心和崇拜。

於是她一臉花痴地望著你要你親手畫給她看……

我無法幫你預言 委曲求全 有沒有用……

from PIL import Image #圖像處理模塊import numpy as npa = np.asarray(Image.open("這裡是原圖片的路徑").convert(L)).astype(float) #將圖像以灰度圖的方式打開並將數據轉為float存入np中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./A#建立一個位於圖像斜上方的虛擬光源vec_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) #clip函數將區間外的數字剪除到區間邊緣im = Image.fromarray(b.astype(uint8)) #重構圖像im.save("這裡是輸出圖片的路徑")

很簡單的代碼,運行後就可以得到你想要的素描圖啦,還不快去給女朋友畫一張?雖然效果沒有那麼好,但非常造福手殘黨。

放一張女神新片的劇照~

滅霸看了都心動:


推薦閱讀:

如何在兩年的時間裡,通過自學在素描方面達到入門的級別?
新作
從小畫畫的方式就是寫生,不會用到大腦去創作,會不會導致思維禁錮?
藝伴直播 | 溫故而知新——複雜物體幾何歸納法講解
學習素描是為了什麼?

TAG:Python | 素描 |