【图像处理lec3、4】空间域的图像增强

ops/2024/12/18 22:18:05/

目录

1. 空间域图像增强的背景与目标

2. 空间域处理的数学描述

3. 灰度级变换

4. 幂律变换(Power-Law Transformation)

5、 分段线性变换

Case 1: 对比度拉伸

Case 2: 灰度切片

Case 3: 按位切片

6、对数变换(Logarithmic Transformation)

7、对比度拉伸(Contrast-Stretching Transformation)

8、直方图均衡

(1)直方图的定义

(2)直方图归一化

(3)直方图生成与显示

(4)直方图的对比分析

(5)代码示例

(6)直方图均衡

i、目标:

ii、概率密度函数 (PDF) 和累计分布函数 (CDF)

iii、直方图均衡的变换函数

iv、离散版本的直方图均衡

9、直方图匹配

(1)原理概述

(2)直方图匹配的步骤

Step 1: 计算输入图像的累积分布函数 (CDF)

Step 2: 计算目标图像的累积分布函数 (CDF)

Step 3: 建立映射关系

Step 4: 应用映射

(3)示例

10、线性空间滤波

11、图像锐化

(1)锐化空间滤波的基本概念

(2)拉普拉斯滤波

(3)高提升滤波(High-Boost Filtering)

(4)图像梯度的计算与Sobel算子

12、非线性空间滤波

(1)定义与特点

(2)MATLAB工具箱中的非线性滤波

(3)具体实现与矩阵操作

13、非线性空间滤波去噪(去除椒盐噪声)

(1)非线性空间滤波工具 ordfilt2

(2)中值滤波器 medfilt2

(3)中值滤波的去噪效果对比


1. 空间域图像增强的背景与目标

  • 图像增强的目标:通过处理图像使其对特定应用更适合。这里强调“特定应用”是问题导向的,因此增强方法没有统一的理论标准。
  • 分类
    • 空间域方法:直接操作图像的像素。
    • 频域方法:基于傅里叶变换的操作。
  • 图像处理的评价
    • 对于视觉感知,评价取决于人类观察效果。
    • 对于机器感知,如字符识别,评价通过任务完成度衡量。

2. 空间域处理的数学描述

  • 数学表达式:g(x, y) = T[f(x, y)],其中 T 是一个操作符,可作用于像素的某个邻域。
  • 邻域选择:通常使用方形或矩形邻域,因其易于实现。
  • 最简单形式为强度变换,表示为 s = T(r),即像素值的变换。

3. 灰度级变换

  • 作用:调整图像像素值以实现增强效果。
  • 示例中展示了不同的变换函数(例如S型和阶梯型),对应灰度范围从暗到亮的不同映射。
  • 效果:调整对比度或强调特定灰度范围。

4. 幂律变换(Power-Law Transformation)

  • 数学公式:s = c r^\gamma,通过调节 \gamma 控制对比度。

  • 典型应用
    • Gamma校正:用于显示器的线性响应矫正。
    • 对比度增强:通过不同 \gamma 值调整图像的细节和亮度。
  • 下图展示了在医疗图像和航空图像中,通过不同的 \gamma 值实现对比增强效果。

5、 分段线性变换

Case 1: 对比度拉伸

  • 内容:图像的对比度拉伸通过增强低对比度区域来提高图像的视觉质量。
  • 方法
    • 输入灰度值 r  与输出灰度值 T(r)  之间建立分段线性关系。
    • 拉伸低对比度部分(通过设定阈值 r_1, r_2​)。
    • 示例:在原始低对比度图像上应用对比度拉伸,明显提高了对比度,增强了视觉效果。
Case 2: 灰度切片

  • 内容:通过灰度切片方法突出特定灰度范围的特性。
  • 方法
    • 两种形式:将感兴趣的灰度范围值保留,其他灰度值置为常数;或保留所有灰度值,但突出特定范围。
    • 应用:医学影像中,突出特定组织或结构。
Case 3: 按位切片

  • 内容:按位切片以分离图像的不同比特平面。
  • 方法
    • 图像由 8 个位平面组成,从最不重要位 (LSB) 到最重要位 (MSB)。
    • 应用:观察 MSB 可以捕获主要图像结构,LSB 常用于存储隐藏数据(如水印)。

