Numpy应用案例
注:使用numpy库来对图像进行处理。这里我们使用matplotlib.pyplot的相关方法来辅助。
对于彩色图像,可以认为是由RGB三个通道构成的。每个最低维就是一个通道。分别提取R(红色),G(绿色),B(蓝色)三个通道,并显示单通道的图像。
对图像的操作,其实就是对三维数组[R,G,B]中的值的修改。
1、图像读取与显示
- plt.imread:读取图像,返回图像的数组。
- plt.imshow:显示图像。
- plt.imsave:保存图像。
说明:
- imread方法默认只能处理png格式的图像,如果需要处理其他格式的图像,需要安装pillow库。
import numpy as np
import matplotlib.pyplot as plt
# 读取图像数据,返回ndarray数组。
a = plt.imread("C:/Users/hubert/Desktop/数据分析就业班(上海3万培训班)/数据分析/1.jpg")
print(type(a))
print(a.shape)
# 显示图像。(传递表示图像的ndarray数组对象)
plt.imshow(a)
# 保存图像
plt.imsave("C:/Users/hubert/Desktop/数据分析就业班(上海3万培训班)/数据分析/python.jpg", a)
2、显示纯色图像
- 显示白色图像(创建一个数组,值都是255)
- 显示黑色图像(创建一个数组,值都是0)
- 显示指定颜色图像(通过截图可以看到RGB像素大小)
图像可以有两种表示方式:
- 使用无符号的np.uint8,取值是0-255
- 使用float类型表示,取值是0.0-1.0。其中float类型的0.0对应整数的0,float类型的1.0对应整数类型的1.0
a = np.zeros([400,400,3])
# 显示图像。(传递表示图像的ndarray数组对象)
plt.imshow(a)
或者
a = np.full((100,100,3),0,dtype=np.uint8)
# 显示图像。(传递表示图像的ndarray数组对象)
plt.imshow(a)
# float类型
a = np.ones([100,100,3])
plt.imshow(a)
或者
# np.uint8类型
b = np.full((100,100,3),255,dtype=np.uint8)
plt.imshow(b)