Pillow - 带有 Numpy 的机器学习
-
简述
在本章中,我们使用 numpy 来存储和操作图像数据,使用 python 图像库 - “pillow”。在继续本章之前,以管理员模式打开命令提示符并在其中执行以下命令以安装 numpy -pip install numpy
Note− 仅当您安装并更新了 PIP 时才有效。 -
从 Numpy 数组创建图像
使用 PIL 创建 RGB 图像并将其保存为 jpg 文件。在以下示例中,我们将 --
创建一个 150 x 250 像素的阵列。
-
用橙色填充数组的左半部分。
-
用蓝色填充数组的右半部分。
from PIL import Image import numpy as np arr = np.zeros([150, 250, 3], dtype=np.uint8) arr[:,:100] = [255, 128, 0] arr[:,100:] = [0, 0, 255] img = Image.fromarray(arr) img.show() img.save("RGB_image.jpg")
输出
-
-
创建灰度图像
创建灰度图像与创建 RGB 图像略有不同。我们可以使用二维数组来创建灰度图像。from PIL import Image import numpy as np arr = np.zeros([150,300], dtype=np.uint8) #Set grey value to black or white depending on x position for x in range(300): for y in range(150): if (x % 16) // 8 == (y % 16)//8: arr[y, x] = 0 else: arr[y, x] = 255 img = Image.fromarray(arr) img.show() img.save('greyscale.jpg')
输出
-
从图像创建 numpy 数组
您可以将 PIL 图像转换为 numpy 数组,反之亦然。下面说明了一个演示相同的小程序。例子
#Import required libraries from PIL import Image from numpy import array #Open Image & create image object img = Image.open('beach1.jpg') #Show actual image img.show() #Convert an image to numpy array img2arr = array(img) #Print the array print(img2arr) #Convert numpy array back to image arr2im = Image.fromarray(img2arr) #Display image arr2im.show() #Save the image generated from an array arr2im.save("array2Image.jpg")
输出
如果将上述程序保存为 Example.py 并执行 --
它显示原始图像。
-
显示从中检索到的数组。
-
将数组转换回图像并显示它。
-
由于我们使用了 show() 方法,因此使用默认的 PNG 显示实用程序显示图像,如下所示。
[[[ 0 101 120] [ 3 108 127] [ 1 107 123] ... ... [[ 38 59 60] [ 37 58 59] [ 36 57 58] ... [ 74 65 60] [ 59 48 42] [ 66 53 47]] [[ 40 61 62] [ 38 59 60] [ 37 58 59] ... [ 75 66 61] [ 72 61 55] [ 61 48 42]] [[ 40 61 62] [ 34 55 56] [ 38 59 60] ... [ 82 73 68] [ 72 61 55] [ 63 52 46]]]
Original ImageImage constructed from the array -