去噪滤波算法
高斯滤波(Gaussian Filter)
通过使用高斯分布的权重来计算邻近像素的加权平均值
优点: 能够平滑图像的同时保留边缘信息
缺点: 参数设置较为复杂
使用现成库
python
# 高斯去噪
img = cv2.GaussianBlur(img, (3, 3), 0)自定义实现
python
import numpy as np
def gaussian_filter(image, sigma):
kernel = create_gaussian_kernel(sigma)
return cv2.filter2D(image, -1, kernel)
def create_gaussian_kernel(sigma):
size = int(3 * sigma * 3) + 1
kernel = np.zeros((size, size))
center = (size - 1) // 2
for i in range(size):
for j in range(size):
x = i - center
y = j - center
kernel[i][j] = (x * x + y * y) / (2 * sigma * sigma)
return np.exp(-kernel) / (2 * np.pi * sigma * sigma)均值滤波(Mean Filter)
取邻近像素的平均值来替代中心像素的值
优点: 简单快速
缺点: 会导致图像模糊
python
mean_blurred = cv2.blur(image, ksize=(5,5))中位数滤波(Median Filter)
类似于均值滤波,但会取邻近像素的中位数作为结果
优点: 对噪声鲁棒性更强
缺点: 计算较慢
python
median_blurred = cv2.medianBlur(image, ksize=5)