Python實現(xiàn)手繪圖效果實例分享
首先我們來看看原圖:

接著我們來看看效果圖:

通過分析我們不難發(fā)現(xiàn)以下特征:
-
主要顏色為黑白灰
-
邊界線條較重
-
相同或相近色趨于白色
-
略有光源效果
需要用到的庫有:
-
numpy
-
PIL
代碼實現(xiàn):
import numpy as np
from PIL import Image
baseImg = Image.open("./img/myimg2.jpg").convert("L") # 這里放置你要手繪的圖片原圖
a = np.array(baseImg).astype("float")
depth = 8.
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) # 光源對x軸的影響
dy = np.sin(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) # 限制
img = Image.fromarray(b.astype("uint8")) # 重構圖像
img.save("./toImg/myImage1.jpg") # 保存圖像
實例擴展:
from PIL import Image
import numpy as np
#為了便于文件的導入,可以使用相對路徑,將文件和程序放在同一個文件夾下
vec_el=np.pi/2.2
vec_az=np.pi/4.
depth=10.
im=Image.open("HIT2.jpg").convert('L')
a=np.asarray(im).astype('float')
grad=np.gradient(a)
grad_x,grad_y=grad
grad_x=grad_x*depth/100.
grad_y=grad_y*depth/100.
dx=np.cos(vec_el)*np.cos(vec_az)
dy=np.cos(vec_el)*np.sin(vec_az)
dz=np.sin(vec_el)
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('hit2-SH.jpg')
到此這篇關于Python實現(xiàn)手繪圖效果實例分享的文章就介紹到這了,更多相關Python實現(xiàn)手繪圖效果內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決PyCharm 中寫 Turtle代碼沒提示以及標黃的問題
這篇文章主要介紹了解決PyCharm 中寫 Turtle代碼沒提示以及標黃的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
django請求返回不同的類型圖片json,xml,html的實例
今天小編就為大家分享一篇django請求返回不同的類型圖片json,xml,html的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
python實戰(zhàn)練習之最新男女顏值打分小系統(tǒng)
前幾天不是出過一期Python美顏相機嘛?不知道大家現(xiàn)在還記不記得?這一期的話題還是緊接著那一期顏值方面來走,對大家的學習或工作具有一定的價值,需要的朋友可以參考下2021-09-09
python數(shù)據(jù)可視化使用pyfinance分析證券收益示例詳解
這篇文章主要為大家介紹了python數(shù)據(jù)可視化使用pyfinance分析證券收益的示例詳解及pyfinance中returns模塊的應用,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11
Python數(shù)據(jù)可視化:頂級繪圖庫plotly詳解
今天小編就為大家分享一篇Python數(shù)據(jù)可視化:頂級繪圖庫plotly詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12

