首頁 > 軟體

使用python將圖片改為灰度圖或黑白圖

2022-04-02 13:01:14

使用python將圖片改為灰度圖或黑白圖有三種方式,分別是是使用cv2庫和PIL庫來實現,詳細過程如下所示。

1. 使用cv2庫將圖片改為灰度圖

在使用cv2進行讀取原彩色圖片時,在裡面新增一個引數cv2.IMREAD_GRAYSCALE表示將圖片作為灰色圖資料進行載入。

範例程式碼:

import cv2
 
image = cv2.imread('./images/sunflower.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imwrite('./images/gray_sunflower.jpg', image)

執行效果:

對處理後的圖片再次進一步的探究。

範例程式碼:

import cv2
 
# image = cv2.imread('./images/sunflower.jpg', cv2.IMREAD_GRAYSCALE)
 
# cv2.imwrite('./images/gray_sunflower.jpg', image)
 
#  進一步探索圖片格式
image = cv2.imread('./images/sunflower.jpg')
print(image.shape)
imageGray = cv2.imread('./images/gray_sunflower.jpg')
print(imageGray.shape)
imageGray2 = cv2.imread('./images/sunflower.jpg', cv2.IMREAD_GRAYSCALE)
print(imageGray2.shape)

執行效果:

從執行結果可以看出,在用cv2讀取資料時,即使讀取的原圖是灰度圖片,但是返回的結果仍然是BGR格式的影象,BGR格式是預設的格式。

2. 利用PIL庫將圖片改為黑白圖

原理是轉為“1”的模式,為二值影象。即:非黑即白。它每個畫素用8個bit表示,0表示黑,255表示白(除了這兩個值外再沒有別的值)

範例程式碼:

from PIL import Image
 
# open colour image
image_raw = Image.open("./images/sunflower.jpg")
# convert image to black and white
image_black_white = image_raw.convert('1')
image_black_white.save('./images/black_white_sunflower.jpg')
image_black_white.show()

 執行結果:

3. 利用PIL庫將圖片改為灰度圖

原理是轉為“L”的模式。0表示黑,255表示白,其它數位表示不同的灰度。在PIL中,從模式"RGB"轉為"L"模式是按照下面公式轉換L = R * 299/1000 + G * 587/1000+ B * 114/1000 

範例程式碼:

from PIL import Image
import matplotlib.pyplot as plt
 
# open colour image
image_raw = Image.open("./images/sunflower.jpg")
image_gray = image_raw.convert('L')
# image_gray.show()
plt.figure('sunflower')  # 圖名
plt.imshow(image_gray, cmap='gray')  # cmap即colormap,顏色對映
# plt.axis('off')  # 關閉格線
plt.show()

執行效果:(下圖1關閉格線,下圖2帶有格線)

 到此這篇關於使用python將圖片改為灰度圖或黑白圖的文章就介紹到這了,更多相關python圖片改為灰度圖或黑白圖內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com