利用numpy对图像进行操作
利用matplotlib读取图片并显示:
1
2
3
4
5
import numpy as np
import matplotlib.pyplot as plt
fish = plt.imread("fish.png")
plt.imshow(fish)
左右翻转:
1
2
fish1 = fish[:,::-1]
plt.imshow(fish1)
上下翻转:
1
2
fish2 = fish[::-1]
plt.imshow(fish2)
颜色翻转:
1
2
fish3 = fish[:, :, ::-1]
plt.imshow(fish3)
降低精度:
1
2
fish4 = fish[::4, ::4]
plt.imshow(fish4)
打马赛克:
例如给眼睛打马赛克:
1
2
# 首先找到眼睛在哪里
plt.imshow(fish[55:94, 75:115])
1
2
3
# 随机赋值
fish[55:94, 75:115] = np.random.rand(94 - 55, 115 - 75, 3)
plt.imshow(fish)
注:
np.random.rand(94 - 55, 115 - 75, 3)
: 这部分代码生成一个随机数数组。
- 94 - 55 = 39: 计算矩形区域的高度 (行数)。
- 115 - 75 = 40: 计算矩形区域的宽度 (列数)。
- 3: 指定颜色通道数为 3 (RGB)。