首页 > 其他分享 >冈萨雷斯——《数字图像处理》(三)灰度变换和空间滤波

冈萨雷斯——《数字图像处理》(三)灰度变换和空间滤波

时间:2024-12-25 23:29:20浏览次数:5  
标签:滤波器 partial 灰度级 灰度变换 数字图像处理 直方图 灰度 图像 冈萨雷斯

3.1 背景

空间域处理基于表达式:
g ( x , y ) = T [ f ( x , y ) ] g(x,y)=T[f(x,y)] g(x,y)=T[f(x,y)]
式中, f ( x , y ) f(x,y) f(x,y)是输入图像, g ( x , y ) g(x,y) g(x,y)是输出图像, T T T是点 ( x , y ) (x,y) (x,y)的一个邻域上定义的针对 f f f的算子

具体对于灰度图像来说就是:
s = T ( r ) s=T(r) s=T(r)
其中,r和s分别代表图像处理前后的像素值,这些值通常与灰度变换函数T有关

3.2一些基本的灰度变换函数

图像反转

灰度级在区间 [ 0. L − 1 ] [0.L-1] [0.L−1] 之间的反转函数形式为:
s = L − 1 − r s=L-1-r s=L−1−r
采用这种方式反转图像灰度级,会得到类似照片底片的结果
也就是说黑变白,白变黑;深色变浅色,浅色变深色

对数变换

对数变换的通式是:
s = c l o g ( 1 + r ) s=clog(1+r) s=clog(1+r)
式中c是一个常数,根据下图的灰度变换函数图可以看出,这个变换将输入中的范围较窄的低灰度值映射成输出中的范围较宽的灰度级;相反的,反对数函数(指数函数)的功能就是将高灰度值映射为输出中范围较窄的灰度级
灰度变换函数图

幂律(伽马)变换

幂律变换的形式为:
s = c r γ s=cr^\gamma s=crγ
式中, c c c和 γ \gamma γ 是正常数。如下图可知改变 γ \gamma γ 可以得到一系列变换曲线, γ > 1 \gamma>1 γ>1 时的曲线和 γ < 1 \gamma<1 γ<1的曲线刚好相反, c = γ = 1 c=\gamma=1 c=γ=1时,称为恒等变换

幂律变换的一个应用就是伽马矫正 ,在输入显示器之前,使用变换来预处理图像

另一个应用就是增强图像的对比度:
对于偏暗的图像,需要扩展灰度级,所以取 γ < 1 \gamma<1 γ<1来增强更多的细节
对于偏灰(苍白)的图像,需要压缩灰度级,所以取 γ > 1 \gamma>1 γ>1来使对比度更高,更清晰

分段线性变换函数

与前面讨论的几个方法互补的是分段线性变换函数
其优点是其形式可以任意复杂;缺点是要求用户输入很多参数

(1)对比度拉伸
对比度拉伸可以扩展图像中的灰度级范围,使其覆盖记录介质或显示设备的整个理想灰度范围。如下图是对比度拉伸的典型变换,点 ( r 1 , s 1 ) , ( r 2 , s 2 ) (r_1,s_1),(r_2,s_2) (r1​,s1​),(r2​,s2​)的位置控制变换函数的形状
在这里插入图片描述

(2)灰度级分层
目的就是凸显出图像中的特定灰度区间,共有两种基本方法,如下图
一种是将范围内的所有灰度值显示为一个颜色,其他的是另外一种颜色,如a
另一种方法是将范围内的灰度变亮(或变暗),其他位置保持不变
在这里插入图片描述

(3)比特平面分层
例如一幅256级灰度图像中,图像值是由8比特组成,8比特图像可视为由8个1比特平面组成
包括最低有效位比特和最高有效位比特
再进而分析每一个比特平面在图像中的相对重要性
在这里插入图片描述

3.3直方图处理

