20

我定期使用 PIL 从 NOAA 打开 AREA 文件。在我收到的最后一批图像中, image.open() 命令根本不起作用。这是我编写的一个简单代码,它产生相同的结果。它将使用一个月前的文件而不是今天的文件打开、旋转和执行正常任务。

from PIL import Image
im = Image.open("path/to/file")
im.show()

这是错误:

File "image_goes.py", line 2, in <module>
im = Image.open("path/to/file")
File "/usr/lib/python2.6/dist-packages/PIL/Image.py", line 1980, in open
raise IOError("cannot identify image file")
IOError: cannot identify image file

这是我尝试过的:

  1. 在两台不同的机器上打开图像。
  2. 更改文件的文件夹以防出现权限问题
  3. 重新下载图像,以及另外两个批次,都使用 FTP 手动和我们的自动脚本。

我的假设是我们的下载脚本存在问题并且它没有完全下载文件,但是这个假设被拒绝了,因为新文件的大小正确并且我使用 FTP 客户端手动下载了它们并得到了同样的结果。

我唯一的其他理论是,今天的 NOAA 文件存在问题,或者它们已以 PIL 无法再处理它们的方式进行更改,但我认为这不太可能。

非常感谢任何帮助,谢谢

4

3 回答 3

17

也许是内容实际上并未同步到磁盘。尝试Image.open(open("path/to/file", 'rb'))

于 2012-08-10T05:21:30.147 回答
5

为了

im = Image.open("path/to/file")

尝试

im = Image.open(r"path/to/file")

也就是说,r在路径字符串之前放一个。

于 2018-09-29T02:27:58.047 回答
1

您可以使用cv2读取图像。

im = cv2.imread(path)

而且,对于打开/显示,您可以使用:

cv2.imshow()
于 2020-03-17T13:50:24.943 回答