web-dev-qa-db-ja.com

ValueError:モード 'i'で指定されたファイルを読み取るためのフォーマットが見つかりませんでした

Dockerで実行されているpython-flaskアプリケーションにpngファイルを読み込もうとすると、次のエラーが表示されます

ValueError:モード 'i'で指定されたファイルを読み取るためのフォーマットが見つかりませんでした

hTMLファイルを使用してファイルをアップロードしましたが、さらに処理するために読み取ろうとしています。 scipy.misc.imreadは非推奨であり、これをimageio.imreadに置き換えようとしています

if request.method=='POST':
    file = request.files['image']
    if not file: 
        return render_template('index.html', label="No file")
    #img = misc.imread(file)
    img = imageio.imread(file)

私はこのエラーを受け取ります:

File "./appimclass.py", line 34, in make_prediction

img = imageio.imread(file)

File "/usr/local/lib/python3.6/site-packages/imageio/core/functions.py", line 221, in imread

reader = read(uri, format, "i", **kwargs)

File "/usr/local/lib/python3.6/site-packages/imageio/core/functions.py", line 139, in get_reader

"Could not find a format to read the specified file " "in mode %r" % mode
7
Calcutta

最近まったく同じ問題があり、その問題は単一の破損したファイルでした。最良の方法は、PILなどを使用して不良ファイルをチェックすることです。

import os
from os import listdir
from PIL import Image

dir_path = "/path/"


for filename in listdir(dir_path):
    if filename.endswith('.jpg'):
        try:
            img = Image.open(base_dir+"\\"+filename) # open the image file
            img.verify() # verify that it is, in fact an image
        except (IOError, SyntaxError) as e:
            print('Bad file:', filename)
            #os.remove(base_dir+"\\"+filename) (Maybe)
0
Dipan Ghosh

オプション「pilmode」を追加します。

imageio.imread(filename,pilmode="RGB")

それは私のために働いた。

今日この問題が発生しましたが、imageioに読み込む前にファイルを閉じた場合、問題は解消されました。

エラーは:

_File "/home/vinny/pvenvs/chess/lib/python3.6/site-packages/imageio/core/functions.py", line 139, in get_reader                                                  "Could not find a format to read the specified file " "in mode %r" % mode  ValueError: Could not find a format to read the specified file in mode 'i' 
_

解決策:file.close()images.append(imageio.imread(filename))の前ではなく、前に置きます。

0
Uncle Vinny