生活随笔
收集整理的這篇文章主要介紹了
python模拟ps中的素描工具
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
其實(shí)就是將原圖放入。然后你用工具將圖像P一下,轉(zhuǎn)換為素描圖像。很像濾鏡之類的PS。
話不多說(shuō)
簡(jiǎn)單實(shí)現(xiàn)一下
# -*- encoding: utf-8 -*-# 圖像處理
# 導(dǎo)如科學(xué)計(jì)算庫(kù)
import numpy as np
# 導(dǎo)入畫圖庫(kù)
from PIL import Image# 封裝一個(gè)工具類
class TestNumpy(object):# 定義方法 傳一個(gè)圖片地址def photo2paint(self, img_url):# 讀圖。矩陣化。轉(zhuǎn)到內(nèi)存 my_photo = np.asarray(Image.open(img_url).convert('L')).astype('float') # 像素化conventprint(f'查看有沒(méi)有讀取出來(lái):{my_photo.shape}')print(f'查看圖片矩陣大小:{my_photo.size}')# 設(shè)置灰度閾(yu)值 范圍是(0-100是固定值)預(yù)估一下depth = 13# 將灰度系數(shù)映射到numpygrad = np.gradient(my_photo)# 獲取坐標(biāo) 分別返回倆個(gè)值grad_x, grad_y = grad# 分別處理grad_x = grad_x * depth/100 # 坐標(biāo)分散grad_y = grad_y * depth/100 # 把黑可以弄淡點(diǎn)兒# 設(shè)置阿爾法值# 設(shè)置坐標(biāo)范圍A = np.sqrt(grad_x**2 + grad_y**2 + 1) # 打出一個(gè)像素的富裕,不會(huì)擁擠# 重新賦值uni_x = grad_x/Auni_y = grad_y/Auni_z = 1/A# 灰度光源設(shè)置# 基本寫固定寫法vec_el = np.pi/2.2 # 光源角度vec_az = np.pi/4 # 弧度值# 設(shè)置x軸和y軸dx = np.cos(vec_el) * np.cos(vec_az)dy = np.cos(vec_el) * np.sin(vec_az)#設(shè)置z軸dz = np.sin(vec_el)# 設(shè)置貝塔值b = 255 * (dx*uni_x + dy*uni_y + dz*uni_z)# 光源歸一化b = b.clip(0,255)# 聲明圖像類對(duì)象im = Image.fromarray(b.astype('uint8'))# 保存圖像,生成新圖像im.save('./timg_new.jpg')if __name__ == "__main__":# 實(shí)例化對(duì)象testnumpy = TestNumpy()# 載入要處理的圖像testnumpy.photo2paint('test.jpg')
總結(jié)
以上是生活随笔為你收集整理的python模拟ps中的素描工具的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。