Skip to content

空域增强技术

原因-图像降质

  • 传送和转换中,如成像、复制、扫描传输及限制中总要造成图像质量降低
  • 改善:图像增强(降噪)和图像恢复(考虑质量下降的原因)

图像增强

  • 不考虑质量下降的原因,只将感兴趣的特征有选择地突出(增强)而衰减其不需要的特征
  • 改善后的图像不一定要去逼近原始图像

目标

  • 从图像质量评价看: 提高可懂度
  • 突出图像特征,便于处理

空域增强基础

  • 空域: 像素组成的空间
  • 空域增强: g(x,y)=T[f(x,y)]
    • f(x,y) 是输入图像,g(x,y) 是处理后图像,T 是在点 (x,y) 邻域上定义的关于 f 的增强操作
    • 2 类: 灰度点操作,模板运算
  • 邻域: 包含点 (x,y) 的小区域,中心点是 (x,y)
    • 邻域大小 << 图像尺寸
    • 通常是奇数行 / 列,基本是对称的
    • 形状主要是正方形
    • 其他: 圆形,十字形,零星,环形,不规则形状
  • 空域增强计算过程: 遍历所有像素 → 每个像素处用 T 跟以 (x,y) 为中心的邻域进行计算
    • 边缘处理: 填零 (padding)
  • 空域滤波
    • 空域增强的过程也叫空域滤波
    • 小领域与预定义的操作合称空域滤波器,也称模板
  • 灰度变换
    • 模板大小为 1×1 时,输出图像 g 只由 (x,y) 处的 f 值变换得到
    • T 称为灰度变换函数 s=T(r)
    • 其中 srgf(x,y) 处的灰度

直接灰度映射

  • 直接灰度映射是一种点操作: 将 f(x,y) 中的每个像素灰度按 T 操作直接变换以得到 g(x,y)

  • 典型方法

    • 图像求反
    • 增强对比度
    • 灰度切分
    • 对数变换 s=clog(r+1)
      • 压亮的拉伸暗的
    • 指数变换 s=crγ

    direct_gray_mapping

直方图修正

  • 直方图
    • 数字图像中灰度级出现频数的统计
    • 提供了图像像素灰度值分布情况
  • 计算方法
    • 设一共有 L 个元素的数组,对原始图像灰度值进行统计
  • 直方图的计算(频次)
    • 设某种灰度 rk 的像素数为 nkn 是图像中像素的总数,则灰度级 rk 对应的频数为:
    • p(rk)=nkn k=0,1,2,L1
  • 不反应图像的空间信息,只展示具有一定灰度级的像素的数目或频数

思考

忽略了位置,怎么补回

直方图均衡化

  • 直方图均衡化
    • 指图像经过灰度变换后,使得灰度的概率密度分布变为常数,即均匀分布
    • 均衡化基本思想: 扩大像素灰度值的动态范围,增强图像整体对比度(反差)
  • 增强函数
    • 归一化直方图
    • pr(rk)=nkn     0rk1,k=0,1,,L1
    • 增强函数 EH(r):
      • 0rL1 内为单增函数: 变换后仍保持排列次序
      • 0EH(r)L1: 变换前后灰度值动态范围一致
  • 累积分布函数 CDF
    • 连续
      • s=EH(r)=0rpr(w)dw
      • 满足条件概率密度函数 PDF 永远为正,因为 r 在 [0,1] 时,pr 的总和为 1
      • 并能使 r 的分布转换为 s 的分布
      • s 的分布是均匀分布
      • 概率积分变换(PIT)定理

        对于任意原始分布,Y=G(x), G 为累积分布函数, Y 服从 [0,1] 上的均匀分布

    • 离散
      • sk=EH(rk)=i=0knin=i=0kpr(ri)
  • opencv
    python
    cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]])
    cv2.equalizeHist(src[, dst])
  • 完全自动
  • 优点: 自动增强对比度
  • 缺点: 总是用均匀分布来近似目标的直方图
    • 增强效果不易控制,总是得到全局均衡化的直方图

直方图规定化

  • 目的: 用原始图像的直方图转换为期望的直方图的形状
  • 思路
    • 已知 pr(r) 为原图的灰度密度函数,pz(z) 为希望得到的灰度密度函数
    • 分别对 pr(r),pz(z) 均衡化s=T(r)=0rpr(r)dr    0r1v=G(z)=0zpz(z)dr    0z1s = v
    • 求 G 的逆变换z=G1(v)=G1(s)
    • 建立 r → s 联系,有z=G1(v)=G1(s)=G1(T(r))

局部直方图处理

