1. 程式人生 > 程式設計 >PIL包中Image模組的convert()函式的具體使用

PIL包中Image模組的convert()函式的具體使用

將彩色圖片轉換成黑白圖片是自己拿到的第一個小任務。在全文開始之前給自己科普一個公式:

RGB到灰度圖轉換公式:Y' = 0.299 R + 0.587 G + 0.114 B

網上有諸多版本的轉換公式,但是係數大同小異。

接下來是正文。

由於幾乎可以說是零基礎= =所以只好趕緊依靠

pip install pillow

把PIL裝好。。。

convert()函式,用於不同模式影象之間的轉換。PIL中有九種不同模式,分別為1,L,P,RGB,RGBA,CMYK,YCbCr,I,F。我主要嘗試了1和L。

convert()的三種定義:

img.convert(mode) ⇒ image

img.convert(“P”,**options) ⇒ image

img.convert(mode,matrix) ⇒ image

程式碼如下:

from PIL import Image
# import numpy as np
 
img = Image.open('picture.jpg')
img1 = img.convert('1')
img2 = img.convert('L')
 
img1.save('result_1.jpg')
img2.save('result_L.jpg')

由於昨天正好因為微信小程式的事情在看JS。。於是就順手拿了一張JS的圖作為小白鼠了= =

picture.jpg:

PIL包中Image模組的convert()函式的具體使用

result_1.jpg:

PIL包中Image模組的convert()函式的具體使用

模式“1”為二值影象,每個畫素用8bit表示,0表示黑,255表示白。

result_L.jpg:

PIL包中Image模組的convert()函式的具體使用

模式L為灰色影象,它的每個畫素用8個bit表示,0表示黑,255表示白,其他數字表示不同的灰度。在PIL中,從模式“RGB”轉換為“L”模式是按照下面的公式轉換的:

L = R * 0.299 + G * 0.587+ B * 0.114

到此這篇關於PIL包中Image模組的convert()函式的具體使用的文章就介紹到這了,更多相關PIL convert()函式內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!