6、图像处理工具箱中的函数 imadjust 

  • 功能imadjust 是 MATLAB 的图像处理工具箱中用于调整图像强度值分布的函数。
  • 语法g = imadjust(f, [low_in high_in], [low_out high_out], gamma)
    • 参数解释
      • low_in, high_in:输入强度值的范围。
      • low_out, high_out:映射到的输出强度值范围。
      • gamma:控制曲线的非线性程度。
  • 特点
    • gamma < 1:增强较暗区域的亮度。
    • gamma > 1:增强较亮区域的亮度。
    • 默认情况下,gamma = 1 表示线性映射。

  • 示例
    • 通过不同的参数组合调整乳腺图像对比度,以更清晰地观察病变区域。
图1
图2

图1左侧是从一个乳腺影像文件(Fig0303(a)(breast).tif)读取的,使用 imshow(I) 显示该图像,显示的是原始未处理的乳腺 X 光片。

图1右侧使用 G = imadjust(I, [0 1], [1 0]) 对原始图像进行处理,这种调整会产生一个负片效果,即原本亮的区域变暗,暗的区域变亮,显示负片的目的是强调图像中原本不明显的结构特征,方便分析。

图2左侧:对部分强度范围增强

  • 使用 G = imadjust(I, [0.5 0.75], [0 1])
  • 参数 [0.5 0.75] 选择了图像输入强度值的中间部分进行增强(从 0.5 到 0.75 的灰度范围)。
  • 输出 [0 1] 将这些强度范围映射到全新的灰度范围,增强了这一范围的对比度。
  • 结果是更强烈的对比,突出原图中特定强度范围的细节。

图2右侧:伽马变换增强

  • 使用 G = imadjust(I, [], [], 2)
  • 参数 [] 表示默认的输入强度范围 [0 1] 和输出强度范围 [0 1]2 是伽马值。
  • 伽马值为 2 表示对暗部区域的灰度值进行放大(权重偏向暗部区域),使得暗部区域的细节更加清晰。
  • 用于强调图像中的低灰度特征。

6、对数变换(Logarithmic Transformation)

  • 目的:压缩动态范围。对数变换常用于处理动态范围较大的图像数据,例如傅里叶频谱图。
  • 公式s = c \cdot \log(1 + r),其中 c 是常数。
  • 用途
    • 压缩高动态范围数据,例如从 [0, 10^6] 压缩到较小范围。
    • 通过 MATLAB 中的命令实现,例如 g = im2uint8(mat2gray(log(1 + double(f))))
  • 例子:傅里叶频谱图

7、对比度拉伸(Contrast-Stretching Transformation)

  • 公式s = \frac{1}{1 + (\frac{m}{r})^E}​,其中 m 为强度阈值,E 控制函数的斜率。

  • 作用
    • 将较低或较高的输入灰度值压缩到更窄的范围。
    • 提高图像对比度,尤其适合灰度值分布范围有限的图像。
  • MATLAB 实现:通过对应的公式,使用 double 数据类型进行计算。

8、直方图均衡

(1)直方图的定义

  • 图像的直方图是强度值的分布统计,是增强、压缩、分割和描述等图像处理操作的基础。
  • h(r_k) = n_k​,其中:
    • r_k​:第 k 个强度值;
    • n_k​:强度值为 r_k​ 的像素数量。

(2)直方图归一化

  • 通过归一化直方图,可以将像素数量转化为概率分布: p(r_k) = \frac{h(r_k)}{N} 这里 N 是总像素数。直方图归一化可以表示为灰度值强度的概率估计。

(3)直方图生成与显示

  • 使用 MATLAB 函数 imhistbar 绘制直方图:
    • imhist(f, b):计算直方图, b 是灰度级分箱的数量。
    • bar(horz, h1, width):绘制条形图,其中 horz 为横轴刻度,h1 为直方图数据。

(4)直方图的对比分析

  • 直方图可以帮助可视化图像的亮度分布。例如:
    • 暗图像的直方图主要集中在灰度较低的部分;
    • 亮图像的直方图主要集中在灰度较高的部分。

                                

