Python 將RGB圖像轉(zhuǎn)換為Pytho灰度圖像的實(shí)例
問題:
我正嘗試使用matplotlib讀取RGB圖像并將其轉(zhuǎn)換為灰度。
在matlab中,我使用這個(gè):
img = rgb2gray(imread('image.png'));
在matplotlib tutorial中他們沒有覆蓋它。他們只是在圖像中閱讀
import matplotlib.image as mpimg img = mpimg.imread('image.png')
然后他們切片數(shù)組,但是這不是從我所了解的將RGB轉(zhuǎn)換為灰度。
lum_img = img[:,:,0]
編輯:
我發(fā)現(xiàn)很難相信numpy或matplotlib沒有內(nèi)置函數(shù)來從rgb轉(zhuǎn)換為灰色。這不是圖像處理中的常見操作嗎?
我寫了一個(gè)非常簡(jiǎn)單的函數(shù),它可以在5分鐘內(nèi)使用imread導(dǎo)入的圖像。這是非常低效的,但這就是為什么我希望內(nèi)置專業(yè)實(shí)施。
塞巴斯蒂安改善了我的功能,但我仍然希望找到內(nèi)置的一個(gè)。
matlab的(NTSC / PAL)實(shí)現(xiàn):
import numpy as np def rgb2gray(rgb): r, g, b = rgb[:,:,0], rgb[:,:,1], rgb[:,:,2] gray = 0.2989 * r + 0.5870 * g + 0.1140 * b return gray
回答:
如何使用PIL
from PIL import Image img = Image.open('image.png').convert('LA') img.save('greyscale.png')
使用matplotlib和the formula
Y' = 0.299 R + 0.587 G + 0.114 B
你可以這樣做:
import numpy as np import matplotlib.pyplot as plt import matplotlib.image as mpimg def rgb2gray(rgb): return np.dot(rgb[...,:3], [0.299, 0.587, 0.114]) img = mpimg.imread('image.png') gray = rgb2gray(img) plt.imshow(gray, cmap = plt.get_cmap('gray')) plt.show()
以上這篇Python 將RGB圖像轉(zhuǎn)換為Pytho灰度圖像的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Pandas DataFrame中實(shí)現(xiàn)取單個(gè)值的讀取和修改
這篇文章主要介紹了Pandas DataFrame中實(shí)現(xiàn)取單個(gè)值的讀取和修改,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10python中關(guān)于CIFAR10數(shù)據(jù)集的使用
這篇文章主要介紹了python中關(guān)于CIFAR10數(shù)據(jù)集的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02Python調(diào)用各大機(jī)器翻譯API的實(shí)現(xiàn)示例
本文主要介紹了Python調(diào)用各大機(jī)器翻譯API的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Python 私有屬性和私有方法應(yīng)用場(chǎng)景分析
這篇文章主要介紹了Python 私有屬性和私有方法應(yīng)用場(chǎng)景分析,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06