首先引出直方图
令 r k r_k rk​ 表示一幅L级灰度数字图像 f ( x , y ) f(x,y) f(x,y)的灰度,其中 k = 0 , 1 , 2 , . . . , L − 1 k=0,1,2,...,L-1 k=0,1,2,...,L−1
那么这副图像的直方图定义为
h ( r k ) = n k , k = 0 , 1 , 2 , . . . , L − 1 h(r_k)=n_{k} , k=0,1,2,...,L-1 h(rk​)=nk​,k=0,1,2,...,L−1
式中, n k n_k nk​ 是图像中灰度为 r − k r-k r−k的像素的数量.
进而,我们就有 M × N M\times N M×N的图像 f f f的归一化直方图定义为:
p ( r k ) = h ( r k ) M N = n k M N p(r_k)=\frac{h(r_k)}{MN}=\frac{n_k}{MN} p(rk​)=MNh(rk​)​=MNnk​​
我们将这种直方图简单的称为直方图或者图像直方图。对于所有的 p ( r k ) p(r_k) p(rk​)的和总为1,或者说 p ( r k ) p(r_k) p(rk​)的分量是对图像中出现的灰度级的概率的估计

直方图的形状与图像的外观有关
在这里插入图片描述

对比发现,像素占据整个灰度级范围并且均匀分布的图像,将具有高对比度的外观和多种灰色调,这也将是后续学习的处理方式期望达到的效果

直方图均衡化

(1)灰度连续
前面我们提到直方图可以看作是图像中出现灰度级的概率估计,也就是意味着直方图就是概率密度函数(PDF)
并且我们最终希望得到的效果是占据整个灰度级并且均匀分布的直方图
在这里插入图片描述
也就是说我们将一个概率分布函数 p r ( r ) p_r(r) pr​(r)映射成另外一个概率分布函数 p s ( s ) p_s(s) ps​(s)即可,其中 p s ( s ) p_s(s) ps​(s)是一个均匀概率密度函数(PDF),公式如下:
s = T ( r ) = ( L − 1 ) ∫ 0 r p r ( w ) d ⁡ w s=T(r)=(L-1)\int_0^rp_r(w)\operatorname{d}w s=T(r)=(L−1)∫0r​pr​(w)dw

(2)灰度离散
这种情况下,结合上述的归一化直方图定义将公式表示为:
s k = T ( r k ) = ( L − 1 ) ∑ j = 0 k p r ( r j ) , k = 0 , 1 , 2 , ⋯   , L − 1 s_k=T(r_k)=(L-1)\sum_{j=0}^kp_r(r_j),\quad k=0,1,2,\cdots,L-1 sk​=T(rk​)=(L−1)j=0∑k​pr​(rj​),k=0,1,2,⋯,L−1
以一个例子表示说明灰度离散的直方图均衡化如何实现:
一幅大小64 * 64的3比特图像(L=8),其灰度级是区间 [ 0 , L − 1 ] = [ 0 , 7 ] [0,L-1]=[0,7] [0,L−1]=[0,7]之间的整数

r k r_k rk​ n k n_k nk​ p r ( r k ) = n k / M N p_{r}(r_{k})=n_{k}/MN pr​(rk​)=nk​/MN
r 0 = 0 r_0=0 r0​=0 790 790 790 0.19 0.19 0.19
r 1 = 1 r_1=1 r1​=1 1023 1023 1023 0.25 0.25 0.25
r 2 = 2 r_2=2 r2​=2 850 850 850 0.21 0.21 0.21
r 3 = 3 r_3=3 r3​=3 656 656 656 0.16 0.16 0.16
r 4 = 4 r_4=4 r4​=4 329 329 329 0.08 0.08 0.08
r 5 = 5 r_5=5 r5​=5 245 245 245 0.06 0.06 0.06
r 6 = 6 r_6=6 r6​=6 122 122 122 0.03 0.03 0.03
r 7 = 7 r_7=7 r7​=7 81 81 81 0.02 0.02 0.02

进一步我们可以计算得到 s k s_k sk​ ,当然我们还要四舍五入取整一下到区间 [ 0 , 7 ] [0,7] [0,7]内,得到:
s 0 = 1.33 → 1 s 4 = 6.23 → 6 s 1 = 3.08 → 3 s 5 = 6.65 → 7 s 2 = 4.55 → 5 s 6 = 6.86 → 7 s 3 = 5.67 → 6 s 7 = 7.00 → 7 \begin{aligned}s_{0}=1.33\rightarrow1\quad s_{4}=6.23\rightarrow6\\s_{1}=3.08\rightarrow3\quad s_{5}=6.65\rightarrow7\\s_{2}=4.55\rightarrow5\quad s_{6}=6.86\rightarrow7\\s_{3}=5.67\rightarrow6\quad s_{7}=7.00\rightarrow7\end{aligned} s0​=1.33→1s4​=6.23→6s1​=3.08→3s5​=6.65→7s2​=4.55→5s6​=6.86→7s3​=5.67→6s7​=7.00→7​
可以看出,这里的最终只产生了5个不同的灰度级;并且这里的直方图是PDF的近似,在整个过程中不会产生新的灰度级,因此也很少会出现完全平坦的直方图,前后结果如下

