【问题标题】:Opening an Image from a specific file?从特定文件打开图像?
【发布时间】:2017-10-04 05:45:54
【问题描述】:
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: 'list' 对象没有属性 'read

如何从该特定路径打开图像并将图像用作数组 I?

【问题讨论】:

  • 重新阅读文档:glob.glob() 返回与模式匹配的名称的列表。为什么要使用glob() 访问特定文件?为什么不filename = '/home/ns3/PycharmProjects/untitled1/stego.pgm'
  • 那么我怎样才能从指定路径@WarrenWeckesser 读取该图像?
  • filename = '/home/ns3/PycharmProjects/untitled1/stego.pgm' 应该可以工作。

标签: python numpy python-imaging-library glob


【解决方案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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 2020-03-30
    • 2015-12-30
    相关资源
    最近更新 更多