Pillow和ndarray数组
NumPy 是 Python 科学计算的基础数据包,它被大量的应用于机器学习领域,比如图像识别、自然语言处理、数据挖掘等。想了解学习 NumPy,可跳转至《NumPy快速入门教程》。
ndarray 是 NumPy 中的数组类型,也称为 ndarray 数组,该数组可以与 Pillow 的 PIL.Image 对象实现相互转化。
图1:NumPy数组创建图像
图2:显示原图
组成图片的像素点数组如下所示:
ndarray 是 NumPy 中的数组类型,也称为 ndarray 数组,该数组可以与 Pillow 的 PIL.Image 对象实现相互转化。
ndarray数组创建图像
下面通过 ndarray 数组构建一个 Image 对象,并将图像显示出来。示例如下:#导入相关的包 from PIL import Image #使用numpy之前需要提前安装 import numpy as np #创建 300*400的图像,3个颜色通道 array = np.zeros([300,400,3],dtype=np.uint8) #rgb色彩模式 array[:,:200]=[255,0,0] array[:,200:]=[255,255,0] img = Image.fromarray(array) img.show() img.save("C:/Users/Administrator/Desktop/数组生成图像.png")输出结果如下所示:
图1:NumPy数组创建图像
图像转化为ndarray数组
下面将图像以 ndarray 数组的形式进行输出,示例如下:from PIL import Image import numpy as np img = Image.open("C:/Users/Administrator/Desktop/大熊猫.png") img.show() #Image图像转换为ndarray数组 img_2 = np.array(img) print(img_2) #ndarray转换为Image图像 arr_img = Image.fromarray(img_2) #显示图片 arr_img.show() #保存图片 arr_img.save("C:/Users/Administrator/Desktop/arr_img.png")图片展示结果:
图2:显示原图
[[[113 108 105] [118 113 110] [139 131 128] ... [139 148 155] [137 146 153] [139 148 155]] [[ 97 92 89] [124 118 115] [137 129 126] ... [143 152 159] [140 149 156] [140 149 156]] [[102 97 94] [123 118 115] [135 128 125] ... [144 153 160] [142 151 158] [143 152 159]] ... [[168 175 134] [175 183 142] [151 162 120] ... [ 99 143 66] [111 155 77] [131 175 98]] [[152 164 118] [147 160 114] [140 156 109] ... [123 167 87] [126 171 90] [120 165 84]] [[136 154 104] [127 145 95] [156 176 125] ... [168 213 130] [142 187 104] [ 69 114 31]]]