在这里插入图片描述

3.4 空间滤波基础

空间滤波在图像处理中应用广泛,这是一个非常大的主题,这里主要介绍其图像增强相关的内容

线性空间滤波的原理

具体来说线性空间滤波就是图像 f f f滤波器核 w w w之间执行乘积之和运算
核是一个阵列,其大小定义了运算的邻域;其系数决定了该滤波器的性质
下图说明了使用 3×3 核进行线性空间滤波的原理。在图像中的任何一点 ( x , y ) (x,y) (x,y)处,滤波器的响应 g ( x , y ) g(x,y) g(x,y)是核系数和核所覆盖图像像素的乘积之和:
g ( x , y ) = w ( − 1 , − 1 ) f ( x − 1 , y − 1 ) + w ( − 1 , 0 ) f ( x − 1 , y ) + ⋯ + w ( 0 , 0 ) f ( x , y ) + ⋯ + w ( 1 , 1 ) f ( x + 1 , y + 1 ) g(x,y)=w(-1,-1)f(x-1,y-1)+w(-1,0)f(x-1,y)+\cdots+w(0,0)f(x,y)+\cdots+w(1,1)f(x+1,y+1) g(x,y)=w(−1,−1)f(x−1,y−1)+w(−1,0)f(x−1,y)+⋯+w(0,0)f(x,y)+⋯+w(1,1)f(x+1,y+1)
在这里插入图片描述

当坐标x和y变化时,核的中心逐个像素移动,这样就有了生成滤波后的图像g(也就是响应)
一般来说,大小为 m × n m\times n m×n的核对大小为 M × N M\times N M×N的图像的线性空间滤波可以表示为:
g ( x , y ) = ∑ s = − a a ∑ t = − b b w ( s , t ) f ( x + s , y + t ) g(x,y)=\sum_{s=-a}^a\sum_{t=-b}^bw(s,t)f(x+s,y+t) g(x,y)=s=−a∑a​t=−b∑b​w(s,t)f(x+s,y+t)

如何构建空间滤波器

(1)基于其数学性质。例如计算邻域像素平均值会模糊图像;计算图像局部导数的滤波器会瑞华图像
(2)对形状具有所需性质的二维空间函数进行取样,例如后面会讲的低通滤波器
(3)构建的方法式涉及具有规定频率响应的空间滤波器

3.5平滑空间滤波器

平滑滤波器用于降低灰度的急剧过渡。由于噪声通常以灰度的急剧过渡组成,因此平滑的一个明显应用就是降噪,当然也包括减少无关细节
(1)盒式滤波器核
特点是其系数的值相同(通常为1),如下是一个 3 × 3 3\times 3 3×3的盒式滤波器
在这里插入图片描述

(2)低通高斯滤波器核
上述的盒式滤波器在视觉上会产生平滑效果,但是往往会产沿垂直方向模糊图像(方向性)
因此我们想要的核是圆对称的,而高斯核就具有这样的性质
G ( r ) = K e − r 2 2 σ 2 G(r)=Ke^{-\frac{r^2}{2\sigma^2}} G(r)=Ke−2σ2r2​
r 是距离,通常是二维图像中像素点与中心点的欧几里得距离; σ \sigma σ是标准差,控制高斯函数的扩散程度。也就是说距离中心的的距离相同的点值相同

如下就是典型的高斯核,其中前面的系数为各数之和,为归一化所设计
在这里插入图片描述
在这里插入图片描述

(3)统计排序(非线性)滤波器
这里尤其指中值滤波器
就是将核内覆盖的所有灰度值的中值(排序后位置在中间的值) 代替中心像素值
这一方法比均值滤波更加适合去除椒盐噪声
当然相应的也会有最大值滤波器、最小值滤波器等

[!NOTE] Title
椒盐噪声:就是指椒和盐,是将黑点和白点叠加到图像上

3.6锐化(高通)空间滤波器

