将PIL装变为np.array
时间: 2023-04-04 07:00:52 浏览: 137
可以使用numpy库中的asarray()函数将PIL Image对象转换为numpy数组,代码如下:
```python
import numpy as np
from PIL import Image
# 读取图片
img = Image.open('image.jpg')
# 将PIL Image对象转换为numpy数组
img_array = np.asarray(img)
# 打印数组形状
print(img_array.shape)
```
其中,'image.jpg'为图片文件的路径,img_array为转换后的numpy数组,可以通过打印数组形状来验证转换是否成功。
相关问题
# default to score-sde preprocessing img = np.array(image).astype(np.uint8) crop = min(img.shape[0], img.shape[1]) h, w, = img.shape[0], img.shape[1] img = img[(h - crop) // 2:(h + crop) // 2, (w - crop) // 2:(w + crop) // 2]解析
这是一段图像处理的代码,其目的是对输入的图像进行预处理。首先将输入的 PIL Image 转换成 numpy 数组,并将其转换为 uint8 类型。接着,将图像的高度和宽度进行比较,取较小值作为 crop 的大小。然后,根据 crop 的大小对图像进行裁剪,从中心点开始裁剪出一个正方形区域。这样做的目的是将图像变为一个正方形,方便后续的处理。最后得到处理后的图像 numpy 数组。在这段代码中,score-sde 是一种图像增强的方法,但是这里没有具体实现。
sys.path.append(os.pardir) import os import sys import numpy as np from dataset.mnist import load_mnist from PIL import Image def img_show(img): pil_img = Image.fromarray(np.uint8(img)) pil_img.show() (x_train, t_train), (x_test, t_test) = load_mnist(flatten=True, normalize=False) img = x_train[0] label = t_train[0] print(label) print(img.shape)#784 img = img.reshape(28, 28)#把图像形状变为原来的尺寸 print(img.shape)#(28,28) img_show(img)
这段代码的作用是导入需要的模块和数据集,然后定义了一个函数img_show用于显示图像。load_mnist函数用于加载MNIST数据集,其中flatten=True表示将图像展开成一维数组,normalize=False表示不对图像进行归一化处理。接着从训练集中取出第一张图像和对应的标签,并打印出来。最后,调用img_show函数显示图像。
阅读全文