(5)代码示例

        生成直方图:

f = imread('Fig3_8_a.tif');
h = imhist(f);
bar(h);

        绘制条形直方图:

s = imread('Fig0303(a).tif');
h1 = imhist(s, 16);
horz = 1:16;
bar(horz, h1, 0.8);

(6)直方图均衡

i、目标:
  • 增强图像的对比度。
  • 将图像的灰度分布调整为近似均匀分布。
ii、概率密度函数 (PDF) 和累计分布函数 (CDF)
  • PDF(概率密度函数):

    • 图像中每个灰度级的出现概率。
    • 定义为: p_r(r_k) = \frac{n_k}{N}​​ 其中:
      • r_k​ 是灰度级,
      • n_k​ 是灰度级 r_k​ 的像素个数,
      • N 是总像素数。
  • CDF(累计分布函数):

    • 累计分布函数是 PDF 的积分,用来表示灰度值从最小到当前灰度值的累计概率: T(r_k) = \sum_{j=0}^k p_r(r_j) 或连续形式: T(r) = \int_0^r p_r(w) dw 累计分布函数的值范围是 [0,1]。
iii、直方图均衡的变换函数

直方图均衡的变换函数恰好就是累计分布函数:

变换函数被定义为原始灰度级概率密度函数的累积分布函数  T(r)  :

                                                s = T(r) = \int_0^r p_r(w) \, dw

其中 w 是积分的中间变量,代表从 0 到 r 的所有灰度级,s 是变换后的灰度值,是近似均匀分布的。

本质:将原图像的灰度级 r_k​ 按上述累积分布函数映射为新的灰度级 s_k​。这个过程实现了原始灰度分布到均匀分布的调整,最终得到对比度均衡化的图像。

定性理解:原灰度值比较集中的区域,概率密度比较大,概率密度的累计函数增长比较快,从而使得较短的就灰度值区域转换为较长的新的灰度值区域,即让原灰度值集中的区域分散;而原灰度值比较分散的区域,概率密度比较小,概率密度的累计函数增长缓慢,使得较长的原灰度值区域被转换为角度的新灰度值区域,即让原灰度值分散的区域集中。

证明新的灰度值分布 s 服从均匀分布:

推导新的概率密度函数 p_s(s)

  • p_s(s) 的定义为: p_s(s) = p_r(r) \left| \frac{dr}{ds} \right|
  • 根据变换 T(r) 的定义(s=T(r)),求导得: \frac{dT(r)}{dr} = p_r(r) \implies \frac{dr}{ds} = \frac{1}{p_r(r)}
  • 代入 p_s(s) 的表达式: p_s(s) = p_r(r) \cdot \frac{1}{p_r(r)} = 1
  • 结论: 经过变换后,新的灰度级概率密度函数 p_s(s) 是均匀分布,满足直方图均衡化目标。
iv、离散版本的直方图均衡
  • 在实际实现中,图像是离散的,其灰度级的概率密度可以表示为:

    p_r(r_k) = \frac{n_k}{N}

    其中 n_k​ 是灰度级 r_k​ 的像素数量,N 是图像总像素数。

  • 累积分布函数的离散形式为:

    T(r_k) = s_k = \sum_{j=0}^k p_r(r_j) = \sum_{j=0}^k \frac{n_j}{N}

    这意味着每个像素的新的灰度级 s_k​ 由其对应的累积概率决定。

9、直方图匹配

直方图匹配(Histogram Matching 或 Histogram Specification)是一种图像处理技术,其目标是将输入图像的直方图调整为目标图像或目标直方图的分布。相比于直方图均衡化,直方图匹配允许更灵活地调整图像的灰度分布,以适应特定需求。

(1)原理概述

直方图匹配的核心是将输入图像 f 的灰度级分布调整为与目标图像 g 的灰度级分布相同。

  • 输入图像直方图: H_f(r),表示输入图像中灰度级 r 的概率分布。
  • 目标直方图: H_g(z),表示目标图像中灰度级 z 的概率分布。

通过设计一个映射函数 T(r),使得调整后的灰度分布 s = T(r) 匹配目标直方图。

(2)直方图匹配的步骤

