使用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)運行效果:

從運行結(jié)果可以看出,在用cv2讀取數(shù)據(jù)時,即使讀取的原圖是灰度圖片,但是返回的結(jié)果仍然是BGR格式的圖像,BGR格式是默認的格式。
2. 利用PIL庫將圖片改為黑白圖
原理是轉(zhuǎn)為“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()運行結(jié)果:

3. 利用PIL庫將圖片改為灰度圖
原理是轉(zhuǎn)為“L”的模式。0表示黑,255表示白,其它數(shù)字表示不同的灰度。在PIL中,從模式"RGB"轉(zhuǎn)為"L"模式是按照下面公式轉(zhuǎn)換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') # 關(guān)閉網(wǎng)格線
plt.show()運行效果:(下圖1關(guān)閉網(wǎng)格線,下圖2帶有網(wǎng)格線)


到此這篇關(guān)于使用python將圖片改為灰度圖或黑白圖的文章就介紹到這了,更多相關(guān)python圖片改為灰度圖或黑白圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
django的403/404/500錯誤自定義頁面的配置方式
這篇文章主要介紹了django的403/404/500錯誤自定義頁面的配置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
Anaconda多環(huán)境多版本python配置操作方法
下面小編就為大家?guī)硪黄狝naconda多環(huán)境多版本python配置操作方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09
PyQt5如何將.ui文件轉(zhuǎn)換為.py文件的實例代碼
這篇文章主要介紹了PyQt5之如何將.ui文件轉(zhuǎn)換為.py文件,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
Python中if __name__ == "__main__"詳細解釋
這篇文章主要介紹了Python中if __name__ == "__main__"詳細解釋,需要的朋友可以參考下2014-10-10
Python學(xué)習(xí)之.iloc與.loc的區(qū)別、聯(lián)系和用法
loc和iloc都是pandas工具中定位某一行的函數(shù),下面這篇文章主要給大家介紹了關(guān)于Python學(xué)習(xí)之.iloc與.loc的區(qū)別、聯(lián)系和用法的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-05-05

