- 添加高斯噪声:
- 原理:依据设定的均值和方差,生成符合高斯分布的噪声数组,再与原始图像相加。通过方差的平方根确定噪声标准差,利用随机生成的高斯分布数值构成噪声。
- 特点:使图像整体模糊,引入随机灰度变化,模拟电子设备等产生的噪声。
def add_gaussian_noise(image, mean=0, var=1000):
sigma = var ** 0.1
gauss = np.random.normal(mean, sigma, image.shape).astype(np.uint8)
noisy_image = cv2.add(image, gauss)
return noisy_image
该函数接受一个图像、均值和方差作为参数,生成符合高斯分布的噪声并添加到图像上,返回带噪声的图像。
- 算术均值滤波:
- 原理:构建大小固定的滤波器核,核内元素值均为 1 除以核面积。将此核与图像卷积,对每个像素点及其邻域像素的灰度值做算术平均,得到滤波后的像素值。
- 特点:可平滑图像、去除随机噪声(如高斯噪声),但会模糊图像边缘和细节。
def arithmetic_mean_filter(image, kernel_size=5):
kernel = np.ones((kernel_size, kernel_size), np.float32) / (kernel_size ** 2)
return cv2.filter2D(image, -1, kernel)
创建一个指定大小的均值滤波器核,使用cv2.filter2D对图像进行卷积操作,实现算术均值滤波。
- 几何均值滤波:
- 原理:先将图像转为浮点数防溢出,再进行填充。遍历每个像素点,取其邻域像素,对邻域内大于 0 的像素值取对数后求平均,再取指数得到几何均值,作为滤波后的像素值。
- 特点:比算术均值滤波更能保留图像细节,能平滑噪声,一定程度维持图像原有结构。
def geometric_mean_filter(image, kernel_size=5):
# 将图像转换为浮点数,以避免溢出
image = image.astype(np.float32)
# 创建结果图像
filtered_image = np.zeros_like(image)
数字图像复原与重建的方法及原理

最低0.47元/天 解锁文章
2186

被折叠的 条评论
为什么被折叠?



