2017-05-05 104 views
0
import glob 
import numpy as np 
from PIL import Image 

filename = glob.glob('/home/ns3/PycharmProjects/untitled1/stego.pgm') 
im= Image.open(filename) 
(x,y) = im.size 
I = np.array(im.getdata()).reshape(y, x) 

不斷給我這個錯誤:從特定文件打開圖像?

IM = Image.open(文件名)

文件「/home/ns3/.local/lib/python2.7/site-packages/PIL/Image py」爲,線2416,在開放 FP = io.BytesIO(fp.read())

AttributeError的: '列表' 對象沒有屬性「讀

如何從該特定打開圖像路徑並使用圖像作爲數組I?

+0

重讀文檔:['glob.glob()'](HTTPS://docs.python .org/2/library/glob.html#glob.glob)返回與該模式匹配的名稱的*列表*。爲什麼你使用'glob()'來訪問一個特定的文件?爲什麼不'filename ='/ home/ns3/PycharmProjects/untitled1/stego.pgm''? –

+0

那麼如何從指定的路徑@WarrenWeckesser讀取該圖像? –

+0

'filename ='/ home/ns3/PycharmProjects/untitled1/stego.pgm''應該可以工作。 –

回答

1

問題是glob.glob()返回一個列表(a possibly-empty list of path names that match pathname)並且你想要一個字符串。

所以無論是插入一個[0]

import glob 
import numpy as np 
from PIL import Image 

filenames = glob.glob('/home/ns3/PycharmProjects/untitled1/stego.pgm') 
filename = filenames[0] 
im= Image.open(filename) 
(x,y) = im.size 
I = np.array(im.getdata()).reshape(y, x) 

或跳過的glob一起

import numpy as np 
from PIL import Image 

filename = '/home/ns3/PycharmProjects/untitled1/stego.pgm' 
im= Image.open(filename) 
(x,y) = im.size 
I = np.array(im.getdata()).reshape(y, x) 
+0

謝謝:) @Merling Katz –