PIL IOError: cannot identify image file './temp.jpg'

用pytorch训练神经网络的时候,用PIL保存图片之后立即读出,出现问题。主要是想用PIL包进行图像压缩的图像处理
源码:

            name = './temp.jpg'
            pil.save(name, "JPEG", quality=ratio)
            img = Image.open(name)
            pil = img

报错
IOError: Traceback (most recent call last):
File “/home/chenjun/anaconda2/envs/mypytorch/lib/python2.7/site-packages/torch/utils/data/dataloader.py”, line 106, in _worker_loop
samples = collate_fn([dataset[i] for i in batch_indices])
File “/media/chenjun/ed/31_ocr_own/Calligraphy_crnn/mech_demo2/src/dataset.py”, line 115, in getitem
img = self.transform(img)
File “/media/chenjun/ed/31_ocr_own/Calligraphy_crnn/mech_demo2/src/utils.py”, line 323, in call
img = t(img)
File “/media/chenjun/ed/31_ocr_own/Calligraphy_crnn/mech_demo2/src/utils.py”, line 307, in call
img = Image.open(name)
File “/home/chenjun/anaconda2/envs/mypytorch/lib/python2.7/site-packages/PIL/Image.py”, line 2657, in open
% (filename if filename else fp))
IOError: cannot identify image file ‘./002.jpeg’

解决方案:
采用opencv读取的方式读入图片
temp = cv2.imread(name)
pil = Image.fromarray(temp[:,:,::-1])

AttributeError: ‘NoneType’ object has no attribute ‘shape’
发现是图片本身的问题

具体原因:
pytorch的dataloader是多线程的,减少num_worker就好了。

train_loader = torch.utils.data.DataLoader(  # 训练数据集
    train_dataset, batch_size=opt.batchSize,
    shuffle=False, sampler=sampler,
    num_workers=int(opt.workers),
    collate_fn=dataset.OwnalignCollate(imgH=opt.imgH, keep_ratio=opt.keep_ratio))

参考

  1. https://zhidao.baidu.com/question/1862277844188704627.html

更多相关推荐

IOError: cannot identify image...

1、IOError:cannotidentifyimagefile 解决方案:将改为 2、Unresolvedimport:Image 打开eclips...

继续阅读

PIL.UnidentifiedImageError:can...

问题当图像大小为0KB时,使用下面的代码读取图像时出现如下错误。解决方法

继续阅读

python IOError: cannot identif...

Python 做图像处理,输出一副图片的大小。代码如下:运行报错:IOError:cannotidentifyimagefi...

继续阅读

python——报错解决:Unidentified...

我在使用网上的远古代码的时候遇到了该错误解决方法把替换成错误原因为:Image已经被并入PIL库...

继续阅读

解决pil.unidentifiedimageerror...

博客上各种解决办法我都试过,全都行不通,当然,用原图替换是可以的,但是由于数据集庞大,一...

继续阅读

OSError: cannot identify image...

我出现的问题是OSError:cannotidentifyimagefile<_io.BytesIOobjectat0x7f02cad50780>,但是这...

继续阅读

python通过PIL读入图片时,报错...

出现原因:操作系统不能执行指定的任务(如打开文件)时引发的。我这里,是要处理大量的图片,...

继续阅读

Python (三): PIL.Image基本图像...

Python三:图像处理需要Import的库基本操作新建,裁剪,缩放和粘贴旋转和翻转滤镜通道分离,像素操...

继续阅读

python PIL.Image 图像处理

图像处理图像的RGB色彩模式图像一般使用RGB色彩模式,即每个像素点的颜色由RGB组成(红、绿、...

继续阅读

Python程序中PIL Image "image f...

Python程序中PILImage"imagefileistruncated"问题分析与解决解决方案错误原因这就解决了?继续...

继续阅读