日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python 数据分析与展示笔记2 -- 图像手绘效果

發(fā)布時間:2025/3/12 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 数据分析与展示笔记2 -- 图像手绘效果 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Python 數(shù)據(jù)分析與展示筆記2 – 圖像手繪效果


Python 數(shù)據(jù)分析與展示系列筆記是筆者學(xué)習(xí)、實踐Python 數(shù)據(jù)分析與展示的相關(guān)筆記

課程鏈接: Python 數(shù)據(jù)分析與展示

參考文檔:
Numpy 官方文檔(英文)
Numpy 官方文檔(中文)
PIL 官方文檔


一、PIL 庫


1、安裝與導(dǎo)入

# 安裝 PIL 庫 pip install pillow# 導(dǎo)入 PIL 庫 import PIL# 導(dǎo)入 PIL 庫的 Image模塊/類(用讀取顯示圖像) from PIL import Image

2、簡單使用

# 打開圖像 Image.open('圖片的路徑')# 轉(zhuǎn)為灰度圖像 .convert('L')# 保存圖像 .save('保存路徑')

二、圖像手繪效果


1、總體思路

  • 圖像中物體的邊緣用黑色畫出,而大片相同的區(qū)域用白色畫出
  • 圖像梯度可以求出物體的邊緣,邊緣越明顯,梯度越大
  • 為了用黑色表色邊緣,圖片的像素值應(yīng)該與梯度值成反比關(guān)系,而代碼中的核心思想也是為了求得這個關(guān)系

2、幾點理解

  • depth參數(shù):設(shè)置 x,y 梯度占總的梯度的比例,使梯度值縮小,因為我們把z向的梯度設(shè)成了1,如果不壓縮x,y向梯度那么這個1就起不到什么作用
  • z 方向的梯度(即梯度歸一化中的1):為了表示像素值與梯度的反比關(guān)系,當像素的 x,y 向梯度值都很小時,在歸一化時uni_z值就會區(qū)于1從而得到趨于255的像素值
  • 圖像梯度歸一化:主要為了得到 uni_z 的值
  • 光源設(shè)置:設(shè)置光源的角度只是為了得到 dx,dy,dz 三個可調(diào)系數(shù)而已,個人認為跟光源一點關(guān)系都沒有,反而不好理解
  • dx,dy,dz:uni_x,uni_y,uni_z的系數(shù),更深入的說其實目的是把 dz 設(shè)的很大,dx,dy很小,完全可以不要dx,dy 把dz設(shè)為1,效果幾乎一樣

3、代碼

from PIL import Image import numpy as npdef hand_draw_image(img_path, show=True, save_path=None):"""把彩色圖片變?yōu)槭掷L風(fēng)格的灰度圖片:param img_path: 原圖片的路徑:param show: 是否要顯示手繪圖片:param save_path: 是否要保存手繪圖片:return:"""# 打開圖片轉(zhuǎn)為灰度圖,并轉(zhuǎn)換為 float 類型的 ndarrayimg = np.asarray(Image.open(img_path).convert('L')).astype('float')# 求圖像的梯度depth = 10grad_x, grad_y = np.gradient(img)grad_x = grad_x * depth / 100.grad_y = grad_y * depth / 100.# 歸一化圖像的梯度img_grad = np.sqrt(grad_x ** 2 + grad_y ** 2 + 1)uni_x = grad_x / img_graduni_y = grad_y / img_graduni_z = 1 / img_grad# 光源對圖像明暗的影響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 軸的影響(投影)img_res = 255 * (dx * uni_x + dy * uni_y + dz * uni_z) # 光源歸一化img_res = img_res.clip(0, 255) # 裁剪0-255外的像素值im = Image.fromarray(img_res.astype(np.uint8)) # 重構(gòu)圖像if show:im.show()if save_path:im.save(save_path)if __name__ == '__main__':print('running hand_painted:')hand_draw_image('圖片路徑')

原圖:

效果:


GOOD LUCK!


總結(jié)

以上是生活随笔為你收集整理的Python 数据分析与展示笔记2 -- 图像手绘效果的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 强迫凌虐淫辱の牝奴在线观看 | 香蕉视频色| 激情噜噜 | 黄色av小说在线观看 | 精品国产乱码久久久久久免费 | 国产精品网站在线 | 黑人精品一区二区三区 | 中文字幕 欧美激情 | 成人网导航 | 国产免费看黄 | 天天碰天天碰 | 成人爽爽爽 | 手机av免费在线观看 | 欧美日韩首页 | 精品久草 | 中文字幕精 | 日韩一级在线 | 四虎影视成人永久免费观看亚洲欧美 | 亚洲第一视频网 | 欧美三级特黄 | 成年免费视频 | 日本国产高清 | 一级片免费看视频 | 桥本有菜aⅴ一区二区三区 在线午夜电影 | 亚洲亚洲人成综合网络 | 无码人妻精品一区二区三区温州 | 91视频99| 日本黄色激情视频 | 欧美精品国产一区 | 欧美丰满老熟妇xxxxx性 | 久久久久久久久久久久久女过产乱 | 亚色视频在线 | 久草视频在| 2018自拍偷拍 | 狠狠av| 国产亚韩 | 五月天综合在线 | 午夜精品福利一区二区三区蜜桃 | 日本h在线 | 亚洲精品国产精品乱码不卡√香蕉 | 五月天婷婷导航 | 国产老熟女一区二区三区 | 国产一区二区三区免费在线观看 | 欧美性做爰毛片 | 国产内射合集颜射 | 卡一卡二av | 午夜免费一区 | 亚洲插插插 | 葵司在线视频 | 午夜神马影院 | 成人免费看片入口 | 在线看国产精品 | 办公室荡乳欲伦交换bd电影 | 欧美日韩免费高清 | 涩涩网址 | 亚洲精品推荐 | 色av综合网 | 精品视频在线一区二区 | 日本美女一区 | 青青操原 | 日本三级韩国三级美三级91 | 成人日韩在线 | 成人a视频| 午夜精品久久久久久久久久久久久蜜桃 | 久久99综合| 狠狠v欧美v日韩v亚洲ⅴ | 国产一区二区三区四区五区美女 | 亚洲综合黄色 | 男女扒开双腿猛进入爽爽免费 | 亚洲欧美日韩国产一区二区三区 | 草逼视频免费看 | 五月激情六月丁香 | 一级黄色短视频 | 人人干人人澡 | 亚洲一区二区三区四区五区六区 | 精品一区二区三区四区五区 | 久久视频在线看 | 久久久久久久久久久网 | 青青草原综合久久大伊人精品 | 中文字幕av久久爽 | 五十路六十路七十路熟婆 | 亚洲综合激情另类小说区 | 人人精品久久 | 黄色不雅视频 | 丁香花国语版普通话 | 尤物一区 | 日韩高清一级 | 日韩在线视频中文字幕 | 一级看片| 成人性生交大片免费 | 色网在线看 | 色偷偷av一区二区三区 | 欧美成人精品一区二区免费看片 | www欧美| 日韩欧美中文字幕在线观看 | 亚洲国产精品综合 | 亚洲妇女av | www.国产在线视频 | 日本美女操 |