python實現(xiàn)圖片素描效果
代碼如下:
from PIL import Image #圖像處理模塊 import numpy as np a = np.asarray(Image.open("這里是原圖片的路徑").convert('L')).astype('float') #將圖像以灰度圖的方式打開并將數(shù)據(jù)轉(zhuǎn)為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/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.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函數(shù)將區(qū)間外的數(shù)字剪除到區(qū)間邊緣 im = Image.fromarray(b.astype('uint8')) #重構(gòu)圖像 im.save("這里是輸出圖片的路徑")
檢驗一下效果:
from PIL import Image #圖像處理模塊 import numpy as np # 將圖像以灰度圖的方式打開并將數(shù)據(jù)轉(zhuǎn)為float存入np中 a = np.asarray(Image.open("D://Python//圖片轉(zhuǎn)素描//4.jpg").convert('L')).astype('float') 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/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.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函數(shù)將區(qū)間外的數(shù)字剪除到區(qū)間邊緣 im = Image.fromarray(b.astype('uint8')) # 重構(gòu)圖像 im.save("D://Python//圖片轉(zhuǎn)素描//4_2.jpg")
原圖:
轉(zhuǎn)換后
但是不適合那些依賴光影變換效果的圖片,比如我最愛的百里守約就很糟糕
以上就是python實現(xiàn)圖片素描效果的詳細內(nèi)容,更多關(guān)于python 圖片素描的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用Python實現(xiàn)簡單的學(xué)生成績管理系統(tǒng)
這篇文章主要為大家詳細介紹了Python實現(xiàn)學(xué)生成績管理系統(tǒng),使用數(shù)據(jù)庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01人工神經(jīng)網(wǎng)絡(luò)算法知識點總結(jié)
在本篇內(nèi)容里小編給大家分享了人工神經(jīng)網(wǎng)絡(luò)算法的相關(guān)知識點以及原理介紹,需要的朋友們參考下。2019-06-06Python繪圖Matplotlib之坐標(biāo)軸及刻度總結(jié)
這篇文章主要介紹了Python繪圖Matplotlib之坐標(biāo)軸及刻度總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06用Python搶火車票的簡單小程序?qū)崿F(xiàn)解析
這篇文章主要介紹了用Python搶火車票的簡單小程序?qū)崿F(xiàn)解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08使用tensorflow保存和恢復(fù)模型saver.restore
這篇文章主要介紹了使用tensorflow保存和恢復(fù)模型saver.restore方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02Django之編輯時根據(jù)條件跳轉(zhuǎn)回原頁面的方法
今天小編就為大家分享一篇Django之編輯時根據(jù)條件跳轉(zhuǎn)回原頁面的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08Python實現(xiàn)批量提取word文件中文本框內(nèi)容
在日常的辦公中,有時需要提取多個word文件中的文字框的內(nèi)容,這篇文章主要為大家介紹了三種常見的方法來提取文本框的內(nèi)容,希望對大家有一定的幫助2024-02-02