与前面的平滑滤波器相对,锐化空间滤波器就是突出图像细节或者增强模糊的部分

在图像处理中,像素值随位置的变化可以用导数来描述:
在离散的图像中我们可以类比连续函数中导数的定义
d f d x = lim ⁡ h → 0 f ( x + h ) − f ( x ) h \frac{\mathrm{d}f}{\mathrm{d}x}=\lim_{h\to0}\frac{f(x+h)-f(x)}{h} dxdf​=h→0lim​hf(x+h)−f(x)​
定义离散的情况下步长 h = 1 h=1 h=1,那么就有得到差分定义为:
∂ f ∂ x = f ( x + 1 ) − f ( x ) \frac{\partial f}{\partial x}=f(x+1)-f(x) ∂x∂f​=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) ∂x2∂2f​=f(x+1)+f(x−1)−2f(x)

经过验证也可以发现:
一阶导数: 反映图像亮度的变化率(梯度),常用来检测边缘。
二阶导数: 反映亮度变化的变化率,常用来检测边缘位置或增强边界。

二阶导数的拉普拉斯算子

可以证明,最简单的各向同性导数算子(核)是拉普拉斯,对于包含两个变量的图像 f ( x , y ) f(x,y) f(x,y),它定义为:
∇ 2 f = ∂ 2 f ∂ x 2 + ∂ 2 f ∂ y 2 \nabla^2f=\frac{\partial^2f}{\partial x^2}+\frac{\partial^2f}{\partial y^2} ∇2f=∂x2∂2f​+∂y2∂2f​
进而代入上述公式得到:
∇ 2 f ( x , y ) = f ( x + 1 , y ) + f ( x − 1 , y ) + f ( x , y + 1 ) + f ( x , y − 1 ) − 4 f ( x , y ) \nabla^2f(x,y)=f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x,y) ∇2f(x,y)=f(x+1,y)+f(x−1,y)+f(x,y+1)+f(x,y−1)−4f(x,y)
同理就可以得到对应的拉普拉斯核(上式对应最左边,其他的为不同形式)
在这里插入图片描述

一阶导数锐化图像——梯度

在图像处理中,一阶导数是用梯度幅度实现的。图像 f f f在坐标 ( x , y ) (x,y) (x,y)处的梯度定义为二维列向量

∇ f ≡ grad ⁡ ( f ) = [ g x g y ] = [ ∂ f / ∂ x ∂ f / ∂ y ] \nabla f\equiv\operatorname{grad}(f)=\begin{bmatrix}g_x\\g_y\end{bmatrix}=\begin{bmatrix}\partial f/\partial x\\\partial f/\partial y\end{bmatrix} ∇f≡grad(f)=[gx​gy​​]=[∂f/∂x∂f/∂y​]

参考前面的导数的定义以及下面的图像,我们可以得到满足一阶导的导数的近似是:
在这里插入图片描述
g x = ( z 9 − z 5 ) , g y = ( z 8 − z 6 ) g_x=(z_9-z_5)\quad,\quad g_y=(z_8-z_6) gx​=(z9​−z5​),gy​=(z8​−z6​)
如此一来我们就可以得到罗伯特(roberts)交叉梯度算子的形式为
在这里插入图片描述
同理,对于更具有对称性的 3 × 3 3\times 3 3×3的核,得到一阶导的近似为:
g x = ∂ f / ∂ x = ( z 7 + 2 z 8 + z 9 ) − ( z 1 + 2 z 2 + z 3 ) g_{x}=\partial f/\partial x=(z_{7}+2z_{8}+z_{9})-(z_{1}+2z_{2}+z_{3}) gx​=∂f/∂x=(z7​+2z8​+z9​)−(z1​+2z2​+z3​)
g y = ∂ f / ∂ y = ( z 3 + 2 z 6 + z 9 ) − ( z 1 + 2 z 4 + z 7 ) g_{y}=\partial f/\partial y=(z_{3}+2z_{6}+z_{9})-(z_{1}+2z_{4}+z_{7}) gy​=∂f/∂y=(z3​+2z6​+z9​)−(z1​+2z4​+z7​)
对应的就是Sobel算子:
在这里插入图片描述

标签:滤波器,partial,灰度级,灰度变换,数字图像处理,直方图,灰度,图像,冈萨雷斯
From: https://blog.csdn.net/m0_65478278/article/details/144607473

