簡體   English   中英

PIL.Image.verify() 破壞了將 PIL 圖像轉換為 Numpy 的能力

[英]PIL.Image.verify() breaks ability to convert PIL image to Numpy

此代碼按預期工作:

import numpy as np
import PIL.Image


img = PIL.Image.open('test.png')
img_np = np.array(img)
print(img_np.dtype, img_np.shape)

> uint8 (192, 256)

當我添加verify()時, img_np變為 object,而不是圖像數據:

import numpy as np
import PIL.Image


img = PIL.Image.open('test.png')
img.verify()
img_np = np.array(img)
print(img_np.dtype, img_np.shape)

> object ()

有沒有辦法在verify()之后將 PIL 圖像轉換為 numpy ? 還是我們真的必須再次打開圖像? 以下確實有效,但很hacky。

import numpy as np
import PIL.Image


img = PIL.Image.open('test.png')
img.verify()
img = PIL.Image.open('test.png')
img_np = np.array(img)
print(img_np.dtype, img_np.shape)

> uint8 (192, 256)

這是記錄在案的行為

Image.verify()

驗證文件的內容。 對於從文件讀取的數據,此方法嘗試確定文件是否損壞,而不實際解碼圖像數據。 如果此方法發現任何問題,它會引發適當的異常。 如果使用此方法后需要加載圖像,則必須重新打開圖像文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM