处理HED的时候碰到一段代码(读取图片并转为数组)出错,源代码如下:
from io import StringIO
import numpy as np
from PIL import Image
fid = open(test_image, 'r')
stream = fid.read()
fid.close()
image_buffer = StringIO(stream)
image = Image.open(image_buffer)
image = np.array(image, np.float32)
log类似”jpg ‘gbk’ codec can’t decode byte in position”的形式,属于编码错误。
源代码为python2,怀疑是版本兼容的锅,改成如下即可:
from io import BytesIO
import numpy as np
from PIL import Image
fid = open(test_image, 'rb')
stream = fid.read()
fid.close()
image_buffer = BytesIO(stream)
image = Image.open(image_buffer)
image = np.array(image, np.float32)
注意主要是使用’rb’代替’r’,使用BytesIO代替StringIO。