在一个像素的邻域总根据灰度级分布设计变换函数进行局部增强

  • 定义一个邻域,该区域中心在某个像素点
  • 计算直方图,得到变换函数
  • 用该函数映射该区域中心像素的灰度
  • 重复

空域滤波

利用像素本身以及其邻域像素的灰度关系进行增强的方法常称为滤波

分类

  • 线性:如邻域平均
  • 非线性:如中值滤波
  • 平滑:模糊,消除噪声
  • 锐化:增强边缘的细节

滤波器实现: 邻域计算(conv)

噪声

  • 加性
    • 椒(黑)盐(白)
    • 高斯
  • 乘性

平滑滤波器

线性平滑滤波器

  • 邻域平均 z=1Mi=0M1kisi
    • [111111111]
  • 加权平均
    • [121242121]
  • 双边滤波
    • 核心思想
      • 对平坦区域强平滑去噪
      • 对边缘区域弱平滑保边
    • 相关因素: 同时考虑空间域相似性和像素值域相似性
    • 由两部分乘积构成
      • 空间域权重: 空间距离
      • 值域权重: 灰度值差异
    • BF(Ip)=1WpqSGσS(pq)Gσr(|IpIq|)Iq
      • GσS: space weight, Gσr: range weight

非线性平滑滤波器

  • 作用: 既消除噪声又保持细节
  • 中值滤波器
    • 方法
      • 将模板中心与像素位置重合
      • 读取模板下各对应像素的灰度值
      • 从小到大排成一列
      • 找出排在中间的 1 个
      • 将这个中间值赋给中心位置的像素
    • 分类
      • 1D 和 2D
    • 小于模板尺寸一半的过亮或过暗的区域将会在滤波后被消除掉
  • 百分比滤波器
    • 最大值 gmax=max(s,t)N(x,y)[f(s,t)]
    • 最小值 gmin=min(s,t)N(x,y)[f(s,t)]
    • 中点滤波器 gmid=12{gmax(x,y)+gmin(x,y)}

锐化滤波器

利用微分锐化图像(积分平滑图像)

线性锐化滤波器

  • 梯度: 对应一阶导数,最常用的微分矢量

    • f=[fxfy]T
  • 离散空间,微分用差分实现

    • 常用的模板
      • [101101101] [111000111]
    • 加权差分模板
      • [101202101] [121000121]
  • 梯度替代计算方法

    • 2范数(欧氏距离) |f(2)|=mag(f)=[(fx)2+(fy)2]1/2
    • 1范数(城市距离)|f(1)|=|fx|+|fy|
    • 范数(棋盘距离) |f()|=max{|fx|,|fy|}
  • Laplace 算子(二阶导数)

    • 2f=2fx2+2fy2
    • 离散
      • 2f=f(x+1,y)+f(x1,y)+f(x,y+1)+f(x,y1)4f(x,y)
    • 模板
      • [010141010][111181111][010141010][111181111]
    • 应用
      • 锐化 g(x,y)=f(x,y)+c[2f(x,y)]

非线性锐化滤波器

最大-最小锐化变换

S[f(x,y)]={gmax(x,y)if gmax(x,y)f(x,y)f(x,y)gmin(x,y)gmin(x,y)else

迭代实现

Sn+1=[f(x,y)]=S{sn[f(x,y)]}

局部增强

  • 对图像局部细节的增强处理
  • 直接利用局部信息以达到局部增强的目的

图像统计量

灰度均值

m=i=0L1rip(ri)

方差(二阶矩)

μ2(r)=i=0L1(rim)2p(ri)

rn 阶矩

μn(r)=i=0L1(rim)np(ri)

方法

g(x,y)=A(x,y)[f(x,y)m(x,y)]+m(x,y)
  • 局部增益函数

    A(x,y)=kMσ(x,y)    0<k<1
  • 其中 Mf(x,y) 的均值,m(x,y),σ(x,y) 是以 (x,y) 为中心的邻域内的灰度均值和均方差

增强像素

g(x,y)={Ef(x,y)if mSx,yk0MG  k1DGσSxyk2DGf(x,y)others
  • E.K0,K1,K2 是特定参数
  • MG 是输入图像的全局平均值
  • DG 是输入图像的标准差

图像运算

算数运算

  • 加法 C(x,y)=A(x,y)+B(x,y)
    • 主要应用: 去除叠加性噪声,生成图像叠加效果
  • 减法 C(x,y)=A(x,y)B(x,y)
  • 乘法 C(x,y)=A(x,y)B(x,y)
  • 求反 g(x,y)=255f(x,y)
  • 异或 g(x,y)=f(x,y)h(x,y)
  • 逻辑或 g(x,y)+f(x,y)h(x,y)

补充

  • Mixup
  • 引导滤波