繁体   English   中英

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

[英]how to convert a 1-dimensional image array to PIL image in Python

我的问题与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或其他任何东西加载这个1维数组。 或者如何使用例如Numpy.vstack将该数组转换为二维图像,然后将其作为图像读取。

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

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模式表示数组值表示亮度。 结果将是灰度图像。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM