尝试将jpg文件提取到numpy数组时如何处理"OSError: Cannot seek back after getting firstbytes"



我正在尝试将zip文件中的所有图像收集到numpy数组中。

总是收到错误:OSError:获得第一个字节后无法回头!

import urllib.request
import os
import zipfile
import scipy
import numpy as np
import pandas as pd
import glob
import imageio
from os.path import splitext
url = 'https://github.com/yoavram/Sign-Language/raw/master/Dataset.zip'
filename = '../data/sign-lang'
if not os.path.exists('../data'):
    os.mkdir('../data')
if not os.path.exists(filename):
    urllib.request.urlretrieve(url, filename)
zf = zipfile.ZipFile(filename)
for file in zf.namelist():
    basename,extension = splitext(file)
    if extension == '.jpg':
        with zf.open(file) as img_file:
            img = imageio.read(img_file)

帮助?

我在很长一段时间内都遇到了类似的问题。

问题是imageio.read()需要字节,但提供了文件类型对象。

要解决此问题,只需从文件中读取字节即可。

img = imageio.read(img_file.read())

另外,如果你想要 numpy 数组,你应该使用imageio.imread()

最新更新