导入需要的包
1
2
3
4
|
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline ##嵌入画图在jupyter中使用,开发工具中去除
from PIL import Image
|
测试打开图片
1
2
|
img = Image.open('123.jpeg')
img
|
转换为Numpy元组
1
2
3
|
img_1 = np.asanyarray(img)
img_1.shape
#(960, 720, 3) 长,宽,3个颜色通道分别为Red、Green、Blue
|

复制一份图片
1
|
img_1_copy = img_1.copy() #保持原图可二次修改
|
颜色通道修改
1
2
3
4
|
plt.imshow(img_1_copy[:,:,0])
#单独显示了红色通道。
img[:,:] = [255, 255, 0]
# RGB值(255, 255, 0)代表黄色——颜色的混合
|
Matplotlib的颜色映射
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Matplotlib 提供了许多预定义的颜色映射。以下是一些常见的颜色映射:
- 'viridis':默认的颜色映射,从深蓝色到黄色的渐变。
- 'plasma':从深紫色到橙色的渐变。
- 'inferno':从黑色到深红色的渐变。
- 'magma':从黑色到白色,中间包含紫色和橙色的渐变。
- 'cividis':从深蓝色到黄色的渐变,设计用于色盲友好。
- 'Greys':从黑色到白色的灰度渐变。
- 'Purples':从浅紫色到深紫色的渐变。
- 'Blues':从浅蓝色到深蓝色的渐变。
- 'Greens':从浅绿色到深绿色的渐变。
- 'Oranges':从浅橙色到深橙色的渐变。
- 'Reds':从浅红色到深红色的渐变。
|
几个栗子,参考参考
原图:一只小盲仔



Matplotlib的imshow()函数期望图像是RGB格式的。所以,如果你在OpenCV中处理图像(它使用BGR),然后想用Matplotlib显示图像,你需要将其从BGR转换为RGB。
1
2
3
4
5
6
7
8
9
|
import cv2
from matplotlib import pyplot as plt
img_bgr = cv2.imread('image.jpg')
img_rgb = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB)
plt.imshow(img_rgb)
plt.show() #显示所有已经创建的图像
|
注意
图上所示:img_1_copy[:,:,0])
0、1、2 分别代表图像的所有行数,所有列,索引值
索引值说明: 0、1、2分别对应红、绿、蓝(RGB)
如果使用OpenCV打开就是蓝、绿、红(BGR)。