web-dev-qa-db-ja.com

PIL image.open()は一部の画像では機能しますが他の画像では機能しません

PAAを使用して、NOAAのAREAファイルを定期的に開きます。受け取った画像の最後のバッチでは、image.open()コマンドが機能しません。これは、同じ結果をもたらす、私が作成した単純なコードです。これは、今日のファイルではなく、1か月前のファイルを使用して開き、回転し、通常のタスクを実行します。

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つの別個のマシンでイメージを開く。
  2. 権限の問題があった場合のファイルのフォルダの変更
  3. FTPと自動スクリプトの両方を使用して、イメージと他の2つのバッチを再ダウンロードします。

私の仮説は、ダウンロードスクリプトに問題があり、ファイルを完全にダウンロードしていなかったというものでしたが、その仮説は、新しいファイルが正しいサイズであり、FTPクライアントを使用して手動でダウンロードして取得したという事実によって拒否されました同じ結果。

私の他の唯一の理論は、今日のNOAAファイルに問題があるか、PILがそれらを処理できないように変更されているということですが、私はそうは思わないでしょう。

助けてくれてありがとう、ありがとう

16
Sam Creamer

コンテンツが実際にディスクに同期されていない可能性があります。 Image.open(open("path/to/file", 'rb'))を試してください

14
wonder

For

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

試す

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

つまり、パス文字列の前にrを置きます。

2
A G

cv2を使用して画像を読み取ります。

im = cv2.imread(パス)

そしてオープンユース

cv2.imshow()

0
Devi Charith