Step 1: 计算输入图像的累积分布函数 (CDF)

输入图像灰度级 r 的累积分布函数定义为:

                                                ​​​​​​​        S(r) = \int_0^r p_r(w) \, dw

或者在离散情况下:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​          S(r_k) = \sum_{j=0}^k \frac{n_j}{N}

其中:

  • n_j​ 是灰度级 r_j​ 的像素数量。
  • N 是图像总像素数。

S(r)是原始概率密度p_r(r)到均匀分布的映射。

Step 2: 计算目标图像的累积分布函数 (CDF)

目标图像灰度级 z 的累积分布函数定义为:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        G(z) = \int_0^z p_g(w) \, dw

或者在离散情况下:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​          G(z_k) = \sum_{j=0}^k \frac{m_j}{M}

其中:

  • m_j​ 是目标直方图中灰度级 z_j​ 的像素数量。
  • M 是目标图像的总像素数(或者是目标直方图的总和)。

G(z)是目标图像灰度值概率密度p_g(r)到均匀分布的映射;G^{-1}(z)是均匀分布到目标图像灰度值概率密度p_g(r)的映射。而这里的均匀分布如果采用映射S(r)的输出,那么就实现了原图灰度值概率密度p_r(r)到目标图概率密度p_g(r)的转换。

Step 3: 建立映射关系

输入图像中每个灰度值 r_k​ 的对应映射 z 满足:

S(r_k) = G(z_k)这两个映射的结果都是均匀分布,所以相等。

通过求解 z_k​,找到 r_k​ 到 z_k​ 的映射关系。

  • 在离散情况下,通过最近邻法或插值找到 z_k​ 与 r_k​ 的对应关系: z_k = G^{-1}(S(r_k))
Step 4: 应用映射

对输入图像的每个像素值 r_k​,通过上述映射关系 T(r_k) = z_k 替换其值,最终获得直方图匹配后的图像。

(3)示例

直方图均衡

  • 输入图像(左侧的图)是 Mars 月亮 Phobos 的图片。
  • 使用默认的 256-bin 直方图进行均衡,发现输出结果(右侧的图)不理想。
  • 其原因是原始图像的像素值主要集中在低灰度区,导致均衡后产生大量离散化的高灰度值。

改进:直方图匹配

  • 为了解决上述问题,可以引入**双峰高斯模型(Bimodal Gaussian Model)**作为目标直方图,使其更符合原始图像的分布特性:

    p(x) = k + \frac{A_1}{\sqrt{2\pi\sigma_1}} \exp\left(-\frac{(x-m_1)^2}{2\sigma_1^2}\right) + \frac{A_2}{\sqrt{2\pi\sigma_2}} \exp\left(-\frac{(x-m_2)^2}{2\sigma_2^2}\right)
    • m_1, m_2​:两个高斯分布的均值。
    • \sigma_1, \sigma_2​:标准差。
    • A_1, A_2​:两个分布的权重。
  • 通过指定该模型,生成一个平滑的目标直方图,应用到图像后得到更好的视觉效果。

最终结果:

通过调整目标直方图的形状,输出图像的灰度分布变得更加均匀,细节对比度增强。

10、线性空间滤波

定义与概念: 线性滤波使用固定大小的核(如3x3或5x5)滑动整个图像,对每个像素点应用线性运算。

  • 公式: g(x, y) = \sum_{s=-a}^{a}\sum_{t=-b}^{b} \omega(s, t)f(x+s, y+t) 其中,\omega 是权值矩阵,f 是输入图像。
  • 滤波模式:
    • 平滑滤波器(如平均滤波、加权平均滤波)。
    • 卷积与相关的差别:卷积需要将核旋转180度。
  • 使用函数: MATLAB函数imfilter允许使用边界处理选项(replicatesymmetriccircular),支持对边界问题灵活处理。