相关文章

  • 《数字图像处理》课程设计——Matlab人脸识别
    本文使用MATLAB实现人脸检测效果,部分代码如下:识别函数:functionOutputName=Recognition(TestImage,m,A,Eigenfaces)ProjectedImages=[];Train_Number=size(Eigenfaces,2);fori=1:Train_Numbertemp=Eigenfaces'*A(:,i);ProjectedImages=[Pr......
  • 《数字图像处理》课程设计——路面裂缝检测系统
    本文使用MATLAB实现了路面裂缝检测系统,部分代码如下。预处理函数:functionResult=Process_Main(I)ifndims(I)==3I1=rgb2gray(I);elseI1=I;endI2=hist_con(I1);I3=med_process(I2);I4=adjgamma(I3,2);[bw,th]=IterProcess(I4);bw=~bw;......
  • 《数字图像处理》课程设计——MATLAB车牌识别
    本文使用MATLAB实现了车牌识别功能并设计了GUI界面便于人机交互。是以其他作者代码为蓝本编写,原始出处查询不到了,如有侵权请告知。下面是部分代码:首先,载入原始图片,这里采用的是[filename,filepath],可用于直接弹出对话框的选择图片,比较方便。%自动弹出提示框读入图像[file......
  • 数字图像处理 (四)
    图像压缩原因:减少表示图像所需数据量,去除多余数据图像冗余(表达数据的信息多余)编码冗余编码符号数多余实际所需像素间冗余领域像素间相关性心里视觉冗余视觉感知的重要程度信源编码:通过减少冗余数据来实现数据压缩的过程客观保真度准则-----图像质量(相似度)评价当所......
  • 数字图像处理
    图像的基本运算灰度反转黑白图像灰度值1-->00-->1256灰度级图像255-个像素灰度级,就能是下班灰度反转即g(x,y)=L-1-f(x,y)对数变换压缩图像的灰度值的动态范围--调高输入图像的低灰度值人的视觉感觉与进入人眼的光的强度成对数关系--先对图像进行对数变换在显示......
  • 数字图像处理(18):图像亮度调节:线性变换
            (1)图像亮度:反映图像的明暗程度,在图像处理中,亮度常用灰度值表示,灰度值越高,图像越亮。对图像进行亮度调节,可以改善图像的视觉效果,让图片更亮或更暗,以适应实际需求。        (2)线性亮度和对比度调节:通过对每个像素进行相同系数的增加或减少,来整体提高或降......
  • 数字图像处理期末分享(某油)
    一、名词解释数字图像:空间坐标和灰度均不连续的、用离散数字表示的图像数字图像处理:对数字图像进行的处理主要借助于计算机来进行处理的,故数字图像处理又被称为计算机图像处理。遥感图像:是指记录各种地物电磁波大小的胶片或照片,主要分为航空像片和卫星相片。对比度:明暗的对......
  • 数字图像处理
    数字图像处理概述相关概念图像:模拟图像:空间坐标和明暗程度是连续变化的,计算机无法直接处理光学图像、连续图像早期的模拟相机拍摄的照片数字图像:二维空间和亮度值(灰度)不连续,用有限、离散数字数值表示的图像,能用计算机处理数字图像的获得:数码相机或者数字摄像仪拍摄,数......
  • 我谈冈萨雷斯对频域滤波的误解——快速卷积与频域滤波之间的关系
    在RafaelGonzalez和RichardWoods所著的《数字图像处理》中,Gonzalez对频域滤波是有误解的,在频域设计滤波器不是非得图像和滤波器的尺寸相同,不是非得在频域通过乘积实现。相反,FIR滤波器设计都是构造空域脉冲响应。一般的原则是,小尺寸的滤波器在空域通过卷积实现更快,大尺寸的......
  • 我谈冈萨雷斯对理想滤波器的误解——能用卷积实现的滤波器都是FIR滤波器,都物理可实现
    能用卷积实现的滤波器都是FIR滤波器,都是物理可实现的。Gonzalez可笑的理想滤波器,还反复强调物理不可实现。都采样了,咋就不可物理实现呢?不丝滑归不丝滑。FIR和IIR滤波器的常系数差分方程FIR(FiniteImpulseResponse,有限脉冲响应)和IIR(InfiniteImpulseResponse,......