灰度变换与空间滤波

灰度变换与空间滤波

背景知识

  • 空间域指包含图像像素的平面,灰度变换与空间滤波均在空间域进行,即直接在图像像素上操作,表示为 g ( x , y ) = T [ f ( x , y ) ] g(x,y)=T[f(x,y)] g(x,y)=T[f(x,y)] ,其中 T T T 是在点 ( x , y ) (x, y) (x,y) 的邻域上定义的关于 f f f 的一种算子
    • 如空间滤波:邻域与预定义的操作共称为空间滤波器(也称为空间掩膜、核、模版或窗口)
    • 空间滤波的最小邻域为 1 × 1 1\times1 1×1 ,此时 T T T 成为灰度变换函数: s = T ( r ) s=T(r) s=T(r) ,可以起到对比度拉伸或阈值处理的作用
  • 图像增强应用
    • 增强是指对图像进行加工,使其结果对于特定的应用比原始图像更适合的一种处理

灰度变换函数

  • 图像反转

    • s = L − 1 − r s=L-1-r s=L1r
    • 适用于增强嵌入在一幅图像的暗区域中的白色或灰色细节,特别当黑色面积在尺寸上站主导地位时
  • 对数变换

    • s = c l o g ( 1 + r ) s=clog(1+r) s=clog(1+r)
    • 该变换将输入中范围较窄的低灰度值映射为输出中较宽范围的灰度值;对高的输入灰度值起相反作用
    • 使用对数变换来扩展图像中暗像素的值,同时压缩更高灰度级的值
    • 反对数变换与对数变换相反
    • 对数变换可以压缩像素值变化较大的图像的动态范围,比如傅立叶频谱。傅立叶频谱的范围一般在 0 ∼ 1 0 6 0\sim10^6 0106 ,通过对数变换后可以显示图像中丰富的细节
  • 幂律(伽马)变换

    • s = c r γ s=cr^\gamma s=crγ
    • 随着 γ \gamma γ 的变化,得到一族可能的变换曲线(分界点为 γ = 1 \gamma = 1 γ=1 ,此时简化成了恒等变换)
    • 用于图像获取、显示、打印的各种设备常根据幂律来产生相应,因此应用伽马矫正来矫正这些幂律响应现象
    • 幂律变换同样可用于调整图像的对比度:当 γ < 1 \gamma\lt1 γ<1 时,减小对比度;当 γ > 1 \gamma\gt1 γ>1 时,增加对比度
  • 分段线性变换函数

    • 对比度拉伸:一般函数是单值且单调递增的,保持了灰度级的次序(包括了阈值处理函数)

    • 灰度级分层:用于突出图像特定灰度范围的亮度

      • 一种方法将感兴趣范围内所有灰度显示为一个值,将其他灰度值显示为另一个值
      • 另一种方法使感兴趣范围的灰度变亮(或变暗),而保持图像中的其他灰度级不变
    • 比特平面分层:将 256 级灰度图像分成 8 个 1 比特平面来表示,通过阈值灰度变换函数处理来得到对应平面的二值图像

      • 可用于图像压缩:通过特定几个平面来恢复图像

