彩色图实现均值滤波代码
时间: 2023-10-26 11:02:57 浏览: 77
以下是彩色图实现均值滤波的 Python 代码:
```python
import cv2
import numpy as np
# 读取彩色图像
img = cv2.imread('lena.jpg')
# 获取图像的行和列
rows, cols = img.shape[:2]
# 设置滤波器的大小
kernel_size = 5
# 创建一个与原始图像相同大小的空图像
filtered_img = np.zeros_like(img)
# 对每个通道进行均值滤波
for c in range(3):
# 对每个像素进行滤波
for i in range(rows - kernel_size):
for j in range(cols - kernel_size):
# 获取当前像素周围的像素
roi = img[i:i+kernel_size, j:j+kernel_size, c]
# 计算当前像素的均值
mean = np.mean(roi)
# 将均值赋值给新图像对应位置的像素
filtered_img[i+kernel_size//2, j+kernel_size//2, c] = mean
# 显示原始图像和处理后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Filtered Image', filtered_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个代码中,我们首先读取彩色图像 `lena.jpg`,然后设置滤波器的大小为 5。接着,我们创建一个与原始图像大小相同的空图像 `filtered_img`,并对每个通道进行均值滤波。对于每个像素,我们获取其周围的像素,计算均值,并将其赋值给新图像对应位置的像素。最后,我们显示原始图像和处理后的图像。
阅读全文