事实上,当我在正确加载图像以使用PIL读回图像的阶段遇到困难时,我想在不解码的情况下将JPEG图像插入数据帧(panda)中(以节省位置)。
from PIL import Image
with open(fname, "rb") as f:
data = f.read()
img = Image.frombytes('RGB',d,data)
img = np.asarray(map(ord,img))
我在上面用ord()找到了一个解决方案,但速度有点慢。有什么更快的方法吗?
我已经解决了问题,谢谢!
您可以使用mahotas
,这是一个用于读取/量化图像的流行库。通过端子pip install mahotas
安装。
import mahotas as mh
import numpy as np
original_img = np.array(mh.imread('figure1.jpg'), dtype=np.float64) / 255
# check dimension, RGB
original_img.shape
Out[13]: (1536, 2048, 3)
width, height, depth = original_img.shape
# reshape
image_flattened = np.reshape(original_img, (width*height, depth))
image_flattened.shape
Out[17]: (3145728, 3)