直方图处理

  • 直方图定义: p ( r k ) = n k M N p(r_k)=\frac{n_k}{MN} p(rk)=MNnk (类比概率)
  • 直方图均衡
    • 灰度映射: s = T ( r ) s=T(r) s=T(r)
      • T ( r ) T(r) T(r) 在区间 0 ≤ r ≤ L − 1 0\leq r\leq L-1 0rL1 上为(严格)单调递增函数
      • 0 ≤ r ≤ L − 1 0\leq r\leq L-1 0rL1 时, 0 ≤ T ( r ) ≤ L − 1 0\leq T(r)\leq L-1 0T(r)L1
    • 重要变换函数: s = T ( r ) = ( L − 1 ) ∫ 0 r p r ( w ) d w s=T(r)=(L-1)\int^r_0p_r(w)dw s=T(r)=(L1)0rpr(w)dw
    • 离散形式: s k = T ( r k ) = ( L − 1 ) ∑ j = 0 k p r ( r j ) = ( L − 1 ) M N ∑ j = 0 k n j ,   k = 0 , 1 , 2 , . . . , L − 1 s_k=T(r_k)=(L-1)\sum^k_{j=0}p_r(r_j)=\frac{(L-1)}{MN}\sum^k_{j=0}n_j,\ k=0, 1, 2, ...,L-1 sk=T(rk)=(L1)j=0kpr(rj)=MN(L1)j=0knj, k=0,1,2,...,L1
    • 对于该变换函数,恒有 p s ( s ) = p r ( r ) ∣ d r d s ∣ = p r ( r ) ∣ 1 ( L − a ) p r ( r ) ∣ = 1 L − 1 p_s(s)=p_r(r)|\frac{dr}{ds}|=p_r(r)|\frac{1}{(L-a)p_r(r)}|=\frac{1}{L-1} ps(s)=pr(r)dsdr=pr(r)(La)pr(r)1=L11 ,即 p s ( s ) p_s(s) ps(s) 始终是均匀的,与 p r ( r ) p_r(r) pr(r) 的形式无关
    • 只要图像直方图中没有为 0 的分量,就满足严格单调递增,可以进行反变换 r k = T − 1 ( s k ) r_k=T^{-1}(s_k) rk=T1(sk)
    • 局部直方图均衡,自适应直方图均衡
    • 参考资料
  • 直方图匹配
    • 直方图匹配(规范化)用于在处理后产生特殊直方图
    • 步骤
      1. 由输入图像得到 p r ( r ) p_r(r) pr(r) ,并通过直方图均衡得到 s s s 的值
      2. 通过 G ( z ) = ( L − 1 ) ∫ 0 z p z ( t ) d t = s G(z)=(L-1)\int^z_0p_z(t)dt=s G(z)=(L1)0zpz(t)dt=s 中指定的 p z ( z ) p_z(z) pz(z) 求得变换函数 G ( z ) G(z) G(z) ;对于离散函数,用 G ( z q ) = ( L − a ) ∑ i = 0 q p z ( z i ) G(z_q)=(L-a)\sum^q_{i=0}p_z(z_i) G(zq)=(La)i=0qpz(zi) q = 0 , 1 , . . . , L − 1 q=0,1,...,L-1 q=0,1,...,L1 计算变换函数 G G G 的所有值,将其四舍五入为范围 [ 0 , L − 1 ] [0,L-1] [0,L1] 内的整数,存入一个表中
      3. 求得反变换函数 = G − 1 ( z ) =G^{-1}(z) =G1(z) ;对于离散函数,对每一个值 s k s_k sk 找到对应的 z q z_q zq 值,以使 G ( z q ) G(z_q) G(zq) 最接近 s k s_k sk ,并储存这些从 s s s k k k 的映射,当映射不唯一时,按惯例选择最小的值
      4. 对经过直方图均衡的图像中每个像素执行反变换函数,最后输出图像的 PDF 将等于指定的 PDF;对于离散函数,使用上一步找到的映射把该图像每个均衡后的像素值 s k s_k sk 映射为直方图规定化后的图像中相应的 z q z_q zq 值,形成直方图规范化后的图像
  • 在图像增强中使用直方图统计
    • 平均灰度、灰度方差
    • 局部均值、局部方差:与全局均值、方差做比较来判断当前区域的亮度和对比度特征

