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"問題分析與解決解決方案錯誤原因這就解決了?繼續...

繼續閱讀