2014-10-20 89 views
-1

我在Ubuntu上使用Python 2.7,并且在开始为我的算法类分配之前正在尝试使用图像。我已经下载了numpy,scipy和skimage软件包,并且不断收到'imread''标题'的错误,并且这些内置函数未定义。任何想法可能是错的?Python不会识别'imread'函数

from pylab import * 
    from skimage import img_as_float 

    img = imread(‘someimage.png’) 
    img = img_as_float(img) 
    w, h = img.shape[:2] 
    R = img[:,:,0] 
    G = img[:,:,1] 
    B = img[:,:,2] 
    figure() 
    gray() 
    subplot(1,4,1); imshow(img); title(“RGB”) 
    subplot(1,4,2); imshow(R); title(“Red”) 
    subplot(1,4,3); imshow(G); title(“Green”) 
    subplot(1,4,4); imshow(B); title(“Blue”) 
    show() 
+2

我认为你应该安装Python Imaging Library(PIL)。检查:: http://www.pythonware.com/products/pil/ – user3378649 2014-10-20 03:15:28

+0

我试图下载使用sudo pip安装PIL。 说没有发现分配。 – 2014-10-20 03:30:38

+0

试过sudo apt-get install python-imaging。 它已经在那里。 – 2014-10-20 03:44:33

回答

1

imread函数从哪里导入?您可以轻松查看导入库中的所有功能。请参阅:http://stackoverflow.com/questions/139180/listing-all-functions-in-a-python-module

如果您正在寻找SciPy的imread,您必须沿着这些线...

from scipy.misc import imread 
... 
img = imread(‘someimage.png’) 

from scipy import misc 
... 
img = misc.imread('someimage.png') 

import scipy 
... 
img = scipy.misc.imread(‘someimage.png’) 

Python没有天生知道什么标题功能或imrea d函数/方法没有明确说明。导入需要你导入每个函数/类/库等范围。 https://docs.python.org/3/reference/import.html

此外 - 第一条评论是正确的。您需要安装PIL才能使用imread功能。

+0

我试过这样做!从scipy.misc导入imread。仍然无法工作。 – 2014-10-20 03:26:27

+0

什么不行? imread函数是否显示为undefined或其他函数?你得到了什么确切的错误? – 2014-10-20 03:30:13

+0

是的。他们以未定义的名字出现。 imread title imshow subplot。 – 2014-10-20 03:32:42

3

尝试增加:

from skimage.io import imread 

你的进口。

+0

试过了。仍然会出现未定义的名称错误。 – 2014-10-20 03:35:19

+1

@AveeshaSharma:如果你尝试了这个明显的事情,那么你为什么不在你的问题中说这个? – tom10 2014-10-20 03:37:17

+0

对不起。 Pylab从numpy,scipy和skimage中导入函数。所以我没有意识到我必须从skimage.io导入imread明确提及。 通过尝试我的意思,我在阅读你的文章后尝试过。没有工作。 – 2014-10-20 03:44:01