函数将任何RGB图像转换为灰度python

时间:2017-04-27 12:15:20

标签: python string function matplotlib rgb

我是python的真正初学者,当我使用之前的stakoverflow主题(How can I convert an RGB image into grayscale in Python?)中找到的建议时,我想将RGB图像转换为灰度时,我有一个问题我不明白

当我输入此代码时,一切正常:

def rgb2gray(rgb):
    return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])

im = mpimg.imread('test.gif') 
gray=rgb2gray(im)
plt.imshow(gray, cmap = plt.get_cmap('gray'))
plt.show()

所以,我尝试创建一个函数,这样如果我想转换其他RGB图像,我就不必重复所有这些行(我不确定我应该在最后一行之前写入返回)

def load(fichier):
    im = mpimg.imread(fichier) 
    gray=rgb2gray(im)
    plt.imshow(gray, cmap = plt.get_cmap('gray'))
    plt.show()

似乎工作正常,但我做不到:

load("test.gif")
File "<stdin>", line 5
load("test.gif")
       ^
SyntaxError: invalid syntax

我明白问题应该是“test.gif”是一个字符串,但是有一种简单的方法来改变我的功能以便它起作用吗?

提前感谢您的帮助!

编辑

我认为它现在有效我不会理解我改变了什么,但似乎可以正常工作:

# -*-coding:utf-8 -*-``

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])

def load(fichier):
    im = mpimg.imread(fichier) 
    gray=rgb2gray(im)
    plt.imshow(gray, cmap = plt.get_cmap('gray'))
    return plt.show()

load('test.gif')

0 个答案:

没有答案