使用python將圖片改為灰度圖或黑白圖
使用python將圖片改為灰度圖或黑白圖有三種方式,分別是是使用cv2庫和PIL庫來實(shí)現(xiàn),詳細(xì)過程如下所示。
1. 使用cv2庫將圖片改為灰度圖
在使用cv2進(jìn)行讀取原彩色圖片時(shí),在里面添加一個(gè)參數(shù)cv2.IMREAD_GRAYSCALE表示將圖片作為灰色圖數(shù)據(jù)進(jìn)行加載。
示例代碼:
import cv2 image = cv2.imread('./images/sunflower.jpg', cv2.IMREAD_GRAYSCALE) cv2.imwrite('./images/gray_sunflower.jpg', image)
運(yùn)行效果:
對處理后的圖片再次進(jìn)一步的探究。
示例代碼:
import cv2 # image = cv2.imread('./images/sunflower.jpg', cv2.IMREAD_GRAYSCALE) # cv2.imwrite('./images/gray_sunflower.jpg', image) # 進(jìn)一步探索圖片格式 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)
運(yùn)行效果:
從運(yùn)行結(jié)果可以看出,在用cv2讀取數(shù)據(jù)時(shí),即使讀取的原圖是灰度圖片,但是返回的結(jié)果仍然是BGR格式的圖像,BGR格式是默認(rèn)的格式。
2. 利用PIL庫將圖片改為黑白圖
原理是轉(zhuǎn)為“1”的模式,為二值圖像。即:非黑即白。它每個(gè)像素用8個(gè)bit表示,0表示黑,255表示白(除了這兩個(gè)值外再?zèng)]有別的值)
示例代碼:
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()
運(yùn)行結(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()
運(yùn)行效果:(下圖1關(guān)閉網(wǎng)格線,下圖2帶有網(wǎng)格線)
到此這篇關(guān)于使用python將圖片改為灰度圖或黑白圖的文章就介紹到這了,更多相關(guān)python圖片改為灰度圖或黑白圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python如何求取指定范圍內(nèi)的質(zhì)數(shù)
這篇文章主要介紹了python如何求取指定范圍內(nèi)的質(zhì)數(shù)問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08新手入門學(xué)習(xí)python Numpy基礎(chǔ)操作
這篇文章主要介紹了新手入門學(xué)習(xí)python Numpy基礎(chǔ)操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03python 圖像插值 最近鄰、雙線性、雙三次實(shí)例
這篇文章主要介紹了python 圖像插值 最近鄰、雙線性、雙三次實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07Python自動(dòng)發(fā)送郵件的方法實(shí)例總結(jié)
這篇文章主要介紹了Python自動(dòng)發(fā)送郵件的方法,結(jié)合實(shí)例形式總結(jié)分析了Python使用smtplib和email模塊發(fā)送郵件的相關(guān)使用技巧與操作注意事項(xiàng),需要的朋友可以參考下2018-12-12python字典各式各樣操作從基礎(chǔ)到高級全面示例詳解
在Python中,字典(Dictionary)是一種強(qiáng)大而靈活的數(shù)據(jù)結(jié)構(gòu),它允許你存儲(chǔ)和檢索鍵值對,本文將深入探討Python中各式各樣的字典操作,包括基本操作、高級操作以及一些實(shí)用的技巧,通過全面的示例代碼,將展示如何充分發(fā)揮字典在Python編程中的優(yōu)勢2023-12-12Pycharm在創(chuàng)建py文件時(shí),自動(dòng)添加文件頭注釋的實(shí)例
今天小編就為大家分享一篇Pycharm在創(chuàng)建py文件時(shí),自動(dòng)添加文件頭注釋的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05利用Python讀取Excel表內(nèi)容的詳細(xì)過程
python有多種方式可以去讀取excel文檔的內(nèi)容,下面這篇文章主要給大家介紹了利用Python讀取Excel表內(nèi)容的詳細(xì)過程,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10Python對稱的二叉樹多種思路實(shí)現(xiàn)方法
這篇文章主要介紹了Python對稱的二叉樹多種思路實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02