利用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)。