Python實(shí)現(xiàn)手繪圖效果實(shí)例分享
首先我們來看看原圖:
接著我們來看看效果圖:
通過分析我們不難發(fā)現(xiàn)以下特征:
-
主要顏色為黑白灰
-
邊界線條較重
-
相同或相近色趨于白色
-
略有光源效果
需要用到的庫有:
-
numpy
-
PIL
代碼實(shí)現(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) # 光源對(duì)x軸的影響 dy = np.sin(vec_el)*np.sin(vec_az) # 光源對(duì)y軸的影響 dz = np.sin(vec_el) # 光源對(duì)z軸的影響 b = 255*(dx*uni_x+dy*uni_y+dz*uni_z) # 光源歸一化 b = b.clip(0,255) # 限制 img = Image.fromarray(b.astype("uint8")) # 重構(gòu)圖像 img.save("./toImg/myImage1.jpg") # 保存圖像
實(shí)例擴(kuò)展:
from PIL import Image import numpy as np #為了便于文件的導(dǎo)入,可以使用相對(duì)路徑,將文件和程序放在同一個(gè)文件夾下 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')
到此這篇關(guān)于Python實(shí)現(xiàn)手繪圖效果實(shí)例分享的文章就介紹到這了,更多相關(guān)Python實(shí)現(xiàn)手繪圖效果內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決PyCharm 中寫 Turtle代碼沒提示以及標(biāo)黃的問題
這篇文章主要介紹了解決PyCharm 中寫 Turtle代碼沒提示以及標(biāo)黃的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03django請(qǐng)求返回不同的類型圖片json,xml,html的實(shí)例
今天小編就為大家分享一篇django請(qǐng)求返回不同的類型圖片json,xml,html的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05python實(shí)戰(zhàn)練習(xí)之最新男女顏值打分小系統(tǒng)
前幾天不是出過一期Python美顏相機(jī)嘛?不知道大家現(xiàn)在還記不記得?這一期的話題還是緊接著那一期顏值方面來走,對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下2021-09-09用Python實(shí)現(xiàn)職工信息管理系統(tǒng)
這篇文章主要介紹了用Python實(shí)現(xiàn)職工信息管理系統(tǒng),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12python數(shù)據(jù)可視化使用pyfinance分析證券收益示例詳解
這篇文章主要為大家介紹了python數(shù)據(jù)可視化使用pyfinance分析證券收益的示例詳解及pyfinance中returns模塊的應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11淺談Python數(shù)學(xué)建模之線性規(guī)劃
線性規(guī)劃是運(yùn)籌學(xué)中研究較早、發(fā)展較快、應(yīng)用廣泛、方法較成熟的一個(gè)重要分支,它是輔助人們進(jìn)行科學(xué)管理的一種數(shù)學(xué)方法。研究線性約束條件下線性目標(biāo)函數(shù)的極值問題的數(shù)學(xué)理論和方法2021-06-06Python數(shù)據(jù)可視化:頂級(jí)繪圖庫plotly詳解
今天小編就為大家分享一篇Python數(shù)據(jù)可視化:頂級(jí)繪圖庫plotly詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12