使用python將圖片改為灰度圖或黑白圖
使用python將圖片改為灰度圖或黑白圖有三種方式,分別是是使用cv2庫和PIL庫來實現(xiàn),詳細過程如下所示。
1. 使用cv2庫將圖片改為灰度圖
在使用cv2進行讀取原彩色圖片時,在里面添加一個參數(shù)cv2.IMREAD_GRAYSCALE表示將圖片作為灰色圖數(shù)據(jù)進行加載。
示例代碼:
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讀取數(shù)據(jù)時,即使讀取的原圖是灰度圖片,但是返回的結果仍然是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表示白,其它數(shù)字表示不同的灰度。在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') # 關閉網(wǎng)格線 plt.show()
運行效果:(下圖1關閉網(wǎng)格線,下圖2帶有網(wǎng)格線)
到此這篇關于使用python將圖片改為灰度圖或黑白圖的文章就介紹到這了,更多相關python圖片改為灰度圖或黑白圖內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Pycharm在創(chuàng)建py文件時,自動添加文件頭注釋的實例
今天小編就為大家分享一篇Pycharm在創(chuàng)建py文件時,自動添加文件頭注釋的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05