均值滤波器

  • 如Box滤波器(简单平均)和加权平均滤波器,常用于图像去噪或模糊化。
  • 示例中,均值滤波器的掩模可以是: \frac{1}{9} \begin{bmatrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \\ \end{bmatrix}     或     \frac{1}{16} \begin{bmatrix} 1 & 2 & 1 \\ 2 & 4 & 2 \\ 1 & 2 & 1 \\ \end{bmatrix}

锐化滤波

下面右有详细的分析。

11、图像锐化

(1)锐化空间滤波的基本概念

锐化的目标是突出图像中的细节或增强被模糊的特征,这通过空间微分(spatial differentiation)实现。

一阶导数的要求

一阶导数反映图像的边缘灰度变化情况,满足以下条件:

  1. 在平坦区域(常量灰度区域)为零。
  2. 在灰度跳变的起始处非零。
  3. 在渐变区域非零。

数学表达:

\frac{\partial f}{\partial x} = f(x+1) - f(x)

二阶导数的要求

二阶导数有助于更精确地定位边缘和变化点,满足以下条件:

  1. 在平坦区域为零。
  2. 在灰度跳变的起始和结束处非零。
  3. 在渐变区域(常量斜坡)为零。

数学表达:

\frac{\partial^2 f}{\partial x^2} = f(x+1) + f(x-1) - 2f(x)

(2)拉普拉斯滤波

拉普拉斯滤波是一种二阶导数滤波器,通过计算图像中每个像素周围灰度变化的加权和来突出边缘

拉普拉斯函数

二维拉普拉斯算子定义为:

\nabla^2 f = \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2}

离散实现为:

\nabla^2 f = [f(x+1,y) + f(x-1,y) + f(x,y+1) + f(x,y-1)] - 4f(x,y)

Laplacian 3×3 滤波模板

  • 常用的拉普拉斯模板具有中心系数为负值、周围为正值的结构:

    • 弱锐化模板:中心 −4,周围(上下左右)为 +1 ,四角(左上、右上、左下、右下)为0。
    • 强锐化模板:中心 −8,周围(上下左右、左上、右上、左下、右下)为 +1 。
    • 弱锐化滤波和强锐化滤波示例如下图:

                          

  • 在图中示例中,使用拉普拉斯滤波器对月球图像进行锐化,效果如下:

    • 左上图:原始图像。
    • 右上图:拉普拉斯滤波响应图(包含边缘信息)。
    • 左下图:拉普拉斯滤波后的结果。
    • 右下图:通过将拉普拉斯图像从原始图像中减去,实现锐化增强。

                               

图像增强表达式

g(x,y) = f(x,y) - \nabla^2 f(x,y)

其中 g(x,y) 是锐化后的图像,f(x,y) 是输入图像。

第一步是通过滤波器提取边缘信息,第二步是将边缘信息与原图像融合。这两步可以合在一起:

g(x,y) = f(x,y) - \nabla^2 f(x,y) \\ = 5f(x,y) - [f(x+1,y) + f(x-1,y) + f(x,y+1) + f(x,y-1)]

两步融合之后的滤波器核为:

(3)高提升滤波(High-Boost Filtering)

高提升滤波是一种基于非锐化掩模(Unsharp Masking)的扩展方法。它通过放大原始图像与模糊图像之间的差异实现锐化。

数学表达

  • 非锐化掩模:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​           f_s(x,y) = f(x,y) - \bar{f}(x,y)

其中 \bar{f}(x,y) 是模糊后的图像,f_s(x,y) 是锐化后的图像。

  • 高提升滤波:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        f_{hb}(x,y) = A f(x,y) - \bar{f}(x,y), \quad A \geq 1

进一步展开为:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        f_{hb}(x,y) = (A-1)f(x,y) + f_s(x,y)

A = 1 时,退化为普通的非锐化掩模。

结合拉普拉斯的高提升滤波

如果拉普拉斯算子用于计算锐化掩模,则高提升滤波的公式变为:

        ​​​​​​​        ​​​​​​​        ​​​​​​​             f_{hb}(x,y) = (A-1)f(x,y) - \nabla^2 f(x,y)

        ​​​​​​​        ​​​​​​​        ​​​​​​​             f_{hb}(x,y) = (A-1)f(x,y) + \nabla^2 f(x,y)

