Python 利用4行代碼實(shí)現(xiàn)圖片灰度化的項(xiàng)目實(shí)踐
背景
不論是在進(jìn)行深度學(xué)習(xí)時的圖片處理,還是在商業(yè)用途出版書刊,基本都會用到對圖片進(jìn)行灰度轉(zhuǎn)換,也就是灰度化,本文章利用簡單的4行代碼來快速實(shí)現(xiàn)圖片灰度化,僅供參考
效果

實(shí)現(xiàn)代碼
from PIL import Image
wechat_image='./微信頭像.jpg'
wechat_image_greyscale=Image.open(wechat_image).convert('L') #對圖片進(jìn)行灰度化
wechat_image_greyscale.save('微信頭像_灰度化.jpg')

圖像灰度轉(zhuǎn)化
圖像是由紅(Red)、綠(Green)、藍(lán)(Blue)三原色來表示,R、G、B的取值范圍均為0~255,正常讀取的圖片構(gòu)成的三維矩陣就是圖像各像素點(diǎn)的RGB值。
圖像的灰度化,就是讓像素點(diǎn)矩陣中的每一個像素點(diǎn)都滿足這樣的關(guān)系:R=G=B,此時的這個值叫做灰度值:
灰度化后的R = 處理前的R * 0.299+ 處理前的G * 0.587 +處理前的B * 0.114
灰度化后的G = 處理前的R * 0.299+ 處理前的G * 0.587 +處理前的B * 0.114
灰度化后的B = 處理前的R * 0.299+ 處理前的G * 0.587 +處理前的B * 0.114
PIL庫里面在灰度轉(zhuǎn)化時,利用的公式
When translating a color image to greyscale (mode “L”), the library uses the ITU-R 601-2 luma transform:
L = R * 299/1000 + G * 587/1000 + B * 114/1000
最大值法:
original = original.max(axis=2) print(original.shape) # (640, 640) plt.imshow(original,cmap='gray') plt.show()
平均值法:
original = original.mean(axis=2) print(original.shape) # (640, 640) plt.imshow(original,cmap='gray') plt.show()
加權(quán)平均法
original = np.dot(original,[0.299,0.587,0.114]) print(original.shape) # (640, 640) plt.imshow(original,cmap='gray') plt.show()
到此這篇關(guān)于Python 利用4行代碼實(shí)現(xiàn)圖片灰度化的項(xiàng)目實(shí)踐的文章就介紹到這了,更多相關(guān)Python 圖片灰度化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django實(shí)現(xiàn)celery定時任務(wù)過程解析
這篇文章主要介紹了Django實(shí)現(xiàn)celery定時任務(wù)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04
python的繪圖工具matplotlib使用實(shí)例
這篇文章主要介紹了python的繪圖工具matplotlib使用實(shí)例,需要的朋友可以參考下2014-07-07
使用Python設(shè)置PDF中圖片的透明度的實(shí)現(xiàn)方法
在PDF文檔的設(shè)計與內(nèi)容創(chuàng)作過程中,圖像的透明度設(shè)置是一個重要的操作,尤其是在處理圖文密集型PDF文檔時,本文將介紹如何使用Python添加指定透明度的圖片到PDF文檔或調(diào)整PDF文檔中現(xiàn)有圖片的透明度,需要的朋友可以參考下2024-09-09

