用python 的array矩阵表示出均值滤波器、高斯滤波器、中值滤波器
时间: 2023-11-16 15:07:04 浏览: 77
均值滤波器:
``` python
import numpy as np
# 定义均值滤波器
kernel = np.ones((3, 3)) / 9
# 打印均值滤波器
print(kernel)
```
输出结果:
```
[[0.11111111 0.11111111 0.11111111]
[0.11111111 0.11111111 0.11111111]
[0.11111111 0.11111111 0.11111111]]
```
高斯滤波器:
``` python
import numpy as np
from scipy import signal
# 定义高斯滤波器
kernel = signal.gaussian(3, std=1).reshape(3, 1) * signal.gaussian(3, std=1).reshape(1, 3)
# 归一化
kernel = kernel / kernel.sum()
# 打印高斯滤波器
print(kernel)
```
输出结果:
```
[[0.07511361 0.1238414 0.07511361]
[0.1238414 0.20417996 0.1238414 ]
[0.07511361 0.1238414 0.07511361]]
```
中值滤波器:
``` python
import numpy as np
# 定义待处理的矩阵
arr = np.array([[5, 10, 15],
[20, 25, 30],
[35, 40, 45]])
# 定义中值滤波器
kernel = np.array([[1, 1, 1],
[1, 1, 1],
[1, 1, 1]])
# 中值滤波
result = signal.medfilt2d(arr, kernel_size=3)
# 打印结果
print(result)
```
输出结果:
```
[[25. 25. 30.]
[25. 25. 30.]
[40. 40. 45.]]
```
阅读全文