图像示例分析

  • 使用不同 A 值进行高提升滤波,A=1 产生基本锐化效果,A=1.7 提供更强烈的锐化。这里其实就是原图与锐化细节融合时减少了原图的权重,使得锐化更加凸显;但这样使得变化后的图像色度减弱了,如果不想色度减弱,就保持原图的权重为1,增大锐化细节的分量。
  • 对比图展示了不同 A 值下的效果,高 A 值更突出边缘和细节。

(4)图像梯度的计算与Sobel算子

  • 图像梯度的基本原理

    • 通过计算图像的一阶导数(梯度)来突出灰度值的变化,用于边缘检测和图像锐化。
    • 梯度运算使用微分算子,包括Sobel算子Prewitt算子,其系数矩阵如图1所示:
      • 这些算子通过卷积操作提取图像边缘信息。
      • Sobel算子(图2右图)增强了边缘对比度,有效检测边缘。
图1
图2
  • 梯度增强效果

    • 左图(光学镜片)表现为平滑图像,右图为通过Sobel梯度算子计算得到的增强图像,显示了边缘和缺陷(4点和5点钟方向)。
    • Sobel算子能够有效地检测图像中的轮廓信息,并放大边缘细节。

12、非线性空间滤波

(1)定义与特点

  • 通常基于像素的局部邻域,但不像线性滤波那样应用固定的线性权值运算,而是使用其他数学操作(如取最大值、最小值、中值等)。
  • 主要特点:
    • 输出像素值由局部邻域的非线性操作确定(例如,局部最大值操作)。
    • 与线性滤波不同,非线性滤波中“滤波核(mask)”的概念并不是必须的。
    • 非线性滤波更加灵活,能更好地保留边缘等细节特性。

(2)MATLAB工具箱中的非线性滤波

片子中提到了两种主要函数:nlfiltercolfilt

  • nlfilter(非线性空间滤波器)
    • 在二维图像上直接执行非线性操作。
    • 用户可通过打开nlfilter查看其源码。
    • 缺点:计算效率相对较低。
  • colfilt(列过滤器)
    • 将数据以列的形式组织成矩阵,然后在每一列上执行操作。
    • 内存占用较高,但执行速度快于nlfilter
    • 数据结构组织后,结果更高效,但需要为大规模处理分配更多内存。

片子中的非线性空间滤波主要内容及分析如下:

(3)具体实现与矩阵操作

colfilt 函数原理

  • 输入
    • 图像 f 的大小为 M \times N
    • 滤波窗口的大小为 m \times n
  • 输出
    • 将图像滑动窗口生成一个矩阵 A,大小为 mn \times MN,每一列表示图像中邻域窗口的像素。
  • 特点
    • 每一列包含一个邻域窗口的像素数据,方便应用非线性函数对每一列进行单独操作。

colfilt 的函数语法

g = \text{colfilt}(f, [m\ n], 'sliding', \text{@fun}, \text{parameters})

  • 参数说明:

    • [m\ n]:滑动窗口的大小。
    • 'sliding':滑动方式。
    • @fun:要应用的函数。
    • parameters:传递给函数的参数。
  • 工作流程

    • 函数 fun 将作用于矩阵 的每一列,输出为一个行向量 g
    • 滤波结果 g 的第 k 个元素是 A 的第 k 列应用 fun 操作的结果。

13、非线性空间滤波去噪(去除椒盐噪声)

(1)非线性空间滤波工具 ordfilt2
  • 功能
    • ordfilt2 是用于生成顺序统计(或称为秩)滤波器的函数。
    • 它通过对邻域中的像素值进行排序,提取指定次序(秩)上的像素值,构成输出图像。
  • 语法
    • g = ordfilt2(f, order, domain)
      • f:输入图像。
      • order:提取排序后的第 order 个元素。
      • domain:定义邻域范围。
    • 例如:
      • 最小值滤波器(Min Filter):ordfilt2(f, 1, ones(m, n))
      • 中值滤波器:ordfilt2(f, median(1:m*n), ones(m, n))
  • 应用
    • 这类滤波器主要用于消除特定噪声,例如椒盐噪声。

