12

我正在尝试将 png 文件读入在 docker 中运行的 python-flask 应用程序,并收到一条错误消息

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
4

6 回答 6

9

不同,但以防万一。我在不同的库(skimage)中遇到了相同的错误,解决方案是像这样添加一个额外的“插件”参数 -

image = io.imread(filename,plugin='matplotlib')
于 2019-04-28T18:52:18.200 回答
4

最近有完全相同的问题,问题是一个损坏的文件。最好是使用 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)
于 2019-04-02T11:39:19.930 回答
1

我今天遇到了这个问题,发现如果我在将文件读入 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)),而不是之后。

于 2019-10-03T05:58:16.600 回答
1

添加选项“pilmode”:

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

它对我有用。

于 2019-12-21T01:06:05.757 回答
1

在此处输入图像描述

我遇到了同样的错误,最后我发现是因为图片损坏了。

于 2020-05-06T09:25:41.993 回答
0

我不小心将一些图像保存为 PDF,所以发生了错误。删除那些不兼容的格式图像后解决。

于 2020-10-16T11:08:20.327 回答