空间滤波基础

  • 滤波一词一般用于频域处理中,指接受或拒绝一定的频率分量;而空间滤波器也可以直接作用于图像本身
  • 空间滤波机理
    • 空间滤波器由一个邻域(一般为较小矩形)和对该邻域包围的像像素执行的预定义操作组成。根据操作的不同,可以分为线性滤波器和非线性滤波器
  • 空间相关与卷积
    • 相关
      • w ( x , y ) ⋆ f ( x , y ) = ∑ s = − a a ∑ t = − b b w ( s , t ) f ( x + s , y + t ) w(x,y)\star f(x,y)=\sum^a_{s=-a}\sum^b_{t=-b}w(s,t)f(x+s,y+t) w(x,y)f(x,y)=s=aat=bbw(s,t)f(x+s,y+t)
      • 相关是滤波器模版移过图像并计算每个位置乘积之和的处理,是滤波器位移的函数
      • 一个函数与离散单位冲激相关,在该冲激位置产生这个函数一个翻转的版本
    • 卷积
      • w ( x , y ) ⋆ f ( x , y ) = ∑ s = − a a ∑ t = − b b w ( s , t ) f ( x − s , y − t ) w(x,y)\star f(x,y)=\sum^a_{s=-a}\sum^b_{t=-b}w(s,t)f(x-s,y-t) w(x,y)f(x,y)=s=aat=bbw(s,t)f(xs,yt)
      • 卷积的机理与相关类似,只不过滤波器要先旋转 18 0 ∘ 180^{\circ} 180
      • 卷积的特性是某个函数与某个单位冲激卷积,得到一个在该冲激处的这个函数的拷贝
      • 如果滤波器模版是对称的,相关和卷积将得到同样的结果
  • 线性滤波的向量表示: R = w 1 z 1 + w 2 z 2 + . . . + w m n z m n = ∑ k = 1 m n = w T z R=w_1z_1+w_2z_2+...+w_{mn}z_{mn}=\sum^{mn}_{k=1}=\mathbf{w^Tz} R=w1z1+w2z2+...+wmnzmn=k=1mn=wTz
  • 空间滤波器模版的产生
    • 滤波器模版的系数由进行的操作来决定,需注意线性滤波仅能实现乘积求和操作;而非线性滤波要求确定邻域的大小,以及对包含在邻域内图像像素执行的操作

平滑空间滤波器

  • 平滑滤波器常用于模糊处理与降低噪声(预处理任务中)
  • 平滑线性滤波
    • 平滑线性空间滤波器的输出是包含在滤波器模版邻域内的像素的简单平均值 w i = 1 m n w_i=\frac{1}{mn} wi=mn1 ,也称为均值滤波器
    • 平滑滤波器可以降低图像灰度的尖锐变化,而典型的随机噪声和图像边缘均由灰度的尖锐变化导致
    • 还可以使用加权平均模版,即给不同像素不同的权重
    • 空间均值处理的一个重要应用就是为了对感兴趣的物体得到一个粗略的描述模糊一幅图像,这样较小物体的灰度就与背景混合在一起,而较大物体变得像斑点而易于检测
  • 统计排序(非线性)滤波器
    • 统计排序滤波器的响应以滤波器包围的图像区域中所包含的像素的排序为基础,然后使用统计排序的结果所决定的值替代中心像素的值
    • 中值滤波器:将像素邻域内灰度的中值代替该像素的值
      • 对于脉冲噪声(椒盐噪声)非常有效,且比现行平滑滤波器的模糊程度要低
      • 主要功能是使拥有不同灰度的点看起来更接近于他的相邻点
    • 最大滤波器、最小滤波器