(2)中值滤波器 medfilt2
  • 功能
    • 中值滤波器是一种特殊的秩滤波器,是非线性空间滤波中最重要的工具之一。
    • 它通过计算邻域内像素值的中值替换中心像素,达到平滑图像的目的。
  • 语法
    • g = medfilt2(f, [m n], padopt)
      • m, n:邻域窗口大小。
      • padopt:边界填充选项(如 zerossymmetricindexed)。
    • 默认边界处理为 zeros 填充。
  • 实验证明
    • 中值滤波对椒盐噪声有显著的去噪效果,同时保留边缘细节。
(3)中值滤波的去噪效果对比
  • 原理与操作
    • 首先加载一幅受椒盐噪声污染的电路板图像(左图)。
    • 对其进行不同模式的中值滤波处理:
      • 默认 zeros 填充方式(中图)。
      • symmetric 填充方式(右图)。

  • 结果分析
    • 噪声图像(左图)经过中值滤波处理后:
      • 使用默认边界模式(中图):边界处可能存在异常伪影。
      • 使用 symmetric 填充(右图):边界伪影显著减少,处理效果更平滑。
    • 结果证明:
      • 中值滤波对于椒盐噪声有显著的去除效果,尤其在 symmetric 模式下表现更优。


http://www.ppmy.cn/ops/143010.html

相关文章

selenium自动爬虫工具

一、介绍selenium爬虫工具 selenium 是一个自动化测试工具&#xff0c;可以用来进行 web 自动化测试、爬虫 selenium 本质是通过驱动浏览器&#xff0c;完全模拟浏览器的操作&#xff0c;比如跳转、输入、点击、下拉等&#xff0c;来拿到网页渲染之后的结果&#xff0c;可支持…

SSE(Server-Sent Events)主动推送消息

说明 使用Java开发web应用&#xff0c;大多数时候我们提供的接口返回数据都是一次性完整返回。有些时候&#xff0c;我们也需要提供流式接口持续写出数据&#xff0c;以下提供一种简单的方式。 SSE&#xff08;Server-Sent Events&#xff09; SSE 是一种允许服务器单向发送事…

Chinese-Clip实现以文搜图和以图搜图

本文不生产技术&#xff0c;只做技术的搬运工&#xff01; 前言 目前网上能够找到的资料有限&#xff0c;要么收费&#xff0c;要么配置复杂&#xff0c;作者主打一个一毛不拔&#xff0c;决定自己动手实现一个&#xff0c;功能清单受启发于Nidia AI lab实验室的nanodb项目&am…

无人机飞行服务技术详解

无人机飞行服务技术涵盖了多个方面&#xff0c;以下是对其关键技术的详细解析&#xff1a; 一、无人机类型与特点 无人机根据其设计和功能的不同&#xff0c;主要分为以下几种类型&#xff1a; 1. 多旋翼无人机&#xff1a;最常见的无人机类型&#xff0c;通过多个电机和螺旋…

有没有办法让爬虫更加高效,比如多线程处理?

要让Python爬虫更加高效&#xff0c;确实可以采用多线程处理。多线程可以显著提高爬虫的效率&#xff0c;因为它允许程序同时执行多个任务&#xff0c;从而减少等待时间。以下是一些提高爬虫效率的方法&#xff0c;特别是通过多线程技术&#xff1a; 1. 多线程爬虫 多线程爬虫…

[【C++算法】43.分治_快排_颜色分类(过渡)

文章目录 题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a; 题目链接&#xff1a; 75. 颜色分类 题目描述&#xff1a; 解法 分治&#xff1a;就是分而治之 这题作为过渡&#xff0c;不使用分治。 解法&#xff1a;三指针 C 算法代码&#xff1a; class …

wazuh-modules-sca-scan

sca模块主函数wm_sca_main -> wm_sca_start 检查policy文件中的每一个项目wm_sca_check_policy static int wm_sca_check_policy(const cJSON * const policy, const cJSON * const checks, OSHash *global_check_list) {if(!policy) {return 1;}const cJSON * const id c…

PostgreSQL数据库序列信息查询

PostgreSQL序列信息查询 说明&#xff1a; 在PostgreSQL数据库中序列和表都是序列的对象。 数据库中不应该存在孤儿序列&#xff0c;序列应该和表对应的字段绑定起来。绑定后删除表或表对应的字段后&#xff0c;序列会自动被删除。 创建测试表和序列 create table test_t(…