如何在Python中将一维图像数组转换为PIL图像

发布于 2021-01-29 16:31:39

我的问题与Kaggle数据科学竞赛有关。我试图从含有一维阵列读取的图像 1比特灰度级 像素信息( 0到255)28x28图像
。因此,数组是从 0到783 ,其中每个像素编码为x = i * 28 + j。

将其转换为二维28x28矩阵:

000 001 002 003 ... 026 027
028 029 030 031 ... 054 055
056 057 058 059 ... 082 083
 |   |   |   |  ...  |   |
728 729 730 731 ... 754 755
756 757 758 759 ... 782 783

出于图像处理(调整大小,倾斜)的原因,我想将该数组读入内存中的PIL图像。我对Matplotlib图像函数进行了一些研究,我认为这是最有希望的。另一个想法是Numpy图片功能

我正在寻找
的代码示例向我展示了如何通过Numpy或Matplotlib或其他任何方式加载该一维数组。或者如何使用例如Numpy.vstack将该数组转换为二维图像,然后将其读取为图像。

关注者
0
被浏览
182
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以使用以下方法将NumPy数组转换为PIL图像Image.fromarray

    import numpy as np
    from PIL import Image
    
    arr = np.random.randint(255, size=(28*28))
    img = Image.fromarray(arr.reshape(28,28), 'L')
    

    L模式表示阵列值代表亮度。结果将是灰度图像。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看