锐化空间滤波器

  • 锐化处理的主要目的是突出灰度的过渡部分
  • 图像模糊可通过在空间域用像素邻域平均法实现,因为均值处理与积分类似;而锐化处理可由空间微分来实现,因为微分算子的相应强度与图像在用算子操作的这一点的突变程度成正比
    • 一阶微分: ∂ f ∂ x = f ( x + 1 ) − f ( x ) \frac{\partial f}{\partial x}=f(x+1)-f(x) xf=f(x+1)f(x)
    • 二阶微分: ∂ 2 f ∂ x 2 = f ( x + 1 ) + f ( x − 1 ) − 2 f ( x ) \frac{\partial^2f}{\partial x^2}=f(x+1)+f(x-1)-2f(x) x22f=f(x+1)+f(x1)2f(x)
  • 图像的一阶微分常常在灰度变化处产生较粗的边缘,而二阶微分由零产生分开的双边缘;同时,在图像灰度陡变处,二阶微分将产生零交叉,对于边缘定位十分有用。因此,二阶微分在增强细节方面要比一阶微分好得多,是一个适合锐化图像的理想特性
  • 二阶微分:拉普拉斯算子
    • 拉普拉斯算子是最简单的各向同性微分算子(线性)
    • ∇ 2 f = ∂ 2 f ∂ x 2 + ∂ 2 f ∂ y 2 = f ( x + 1 , y ) + f ( x − 1 , y ) + f ( x , y + 1 ) + f ( x , y − 1 ) − 4 f ( x , y ) \nabla^2f=\frac{\partial^2f}{\partial x^2}+\frac{\partial^2f}{\partial y^2}=f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x,y) 2f=x22f+y22f=f(x+1,y)+f(x1,y)+f(x,y+1)+f(x,y1)4f(x,y)
    • 以上算子仅对 9 0 ∘ 90^\circ 90 为增量旋转的各向同性,若加入沿对角线方向的两项,便可对 4 5 ∘ 45^\circ 45 增幅的结果也为各向同性
    • 使用拉普拉斯算子对图像增强: g ( x , y ) = f ( x , y ) + c [ ∇ 2 f ( x , y ) ] g(x,y)=f(x,y)+c[\nabla^2f(x,y)] g(x,y)=f(x,y)+c[2f(x,y)]
  • 非锐化掩蔽和高提升滤波
    • 非锐化掩蔽步骤:
      1. 模糊原图像
      2. 从原图像中减去模糊图像(产生的差值图像称为模版)
      3. 将模版加到原图像上
    • g m a s k ( x , y ) = f ( x , y ) − f ˉ ( x , y ) g_{mask}(x,y)=f(x,y)-\bar{f}(x,y) gmask(x,y)=f(x,y)fˉ(x,y)
      g ( x , y ) = f ( x , y ) + k ∗ g m a s k ( x , y ) g(x,y)=f(x,y)+k*g_{mask}(x,y) g(x,y)=f(x,y)+kgmask(x,y)
    • k k k 称为权重系数,当 k = 1 k=1 k=1 时,为非锐化掩蔽;当 k > 1 k\gt1 k>1 时,该处理为高提升滤波
    • 如果 k k k 过于大时,可能导致模版峰值大于原信号中的最小值,从而产生负灰度,导致边缘周围由暗的晕轮
  • 一阶微分:梯度
    • 梯度的幅值(梯度图像): M ( x , y ) = m a g ( ∇ f ) = g x 2 + g y 2 M(x,y)=mag(\nabla f)=\sqrt {g^2_x+g^2_y} M(x,y)=mag(f)=gx2+gy2

      • 非线性算子、非各向同性
    • 用绝对值来近似平方根更适合计算: M ( x , y ) ≈ ∣ g x ∣ + ∣ g y ∣ M(x,y)\approx |g_x|+|g_y| M(x,y)gx+gy

    • 罗伯特交叉梯度算子

    • Soble 算子,Robert 算子,Prewitt 算子,Kirsch 算子

    • 所有模版中系数总和为 0,正如微分算子的期望值,表明灰度恒定区域的相应为 0


混合空间增强法

  • 使用拉普拉斯法突出图像中的小细节,但是也会增加图像噪声
  • 使用梯度法突出图像中的边缘
  • 平滑过的梯度图像将用于掩蔽拉普拉斯图像
  • 使用灰度变换来增大图像的灰度动态范围

使用模糊技术进行灰度变换和空间滤波

  • 模糊逻辑、模糊集合、隶属度函数
  • 模糊集合是一个由 z z z 值和相应隶属度函数组成的序对: A = { z , μ A ( z ) ∣ z ∈ Z } A=\{z,\mu_A(z)|z\in Z\} A={z,μA(z)zZ}

你可能感兴趣的:(计算机视觉,图像处理,python)