美文网首页
99. 修正阿尔法均值滤波器

99. 修正阿尔法均值滤波器

作者: 大龙10 | 来源:发表于2025-08-22 07:12 被阅读0次

7. 图像复原与重建索引

一、修正阿尔法均值滤波器(Modified alpha-mean filter)

  • 修正阿尔法均值滤波器也属于统计排序滤波器,其思想类似于比赛中去掉最高分和最低分后计算平均分的方法。
  • 令Sxy 表示中心在点 (x,y) 、大小为 m∗n 的矩形子窗口(邻域)的一组坐标,修正阿尔法均值滤波器在由 Sxy 定义的邻域中,删除 d 个最低灰度值和 d 个最高灰度值,计算剩余像素g_R(r,c)的算术平均值作为输出结果,即:

    d 的取值范围是[0,mn/2−1]。选择 d 的大小对图像处理的效果影响很大,当 d=0 时简化为算术平均滤波器,当d=mn/2−1 简化为中值滤波器。d 取其它值时,适合于处理多种混合噪声,如高斯噪声和椒盐噪声。

二、例程

  • 9.13:修正阿尔法均值滤波器
import cv2
import numpy as np
from matplotlib import pyplot as plt
# 9.13: 修正阿尔法均值滤波器 (Modified alpha-mean filter)
img = cv2.imread(r"E:/OpenCV/Fig0507b.tif", 0)  # flags=0 读取为灰度图像
img_h = img.shape[0]
img_w = img.shape[1]

m, n = 5, 5
kernalMean = np.ones((m, n), np.float32)  # 生成盒式核

# 边缘填充
hPad = int((m-1) / 2)
wPad = int((n-1) / 2)
imgPad = np.pad(img.copy(), ((hPad, m-hPad-1), (wPad, n-wPad-1)), mode="edge")

imgAlphaFilter0 = np.zeros(img.shape)
imgAlphaFilter1 = np.zeros(img.shape)
imgAlphaFilter2 = np.zeros(img.shape)
for i in range(img_h):
    for j in range(img_w):
        # 邻域 m * n
        pad = imgPad[i:i+m, j:j+n]
        padSort = np.sort(pad.flatten())  # 对邻域像素按灰度值排序

        d = 1
        sumAlpha = np.sum(padSort[d:m*n-d-1])  # 删除 d 个最大灰度值, d 个最小灰度值
        imgAlphaFilter0[i, j] = sumAlpha / (m*n-2*d)  # 对剩余像素进行算术平均

        d = 2
        sumAlpha = np.sum(padSort[d:m*n-d-1])
        imgAlphaFilter1[i, j] = sumAlpha / (m*n-2*d)

        d = 4
        sumAlpha = np.sum(padSort[d:m*n-d-1])
        imgAlphaFilter2[i, j] = sumAlpha / (m*n-2*d)

plt.figure(figsize=(9, 7))
plt.subplot(221), plt.axis('off'), plt.title("Original")
plt.imshow(img, cmap='gray', vmin=0, vmax=255)
plt.subplot(222), plt.axis('off'), plt.title("Modified alpha-mean(d=1)")
plt.imshow(imgAlphaFilter0, cmap='gray', vmin=0, vmax=255)
plt.subplot(223), plt.axis('off'), plt.title("Modified alpha-mean(d=2)")
plt.imshow(imgAlphaFilter1, cmap='gray', vmin=0, vmax=255)
plt.subplot(224), plt.axis('off'), plt.title("Modified alpha-mean(d=4)")
plt.imshow(imgAlphaFilter2, cmap='gray', vmin=0, vmax=255)
plt.tight_layout()
plt.show()

三、资料

youcans_的博客:
https://blog.csdn.net/youcans/article/details/122839469

相关文章

  • 滤波器的分类

    a.平滑空间滤波器:去除图像中不重要的细节,减少噪声b.锐化空间滤波器: a.平滑空间滤波器 线性滤波器(均值滤波...

  • 滤波器

    傅里叶变换及高低通滤波器的分类(均值滤波,高斯滤波,sobel,scharr,拉普拉斯滤波器) - CSDN博客 ...

  • 均值滤波器

    一、算术均值滤波器 1.1 原理:简单使用定义区域中的像素得出算术均值 1.2 公式 1.3 代码 1.4 效果 ...

  • OpenCV for iOS 学习笔记(九)—— 图像毛玻璃处理

    环境配置 :OpenCV在xCode中的安装与环境配置 函数 均值平滑函数(均值滤波器)(blur) 所有像素加权...

  • OpenCV 中的滤波函数

    blur 也称为 box filter、均值滤波器,就是简单地将每个像素的值替换成邻域平均值。 如果用 kerne...

  • opencv中的各种滤波

    版权声明:转载需邮件联系我并取得授权 常用的几种滤波方式有 盒滤波器(boxFilter) 均值滤波(blur):...

  • 着色器图像处理(高斯模糊)

    模糊滤波器就是对周围像素进行加权平均处理,对于均值模糊算法来讲,周围所有邻域像素点的权值都相同,所以不是很平滑,会...

  • Scharr与Laplacian滤波器---OpenCV-Pyt

    Scharr滤波器 OpenCV还给我们提供了Scharr滤波器,该滤波器与Sobel滤波器具有同样的处理速度,且...

  • 直接生成频域滤波

    接上文:傅立叶变换滤波 频域滤波器 理想低通滤波器 巴特沃兹低通滤波器 高斯低通滤波器 dftuv的实现 dftu...

  • Chapter 2.1 实现一个均值滤波器

    本节我们利用tf的一些函数来实现一个最简单的均值滤波器对图片进行滤波,假设图片的大小为16*16*1,设计一个模...

网友评论

      本文标题:99. 修正阿尔法均值滤波器

      本文链接:https://www.haomeiwen.com/subject/twugojtx.html