Python 將RGB圖像轉(zhuǎn)換為Pytho灰度圖像的實例
問題:
我正嘗試使用matplotlib讀取RGB圖像并將其轉(zhuǎn)換為灰度。
在matlab中,我使用這個:
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)換為灰色。這不是圖像處理中的常見操作嗎?
我寫了一個非常簡單的函數(shù),它可以在5分鐘內(nèi)使用imread導(dǎo)入的圖像。這是非常低效的,但這就是為什么我希望內(nèi)置專業(yè)實施。
塞巴斯蒂安改善了我的功能,但我仍然希望找到內(nèi)置的一個。
matlab的(NTSC / PAL)實現(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灰度圖像的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Pandas DataFrame中實現(xiàn)取單個值的讀取和修改
這篇文章主要介紹了Pandas DataFrame中實現(xiàn)取單個值的讀取和修改,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10python中關(guān)于CIFAR10數(shù)據(jù)集的使用
這篇文章主要介紹了python中關(guān)于CIFAR10數(shù)據(jù)集的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02Python調(diào)用各大機器翻譯API的實現(xiàn)示例
本文主要介紹了Python調(diào)用各大機器翻譯API的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07