空间域(相对于变换域而言)指图像平面本身,该类图像处理方法直接操作图像中的像素。
空间域处理主要分为两类:灰度变换、空间滤波
(1) 灰度变换:对图像的单个像素进行操作,以对比度和阈值处理为目的;
(2) 空间滤波:涉及改善性能的操作。如通过图像中每个像素的邻域处理来锐化图像。
The process that Fig. 3.1 illustrates consists of moving the origin of the neighborhood from pixel to pixel and applying the operator T to the pixels in the neighborhood to yield the output at that location.Thus, for any specific location (x, y), the value of the output image g at those coordinates is equal to the result of applying T to the neighborhood with origin at (x, y) in f. For example, suppose
that the neighborhood is a square of size 3*3 and that operator T is defined as “compute the average intensity of the neighborhood.” Consider an arbitrary location in an image, say (100, 150). Assuming that the origin of the neighborhood is at its center, the result,g(100,150) , at that location is computed
as the sum of and its 8-neighbors, divided by 9 (i.e., the average intensity of the pixels encompassed by the neighborhood). The origin of the neighborhood is then moved to the next location and the procedure is repeated to generate the next value of the output image g.Typically, the process starts at the top left of the input image and proceeds pixel by pixel in a horizontal scan, one row at a time.When the origin of the neighborhood is at the border of the image, part of the neighborhood will reside outside the image.The procedure is either to ignore the outside neighbors in the computations specified by T, or to pad the image with a border of 0s or some other specified intensity values.The thickness of the padded border depends on the size of the neighborhood.We will return to this issue in Section 3.4.1.
As we discuss in detail in Section 3.4, the procedure just described is called spatial filtering, in which the neighborhood, along with a predefined operation, is called a spatial filter (also referred to as a spatial mask, kernel, template, or window). The type of operation performed in the neighborhood determines the nature of the filtering process.
图像增强:不考虑图像降质的原因,只将图像中感兴趣的特征有选择地突出,对不需要的特征进行衰减。增强技术是面向问题的。
目的:
1)改善图像视觉效果,便于观察和分析;
2)便于人工或机器对图像的进一步处理
公式:
s = L − 1 − r , L 为 灰 度 级 数 ( 即 l m a x ) {s=L-1-r}\quad,L为灰度级数(即l_{max}) s=L−1−r,L为灰度级数(即lmax)
图像反转:反转一幅图像的灰度级,可得到等效的照片底片。特别适用于增强嵌入图像暗色区域中的白色或灰色细节,特别是当黑色面积在尺寸上占主导地位时。如:
公式:
s = c l o g ( 1 + r ) , c 是 常 数 , 并 假 设 r ≥ 0 s=clog(1+r),\quad{c是常数,并假设r\ge{0}} s=clog(1+r),c是常数,并假设r≥0
左 图 : 突 出 目 标 的 轮 廓 , 消 除 背 景 细 节 右 图 : 突 出 目 标 的 轮 廓 , 保 留 背 景 细 节 左图:突出目标的轮廓,消除背景细节 \quad右图:突出目标的轮廓,保留背景细节 左图:突出目标的轮廓,消除背景细节右图:突出目标的轮廓,保留背景细节
灰度级范围为[0, L-1]的数字图像的直方图是离散函数 h ( r k ) = n k h(r_k)=n_k h(rk)=nk,其中,k =0,1,……,L-1, rk是第k级灰度值,nk是图像中灰度为rk的像素个数。
归一化: p ( r k ) = n k / M N p(r_k)=n_k/MN p(rk)=nk/MN
p ( r k ) p(r_k) p(rk)是灰度级 r k r_k rk在图像中出现的概率的估计,M和N是图像的行数和列数。
直方图统计一幅图像中各个灰度级出现的次数
直方图反映的是图像灰度级的统计信息,但丢失了所有像素点的空间信息,即像素点的相对位置
任意特定的图像有唯一的直方图,但反之不成立。
s = T ( r ) = ( L − 1 ) ∫ 0 r p r ( w ) d w s=T(r)=(L-1) \int_{0}^{r} p_{r}(w) \mathrm{d} w s=T(r)=(L−1)∫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\left(r_{k}\right)=(L-1) \sum_{j=0}^{k} p_{r}\left(r_{j}\right)=\frac{(L-1)}{M N} \sum_{j=0}^{k} n_{j}, k=0,1,2, \cdots, L-1 sk=T(rk)=(L−1)j=0∑kpr(rj)=MN(L−1)j=0∑knj,k=0,1,2,⋯,L−1
T称为直方图均衡。
figure
imhist(img);
g=histeq(img,256);
figure
imhist(g);
直方图匹配是将原始图像的直方图转换为期望(特定)的直方图的形状,以直方图均衡化变换为中介来实现的。
以图像中每个像素的邻域中的灰度分布为基础设计变换函数,增强图像中小区域的细节。
令r表示区间[0,L-1]上代表灰度值的一个离散随机变量,令p(ri)表示对应于ri值的归一化直方图分量。
r关于其均值的n阶矩定义为:
μ n ( r ) = ∑ i = 0 L − 1 ( r i − m ) n p ( r i ) \mu_{n}(r)=\sum_{i=0}^{L-1}\left(r_{i}-m\right)^{n} p\left(r_{i}\right) μn(r)=i=0∑L−1(ri−m)np(ri)
m是r的均值(平均灰度,即图像中像素的平均灰度):
m = ∑ i = 0 L − 1 r i p ( r i ) m=\sum_{i=0}^{L-1} r_{i} p\left(r_{i}\right) m=i=0∑L−1rip(ri)
二阶矩(灰度方差,通常用σ2表示):
μ 2 ( r ) = ∑ i = 0 L − 1 ( r i − m ) 2 p ( r i ) \mu_{2}(r)=\sum_{i=0}^{L-1}\left(r_{i}-m\right)^{2} p\left(r_{i}\right) μ2(r)=i=0∑L−1(ri−m)2p(ri)
均值是平均灰度的度量,方差(或标准差)是图像对比度的度量。
取样均值和取样方差:在仅处理均值和方差时,实际上通常直接从取样值来估计它们。
m = 1 M N ∑ x = 0 M − 1 ∑ y = 0 N − 1 f ( x , y ) σ 2 = 1 M N ∑ x = 0 M − 1 ∑ y = 0 N − 1 [ f ( x , y ) − m ] 2 \begin{array}{c} m=\frac{1}{M N} \sum_{x=0}^{M-1} \sum_{y=0}^{N-1} f(x, y) \\\\\\ \sigma^{2}=\frac{1}{M N} \sum_{x=0}^{M-1} \sum_{y=0}^{N-1}[f(x, y)-m]^{2} \end{array} m=MN1∑x=0M−1∑y=0N−1f(x,y)σ2=MN1∑x=0M−1∑y=0N−1[f(x,y)−m]2
步骤:(空间滤波都是利用模板卷积,下述的模板即是滤波器)
1、将模板在图中漫游,并将模板中心与图中某个像素位置重合;
2、将模板上系数与模板下对应像素相乘
3、将所有乘积相加(为保持灰度范围,常将结果再除以模板中所有系数的和)
4、将和(模板的输出响度)赋给图中对应模板中心位置的像素。当模板边界超出图像的边界时,注意边界问题的处理,最常用的方法时填充,但其会影响图像的边界,影响程度随模板尺寸的增大而增加。
相关:滤波器模板移过图像并计算每个位置乘积之和。乘积求和操作,滑动乘积(内积)。
(1) 相关是滤波器位移的函数;
(2) 滤波器w与包含有全部0和单个1的函数相关,结果是w的旋转了180°的副本。
离散单位冲激:包含单个1而其余都是0的函数。
结论:
一个函数(w)与离散单位冲激(f)相关,会在该冲激位置产生该函数的一个翻转版本。
问题:相关操作时存在未覆盖的部分函数
解决方法:在f的任意一侧补上足够的0,以便使w中的每个元素都可访问到f中的每个像素。如果滤波器的尺寸是m×m,那么需要在f的一侧补m-1个0。(零填充并不是唯一的选择,还可以用等值填充或镜像填充方法。)
卷积:与相关的机理相似,但滤波器首先要旋转180°。即:先把函数(w)旋转180°,然后执行相关中的相同操作(即滑动内积)。
卷积的基本特性是某个函数(w)与某个单位冲激(f)卷积,得到函数在该冲激处的一个副本。即一个函数与一个冲激卷积,在该冲激的位置复制了该函数
w 与 f 卷积=水平翻转/旋转180 ° \degree °的w 与 f 相关
如果滤波器模板是对称的,相关和卷积将得到相同的结果。图像f包含一个与w完全相同的区域,当w位于f的区域中心时,相关函数(归一化后)的值将是最大的。
在二维情况下旋转180°:先沿一个坐标轴翻转模板,然后再沿另一个坐标轴翻转模板。
当我们的兴趣在于相关或卷积模板的响应特性R时,写成乘积的求和形式更方便:
R = w 1 z 1 + w 2 z 2 + ⋯ + w m n z m n = ∑ k = 1 m n w k z k = w T z R=w_{1} z_{1}+w_{2} z_{2}+\dots+w_{m n} z_{m n}=\sum_{k=1}^{m n} w_{k} z_{k}=w^{\mathrm{T}} z R=w1z1+w2z2+⋯+wmnzmn=k=1∑mnwkzk=wTz
其中,w是大小为m*n的滤波器的系数(n维向量),z是由滤波器覆盖的相应图像的灰度值(n维向量)。
注:本人初学数字图像处理,将学习笔记记录于此,持续更新,书本图片库、英文原版电子书、代码等更多相关学习资源欢迎关注微信公众号痕中光获取。