冈萨雷斯 《数字图像处理》Study Log

27k 词

目录:

 

 

Ch0 数字图像的概念

观察系统使用的光波段:可见光、红外、射线、微波、超声波等

视觉在人类获取信息来源中占70%

图:反射光或者透射光的分布,或物体自身发出的能量—客观

像:人的视觉系统对图的接收在大脑中形成的印象或认识—主观

图像处理:是对图像信息进行加工处理,以满足人的视觉心理和实际应用的需求。包括光学和电子学两种方法

图像分类:模拟图像与数字图像

  • 模拟图像:理论上不存在,即使高密度胶片成像也无法称为模拟图像,个人认为可将人眼获得的像近似为模拟图像

  • 数字图像:

    由连续的模拟图像通过采样量化得到。数字图像的基本单位是像素,所以数字图像是像素的集合

    数字图像是以像素为元素的矩阵,像素的值代表图像在该位置的亮度/色度,称为图像的灰度值/色度值

    数字图像像素具有整数坐标与整数灰度值

数字图像处理的基本特点

  1. 信息量大
  2. 占用频带宽:电视图像的带宽为5~6MHz(细节越多,画质越高带宽越大,不过现代数字编码技术可以通过压缩方法,比如MPEG-4、H.265等方式大幅减少带宽需求),语音的带宽只有4kHz,频带越宽,技术实现难度就越大

数字图像处理的基本内容

(部分内容与图形学互为逆过程)

  1. 增强:改善质量
  2. 几何处理:平移、缩放、旋转、扭曲
  3. 复原重建:去噪、去模糊、重建原始图像
  4. 编码压缩:减少存储量和传输量
  5. 分割:区域分割和理解、目标表达和描述
  6. 理解:图像感知、解释、推理

应用场景:影视图像处理、医学影像处理、刑侦辅助

 

 

Ch1 图像技术基础

图像与像素

图像—二维函数f(x,y),其中x,y是空间坐标【空间上的离散化,即采样】,f(x,y)是该点的幅值【即量化】

图像类别 特征
黑白图像 二值
灰度图像 单分量,f(x,y)表示亮度
彩色图像 多分量,由3个或多个二维灰度函数f(x,y)组成(如RGB,HSV)

数字化过程

  • 扫描:对一幅图像内给定位置进行寻址,将图像分割为矩形网络,即栅格化,扫描的最小单元为像素
  • 采样:在一幅图像的每个像素位置上测量灰度值,由传感元件将光的亮度转化为电压值
  • 量化:将测量的灰度值用整数来表示(ADC)
${f}_{i j}=\left[\begin{array}{cccc} f_{00} & f_{01} & \cdots & f_{0*(N-1)} \\ f_{10} & f_{11} & \cdots & f_{1*(N-1))} \\ \vdots & \vdots & \cdots & \vdots \\ f_{(N-1)*0} & f_{(N-1)*1} & \cdots & f_{(N-1)*(N-1)} \end{array}\right] \approx f(x, y)$

像素的属性

  • 大小:与空间分辨率有关,长采样间隔产生低的空间分辨率
  • 灰度:与灰度分辨率有关
  • 位深度:用来存放像素颜色值所用的位数:1/4/8/24(真彩)
  • 灰度级:对应位深度,表示像素明暗程度的整数量,为$2^n$

像素间的基本关系

  • neighbor 邻域:4-邻域;D-邻域;8-邻域
  • adjacency 连接性

​ 两个像素连接的两个必要条件:

  1. 两个像素的位置邻接(按上述neighbor种类可划分为 4-连接、8-连接,以及m-连接)

  2. 两个像素的灰度值满足特定的相似性准则(值要在某一范围内近似相等)

    特殊情况:*m-连接,包括两种情况(视觉上看不允许有三角阶梯形的连接图案)

    1. 4-连接
    2. 像素A∈像素B的D-邻域,且两个像素的4-邻域不包含同样值的像素
  • 距离(像素A到像素B的路径,是不同像素的序列)可用定义连接的方法定义路径,其中m-连接所得的m-路径更适用于边缘提取。

  • connection 像素在图像子集中连通

    两个像素在图像中能有一条完全由像素组成的路径,则两个像素连通,连接是连通的一种特殊情况

  • connected component 连通成分

    对于图像中的任意像素A,图像中所有连接到A的像素的集合被称为图像的连通成分,同样可按连接方式划分

像素间的距离

  • 欧几里得距离

p与q之间的欧几里得距离定义为:

$De(p,q) = [(x-s)^2 + (y-t)^2]^{(1/2)}$

对于图像来说计算量太大,一般不用。

  • D4距离/街区距离/城市距离
$D4(p,q) = |x-s| + |y-t|$

区别于欧几里得距离(到某像素距离等于某个值的像素形成一个圆形),到某像素D4距离小于等于某个值的像素形成一个菱形

  • D8距离/棋盘距离:用于边缘提取时设置距离的阈值
$D8(p,q) =max(|x-s| , |y-t|) $

如下图所示:

印刷品中的半调输出技术

  • 节选自维基百科:半色调(Halftone)是指为了模拟出连续调影像(色阶)的视觉感觉,一般用墨点(半色调网点)的大小或频率的改变,来模拟明暗的变化。半色调技术是传统印刷中用来处理阶调并模拟连续调(continue tone)的方法,通常也称为过网(screening)技术。半色调是相对于连续调表示阶调的一种方法,一般我们所看到银盐相片上的影像是由连续的层次所构成,像这样的影像称之为连续调影像。相对而言,印刷机或打印机上所打印的图像,只能借由着墨或不着墨两种阶调来表现层次,像这样的两值化影像称为半色调影像。只要借由调整不同形式、不同大小的墨点,利用人眼可以将图像中邻近墨点进行视觉积分的原理,在一定的距离观察下,便可以使二值化影像重现连续调的感觉。也就是说,当这些墨点越小时,二值化影像就可以在越短的观测距离下,被人眼观测积分成近似连续调的影像。

图像坐标变换

可借助矩阵写为

$\boldsymbol{v}^{\prime}=\boldsymbol{A} \boldsymbol{v}$

其中A为变换矩阵,v‘为变换后的坐标矢量,v为变换前的坐标矢量

平移变换

$\boldsymbol{T}=\left[\begin{array}{ccc} 1 & 0 & x_{0} \\ 0 & 1 & y_{0} \\ 0 & 0 & 1 \end{array}\right]$

尺度变换

$\boldsymbol{S}=\left[\begin{array}{ccc} S_{x} & 0 & 0 \\ 0 & S_{y} & 0 \\ 0 & 0 & 1 \end{array}\right]$

旋转变换

$\boldsymbol{R}=\left[\begin{array}{ccc} \cos \gamma & \sin \gamma & 0 \\ -\sin \gamma & \cos \gamma & 0 \\ 0 & 0 & 1 \end{array}\right]$

图像的质量

清晰度:亮度,对比度,主题内容的大小,细微层次,颜色饱和度

对比度 = 最大亮度 / 最小亮度

图像储存的数据结构

  1. 一维数组,行列储存
  2. 多波段储存

图像文件格式

BMP, GIF, TIFF, JPEG等

 

 

*光盘读取原理

无论是CD光盘还是DVD光盘,其存储方式与磁盘一样,都是以二进制数据的形式来存储信息。要在这些光盘上存储数据,需要借助激光把二进制数据刻在扁平、具有反射能力的盘片上。为了识别数据,定义激光刻出的小坑就代表二进制的“1”,而空白处则代表二进制的“0”。(凹坑和平坦区域的 边缘变化【如从凹坑到平坦,或反之】代表”1”,无变化代表”0”)DVD的记录凹坑比CD小,且螺旋存储凹坑之间的距离也更小。

CD光驱或DVD光驱的主要部分就是激光发生器和光监测器。激光发生器(激光二极管),可以产生对应波长的激光光束,然后经过一系列的处理后照到光盘上。经由光监测器捕捉反射信号而识别实际的数据。然后计算机将这些二进制代码转换成为原来的数据或程序。当光盘在光驱中作高速旋转,激光头在电机的控制下作径向移动,数据就这样源源不断地读取出来。

根据数据密度的差别可分为CD, DVD, BD等。

光盘与机械硬盘的工作原理区别可见以下博客:

https://zhuanlan.zhihu.com/p/51572176

 

 

 

Ch2 空间域图像增强

定义:直接作用于像素的增强方法,根据具体操作是在像素点位置上还是像素点的邻域上可分为点操作模板操作(邻域操作)

灰度映射

通过映射函数:$ t= T(s)$(可根据增强的目的来设计映射函数)将原始图像中的每个像素的灰度都映射到新的灰度。

图像求反(负片)

一一对应

幂次变换

$t= cs^{γ}$

$γ<1$时在正比函数上方,使得图像变亮,把输入窄带暗值映射到宽带输出;

$γ>1$时在正比函数下方,使得图像变暗,把输入窄带亮值映射到宽带输出。

动态范围压缩

由于某些设备的局限性,采用动态范围压缩,目标与增强图片的对比度相反(同等范围的原始灰度级数变换后范围变化减小)

阶梯量化

将图像灰度分范围量化,变成数据量较少的级数,获得数据量压缩的效果(有点像素化风格)

灰度切分/阈值切分

只留下两个灰度值,获得最大的对比度以及最少的细节

*分段变换:

位平面切片

以256灰度级图像为例,该图像的灰度级可以用8位表示。可假设图像是由8个1位平面组成,即位平面0~7,其中位平面0包含图像中像素的最低位,位平面7包含像素的最高位。

较高位(前4位)包含大多数视觉重要数据。较低位(后4位)包含对微小细节重要的数据,位平面切片可以分析每一位在图像中的相对重要性。

 

图像运算(逐像素进行)

算术运算(一般用于灰度图像)
代数运算

加法:$C(x,y) = A(x,y) + B(x,y)$

应用场景:1. 去除叠加性噪声(图像均值化将降低噪声的影响)2. 生成图像叠加效果

减法:$C(x,y) = A(x,y) - B(x,y)$

应用场景:1. 显示两幅图之间的差异,如视频中的镜头边界的检测 2. 去除不需要的叠加性图案(gb\bb剪辑) 3. 图像分割

乘法:$C(x,y) = A(x,y) * B(x,y)$

应用场景:局部显示——用二值蒙版图像与原图像做乘法

逻辑运算

与、或、异或、非

部分运算方法与加减法有类似的地方

非:$g(x,y) = 255 - f(x,y)$ 可获得一个负片图像(补图像)

*负片: 灰度图像公式如上;RGB图像需要分别进行非运算;非线性色域需要先进行线性校正后再对不同通道分别校正

与:$g(x,y) = h(x,y) ∧ f(x,y)$ ;或:$g(x,y) = h(x,y) V f(x,y)$

可以提取相交子图或合并子图像

 

直方图变换

灰度直方图是关于灰度级的离散函数,描述图像中各灰度级的像素个数,一般归一化后描述

直方图只能反映图像的灰度分布情况,不能反映图像像素的位置

一幅图对应唯一的灰度直方图

*高对比度的图像有更平坦的直方图,对于图像分割,识别领域,一幅图像应该利用全部或者几乎全部可能的灰度级

应用:

  • 利用直方图分布进行阈值分割,如果某灰度图像的灰度直方图有两个明显的尖峰,取两个尖峰之间的谷点作为分割点,可以得到较好的二值处理的效果

  • 直方图均衡化,通过将像素个数多的灰度级进行展宽,对像素个数少的灰度级进行缩减,将原始图像的直方图变为均衡分布的形式,由于各灰度之间有均匀的概率分布,图像看起来可以更清晰

*直方图均衡化方法:

为使得图像的直方图均衡化,同时保持灰度值的单调性和范围不变,构造的灰度变换函数$ t= T(s)$需要满足以下两个条件:

  1. $T(s)$是单调递增函数,且$0≤T(s)≤1$:保证变换后的灰度值保持从黑到白的变换顺序,避免灰度值反转,保证变换后的灰度值在0~1的范围内(归一化后)

    原始图像的累积分布函数(CDF,即概率密度曲线包围的面积)可满足以上条件

    $t = T(s) = \int_{0}^{s}p(w)dw, p(w)是概率值$
  2. $T^{-1}(s)$存在且单调递增,允许均衡化后的灰度值t反向映射回原始灰度值,反函数单调递增可以保证反向映射时仍然保持灰度顺序不变,避免引入新的非线性失真

    $T(s)$是CDF,其反函数可以通过查找或者数值方式求得

因为数字图像处理是离散化的,因此需要对上述方法离散化:

设一幅图像的像素总数为n,分L个灰度级,其中第k个灰度级出现的概率为$p(s_{k}) = n_{k}/n$,其中$0≤s_k≤1,k = 0,1,2,…L-1$. 变换函数,即离散CDF为$T(s_k) = \sum_{j=0}^{k} p(s_{k}) = \sum_{j=0}^{k} n_j/n$

算法步骤:

  • 计算每个灰度级的像素个数在整个图像中所占的概率
  • 计算每个灰度级的离散CDF
  • 根据变换后的$t_{k}$的值判断变换后的灰度级(区间拟合,比如round())

拟合后会合并部分灰度级,宏观上对灰度级分布均衡化,微观上不可能拉平,灰度级层次减少,对比度提高

这种方法使得原本集中在狭窄区间的像素值变换到更广的范围内,增加了像素灰度值的有效动态范围

优点:自动得到近似均匀分布的直方图,但由于变换函数采用CDF,只能近似,因此在一些有特定需求的场景下采用直方图规定化方法

 

*直方图规定化方法:

将原始直方图转换为期望直方图

算法步骤:

  • 对原始图像进行灰度均衡化(按照上述直方图均衡化方法)
  • 计算目标直方图的离散CDF
  • 将原始直方图映射到目标直方图

映射规则:

单映射规则(灰度级一一对应) & 组映射规则(灰度级分组后平均后对应,效果好)

 

镜头边界的检测

定义:一个镜头指一系列连续记录的图像帧,用于表示一个时间段或者相同地点连续的动作

镜头边界的检测即检测由镜头切换而产生的关键帧

方法:

  • 两幅图图像相减(检测像素变化的数目是否超过阈值)可通过滤波降低对摄像机运动敏感的问题影响
  • 连续帧的直方图相减(统计相邻两帧中所有像素在不同灰度上的分布差异之和是否超过阈值)对目标的空间变化不敏感
  • 时空切片分析(颜色和纹理的不连续)

 

图像空间平滑滤波增强

图像中的噪声

引起原因:敏感元器件的内部噪声,传输通道的干扰以及量化噪声

噪声分类:

  • 加性噪声:与图像信号无关。信道噪声、扫描时产生的噪声
  • 乘性噪声:某像素处的噪声只与该像素处的图像信号有关(或者与其邻域信号也有关)
  • 根据噪声的分布特性可以分为:椒盐噪声(泊松噪声)、高斯噪声、颗粒噪声等
邻域平均线性滤波(均值滤波)
  • 思想:将一个像素及其邻域内的所有像素的平均灰度值赋给平滑图像中对应的像素,从而达到平滑的目的

常用的邻域有4-邻域和8-邻域

  • 作用:减噪,去除不相干的细节,对灰度级不足引起的伪轮廓进行平滑

example:非加权3*3邻域均值滤波器模板

$H_{0}=\frac{1}{9}\left[\begin{array}{ccc} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{array}\right]$

加权3*3均值滤波器模板

$H_{0}=\frac{1}{10}\left[\begin{array}{ccc} 1 & 1 & 1 \\ 1 & 2 & 1 \\ 1 & 1 & 1 \end{array}\right]$

中心像素为待处理像素

那么可知道,当像素处于图像边缘时,这个滤波器有一部分是没有值对应的,此时有两种方法进行补充:

  1. 镜像反射
  2. 补0

邻域平均法算法步骤:

  • 确定mask大小
  • 对待处理的图像边缘进行扩充
  • 将mask在图像中游走,计算平均
  • 用均值代替中心像素值

*模板越大,对图像的模糊作用就越强,但也可以在提取较大目标之前先去除太小的细节或噪声

*加权邻域平均可以一定程度上缓解非加权滤波导致的边缘模糊的问题,其中心元素占的比例越小,越平滑,图像越模糊

 

中值滤波法

虽然邻域平均法可以平滑图像,但在消除噪声的同时,会使得图像中的一些细节变得模糊。中值滤波则在消除噪声的同时还能保持图像中的细节部分。

  • 思想:对模板内的像素进行大小顺序排列,如此最亮的和最暗的点会排在两侧,用中间位置像素值代替原灰度值
  • 作用:消除噪声,保留图像细节,防止边缘模糊。对脉冲噪声和椒盐噪声的抑制效果好

中值滤波算法步骤:

  • 确定mask大小与形状
  • 对待处理的图像边缘进行扩充
  • 将mask在图像中游走,对模板内像素值进行排序
  • 用中间值代替中心像素值

mask形状一般有方形与十字形

注:

  • 有尖顶角几何结构的图像,一般采用十字窗,大小不超过最小有效物体的尺寸
  • 有较多的点、线细节的结构,一般不用中值滤波
  • 由中值滤波推广到统计排序滤波器:最大值滤波器(寻找最亮点)& 最小值滤波器(寻找最暗点)

 

空间域滤波推广

  • 钝化滤波器-平滑滤波器:低通滤波 & 中值滤波
  • 锐化滤波器:高通滤波 & 微分滤波 & 高增益滤波
基本低通滤波器设计原则:

如同邻域平均法,模板系数需大于0,都选1或者中间选1,周围选0.5

图像锐化:

补偿图像的轮廓,突出图像中物体的边缘或细节,使得图像更为清晰

  • 思想:图像模糊的原因——图像被平均或积分,因此为实现图像的锐化,需要进行反运算“微分”——>以此增强高频分量,使图像边缘变得清晰,但同时也增强了噪声
  • 条件:原始图像信噪比质量要高
  • 边缘检测原理:图像中物体边缘是灰度值发生突变的地方,常用差分或者梯度计算来检测边缘

基本高通滤波设计原则:

1)系数中心为正值,外周为负值 2)滤波器各系数之和为0

注:

  • 计算时会出现负值,常用归0处理
  • 像素值相同或者变化平缓的区域,结果为0或者很小,图像亮度降低

微分滤波器

引入微分算子的概念

已知:一阶偏导数没有各向同性

$\frac{\partial f}{\partial x} ≠ \frac{\partial f}{\partial y}$

而数学上可以证明:偏导数的平方和是各向同性的,因此梯度运算、拉普拉斯运算都符合与方向无关性。即:无论边界是什么走向,只要幅度相同,算子的输出就相同。

梯度法: $G[f(x,y)] = [\frac{\partial f}{\partial x} \frac{\partial f}{\partial y}]^{T}$

梯度的方向是$f(x,y)$变化率最大的方向

梯度的偏导数可以用该处偏导数的平方和开根号表示。

对于数字图像,显然是要用差分来代替微分的

同时用绝对值来近似平方和的表达

如上图所示两种方法,第一种是用4-邻域进行近似,第二种是交叉差(Roberts梯度法)

微分滤波器模板系数设计
  • Roberts交叉梯度算子
$H_{0}=\left[\begin{array}{ccc} 1 & 0 \\ 0 & -1 \end{array}\right], H_{1}=\left[\begin{array}{ccc} 0 & 1 \\ -1 & 0 \end{array}\right]$
  • Prewitt梯度算子

    $H_{0}=\left[\begin{array}{ccc} -1 & -1 & -1 \\ 0 & 0 & 0 \\ 1 & 1 & 1 \end{array}\right], H_{1}=\left[\begin{array}{ccc} -1 & 0 & 1 \\ -1 & 0 & 1 \\ -1 & 0 & 1 \end{array}\right]$
  • Sobel梯度算子:有一定的平滑作用

    $H_{0}=\left[\begin{array}{ccc} -1 & -2 & -1 \\ 0 & 0 & 0 \\ 1 & 2 & 1 \end{array}\right], H_{1}=\left[\begin{array}{ccc} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{array}\right]$
  • Scharr梯度算子:更加精确

    $H_{0}=\left[\begin{array}{ccc} -3 & -10 & -3 \\ 0 & 0 & 0 \\ 3 & 10 & 3 \end{array}\right], H_{1}=\left[\begin{array}{ccc} -3 & 0 & 3 \\ -10 & 0 & 10 \\ -3 & 0 & 3 \end{array}\right]$

所有锐化算子的系数之和为0

拉普拉斯算子:求二阶微分,适用于改善因为光线的漫反射造成的图像模糊

应用 经过梯度算子计算后的值:
  1. 若梯度大于25,则给原像素赋最大值255,否则赋原值——边增强且背景保留
  2. 若梯度大于25,则给原像素赋最大值255,否则赋0——边增强且图像二值化

 

高增益滤波

思想:弥补高通滤波的缺陷,在增强边缘和细节的同时,不丢失原图像的低频成分,即增加一部分原图像到高通之中,算子可在高通基础上增益

高通 = 原图 - 低通

高增益 = A原图 - 低通

 

 

 

Ch3 频域图像增强

理论基础

空间域图像变换到频域的具体实现——图像离散傅里叶变换与反变换

频域图像的表达特点——经过中心变换后,低频位于中心,高频在外

空间频率的定义:图像灰度值随空间坐标变化的快慢也可以用频率来度量,称为空间频率

二维卷积

对于二维平面函数,二维卷积定义:

$ h(x, y)=f^{*} g=\int_{-\infty}^{\infty}\int_{-\infty}^{\infty} f(u, v) g(x-u, y-v) d u d v $

*注:

深度学习中,CNN中的卷积其实是“互相关运算”,即kernel不翻转,与上面的二维卷积定义无法完全对应。

在数字图像中,需要离散化,离散二维卷积:

$ h(x, y)=f^{*} g=\sum_{m} \sum_{n} f(m, n) g(x-m, y-n) $
二维离散傅里叶变换

\begin{array}{l}
F(u, v)=\frac{1}{M N} \sum_{x=0}^{M-1} \sum_{y=0}^{N-1} f(x, y) \mathrm{e}^{[-\mathrm{j} 2 \pi(u x / M+v y / N)]} \\
f(x, y)=\sum_{u=0}^{M-1} \sum_{v=0}^{N-1} F(u, v) \mathrm{e}^{[\mathrm{j} 2 \pi(u x / M+v y / N)]}
\end{array}

M,N表示图像在x,y方向上的大小

基本性质
  • 可分离性:可以将二维DFT转换成一维计算,先做一个方向上的:

    \begin{aligned}
    F(u, v) & =\frac{1}{N^{2}} \sum_{x=0}^{N-1} \mathrm{e}^{-\mathrm{j} 2 \pi u x / N} \bullet \sum_{y=0}^{N-1} f(x, y) \mathrm{e}^{-\mathrm{j} 2 \pi v y / N} \\
    f(x, y) & =\sum_{u=0}^{N-1} \mathrm{e}^{-\mathrm{j} 2 \pi u x / N} \bullet \sum_{v=0}^{N-1} F(u, v) \mathrm{e}^{-\mathrm{j} 2 \pi v y / N}
    \end{aligned}

    再做第二个方向上的:

    \begin{array}{l}
    F(u, v)=F_{x}\left\{F_{y}[f(x, y)]\right\}=F_{y}\left\{F_{x}[f(x, y)]\right\} \\
    f(x, y)=F_{u}^{-1}\left\{F_{v}^{-1}[F(u, v)]\right\}=F_{v}^{-1}\left\{F_{u}^{-1}[F(u, v)]\right\} \\
    F(u, v)=\frac{1}{N} \sum_{x=0}^{N-1} F(x, v) \mathrm{e}^{-\mathrm{j} 2 \pi u x / N} \\
    \text { 其中: } F(x, v)=N\left[\frac{1}{N} \sum_{y=0}^{N-1} f(x, y) \mathrm{e}^{-\mathrm{j} 2 \pi v x / N}\right]
    \end{array}

  • 平移性——>图像中心化

    \begin{aligned}
    f(x, y) e^{j 2 \pi\left(\frac{u_{0} x}{M}+\frac{v_{0} y}{N}\right)} & \Leftrightarrow F\left(u-u_{0}, v-v_{0}\right) \\
    f\left(x-x_{0}, y-y_{0}\right) & \Leftrightarrow F(u, v) e^{-j 2 \pi\left(\frac{u x_{0}}{M}+\frac{v y_{0}}{N}\right)}
    \end{aligned}

    第一个公式表明,将f(x,y)与一个指数项相乘就相当于把其变换后的频域中心移动到新的位置。

    第二个公式表明,将F(u,v)与一个指数项相乘,相当于把其变换后的空间域中心移动到新的位置。

    同时可以看出,对f(x,y)的平移不会影响其傅里叶变换的幅值,将u0 = M/2 和 v0 = N/2代入公式,指数部分就变成:$e^{j 2 \pi\left(\frac{u_{0} x}{M}+\frac{\nu_{0} y}{N}\right)}=e^{j \pi(x+y)}=(-1)^{(x+y)} $

    代入上面的公式有:

    \begin{array}{ll}
    f(x, y)(-1)^{(x+y)} & \Leftrightarrow F(u-M / 2, v-N / 2) \\
    f(x-M / 2, y-N / 2) & \Leftrightarrow F(u, v)(-1)^{(u+v)}
    \end{array}

    因此有结论,对数字图像的每一个像素点的取值直接乘上$(-1)^{x+y}$,之后在做傅里叶变换,可以得到中心化后的频域图。这和在频域移动M/2和N/2是一样的效果。

  • 周期性:DFT和他的逆变换是以M,N为周期的

  • 共轭对称性

  • 旋转不变性

  • 加法有分配性,乘法有比例性

  • 平均值:将$u = v = 0$代入二维DFT公式,可得原图像均值就是该DFT在$(0,0)$处的值

DFT的问题

计算量大,收敛慢

引入FFT:对于任何N = 2m的DFT,通过计算两个N/2的DFT,来计算N的DFT

有按位倒序排列等方法

小结:二维离散傅里叶变换在图像处理中是一个比较基本的数学工具,利用这个工具,可以对图像的频谱进行各种各样的处理,比如滤波、降噪、增强等。

除离散傅里叶变换之外,还有沃尔什和哈达玛变换这两种重要的正交变换,他们将信号从时域或者空间域转换到一种由二进制函数(如矩形波)构成的频域,类似于傅里叶变换,但计算更加高效(只涉及加减运算,无需复数运算)

 

频域图像增强

有了二维离散傅里叶变换的基础,下面可以考虑具体的应用了

一般步骤

有被处理图像f(x,y), 变换函数h(x,y),以及最终的目标图像g(x,y)

  • 首先对上述原始图像进行线性位置操作,比如利用DFT的平移性质进行图像中心化
  • 然后根据自己的需求确定变换函数
  • 空间域的卷积等于频域的乘积 $g(x,y) = h(x,y)* f(x,y),G(u,v) = H(u,v)F(u,v)$
  • 最后对目标图像的傅里叶变换进行傅里叶反变换(也利用平移性质,具体可见上一小节的公式),即可得到目标图像的空间域信号
频域平面与图像空域特性的关系
  • 图像变化平缓的部分(低频区域)靠近频率平面的圆心
  • 图像中边界,噪声,变化陡峭的部分,以放射方向离开频率平面的圆心,称为高频区域
滤波器
理想低通滤波器的定义
$H(u, v)=\left\{\begin{array}{ll} 1 & \operatorname{,D}(u, v) \leq D_{0} \\ 0 & \operatorname{,D}(u, v)>D_{0} \end{array}\right.$

其中,D0为截止频率在频率平面内到原点的距离,D(u,v)为距离函数$D(u,v) = (u^2+v^2)^{\frac{1}{2}}$
不过因为是在频域,说是距离有些问题,应该可以把这个说成是水平空间频率u和垂直空间频率v组成的向量的模

理想低通滤波器的分析
  • 整个能量的90%都被一个很小的小圆周包含,大部分尖锐的细节信息都存在于被去掉的10%的能量中
  • 被钝化的图像有一种非常严重的振铃效果
Butterworth低通滤波器

定义:一个截止频率在与原点距离为D0的n阶butterworth滤波器的变换函数如下:

$H(u, v)=\frac{1}{1+\left[D(u, v) / D_{0}\right]^{2 n}}$

其中,D0为截止频率在频率平面内到原点的距离,D(u,v)为距离函数$D(u,v) = (u^2+v^2)^{\frac{1}{2}}$

与理想低通滤波器的区别是,巴特沃斯低通滤波器在通带与被滤除的频率之间没有明显的截断,可以缓解振铃效果

在某些文献中,巴特沃斯滤波器的传递函数可能是指数形式,例如:

$H(u, v)=e^{-\left(\frac{D(u, v)}{D_{0}}\right)^{2 n}}$

这是因为在x较大时,两种传递函数的主体部分衰减的趋势相似,且指数形式在某些情况下计算更为方便。

这时可以把巴特沃斯滤波器看作高斯滤波器的一种推广。

理想高通滤波器及其分析

可根据低通滤波器特性类比

Butterworth高通滤波器
$H(u, v)=\frac{1}{1+\left[{D}_{0} / {D}({u}, {v})\right]^{2 n}}$

Butterworth高通滤波器的分析

  • 低频成分被严重地削弱,使图像失去层次
  • 改进措施:
    1. 加一个常数项到变换函数中
    2. 为解决变暗地趋势,在变换后地图像上再进行一次直方图均衡化(后滤波处理)
同形滤波器

消除图像上照明不均的问题,增加暗区的图像细节,同时又不损失亮区的图像细节,它在频域中同时将亮度范围进行压缩,且将图像对比度进行增强

首先,一个图像也可以用其亮度和反射分量的乘积来表示:

$f(x,y) = i(x,y)r(x,y)$

同形滤波器针对上面两个分量,同时进行滤波处理,但因为两个函数乘积的傅里叶变换是不可以分离的,所以采用取对数ln来操作

个人认为可以理解同形滤波器是一定程度上的图像带通滤波

空间域滤波和频域滤波之间的关系
  • 频域低通滤波器越窄,滤除的低频成分就越多,图像越模糊;在空间域,这意味着低通滤波器越宽,模板越大
  • 频域可以凭借直观指定滤波器
  • 空间域滤波器效果取决于空间模板的大小

 

 

 

Ch4 图像复原与恢复

图像复原的基本概念

图像退化

定义:图像的质量下降叫做退化

形式:模糊、失真、有噪声等

原因:无论是由光学、光电或者电子方法获得的图像,均会有不同程度的退化。比如传感器噪声,物体与摄像设备之间的相对移动等

在图像采集过程中产生的许多退化常称为模糊,在图像记录过程中产生的退化常称为噪声

如果对退化的类型、机制和过程都十分清楚,就可以利用其反过程来复原图像

图像复原

对降质了的图像恢复成原来的图像。具体方法:针对引起图像退化的原因,以及降质过程的某先验知识,建立起退化模型,再针对降质过程采取相反的方向,恢复图像。本质上是一种逆过程。

一般来讲,复原的好坏有一个规定的客观标准,以便对复原的结果作出某种最佳的评估。

 

图像退化模型

退化过程可以看作对原图像作线性运算

$ g(x,y) = H f(x,y) + n(x,y)$

其中H是退化模型,n(x,y)是噪声,退化模型被建模为一个退化函数和一个加性噪声项

在后续的讨论中,对退化模型H作出以下的假设:

  1. H是线性的
  2. H是空间(或位移)不变的

在这里先省略噪声项,可将一幅图像看作是由一系列冲激函数组成的,利用冲激函数的偶函数性质与抽样性质:$\int_{-\infty}^{+\infty} f(t) \delta\left(t-t_{0}\right) d t=f\left(t_{0}\right)$,可推广到二维空间:$f(x, y)=\int_{-\infty}^{\infty} \int_{-\infty}^{\infty} f(\alpha, \beta) \delta(x-\alpha, y-\beta) \mathrm{d} \alpha \mathrm{~d} \beta$,则有$g(x, y)=H \cdot \int_{-\infty}^{\infty} \int_{-\infty}^{\infty} f(\alpha, \beta) \delta(x-\alpha, y-\beta) \mathrm{d} \alpha \mathrm{~d} \beta$

由模型H的两个假设性质可得:

  1. H是线性的:$g(x,y) = \int_{-\infty}^{\infty} \int_{-\infty}^{\infty}H f(\alpha, \beta) \delta(x-\alpha, y-\beta) \mathrm{d} \alpha \mathrm{~d} \beta$

  2. H是空间位移不变的:

    $g(x,y) = \int_{-\infty}^{\infty} \int_{-\infty}^{\infty}f(\alpha, \beta) H \delta(x-\alpha, y-\beta) \mathrm{d} \alpha \mathrm{~d} \beta$

    $= \int_{-\infty}^{\infty} \int_{-\infty}^{\infty}f(\alpha, \beta) h(x-\alpha, y-\beta) \mathrm{d} \alpha \mathrm{~d} \beta$

称$h(x,\alpha;y,\beta)$为扩散函数(PSF)或者系统冲激响应

在光学中冲激为一个光点,退化可以理解为系统冲激响应造成的图像的降质

上述公式符合二维卷积的定义,有:

$g(x,y) = f(x,y)* h(x,y)$

如果H是一个可分离系统,即$h(x,\alpha;y,\beta) = h_1(x,\alpha)h_2(y,\beta)$,则二维运算可以分解为列和行两次一维运算来代替

此时在加上噪声:

$g(x,y) = f(x,y)+h(x,y) + n(x,y)$

结论:一个线性系统完全可以由它的点扩散函数PSF来表征。若系统的点扩散函数已知,则系统在(x,y)处的输出响应可以看成是不同坐标$(\alpha,\beta)$处输入函数$f(\alpha,\beta)$所产生的脉冲响应在$(x,y)$处的叠加。

恢复方法:

空间域中的卷积等于频域中的乘积,频域表示为

$G(u,v) = H(u,v)F(u,v)+N(u,v)$

若略去噪音,有$F(u,v) = \frac{G(u,v)}{H(u,v)}$

对上式进行傅里叶反变换,可以求得空间域恢复图像

*在数字图像中,需要对上述所有内容进行离散化处理

 

噪声介绍

噪声概率密度函数

高斯噪声

$p(z)=\frac{1}{\sqrt{2 \pi} \sigma} \exp \left[-\frac{(z-\mu)^{2}}{2 \sigma^{2}}\right]$

均匀噪声

$p(z)=\left\{\begin{array}{ll} 1 /(b-a) & \text { 如果 } \quad a \leqslant z \leqslant b \\ 0 & \text { 其他 } \end{array}\right.$

椒盐噪声(脉冲噪声)

$ p(z)=\left\{\begin{array}{lll} P_{a} & \text { 如果 } & z=a \\ P_{b} & \text { 如果 } & z=b \\ 0 & \text { 其他 } & \end{array}\right. $
  1. 高斯噪声源于电子电路噪声和由低照明度或高温带来的传感器噪声
  2. 瑞利噪声对分布再图像范围内特征化噪声有用
  3. gamma分布和指数分布用于激光成像的噪声
  4. 均匀密度分布作为模拟随机数产生器的基础
  5. 脉冲噪声用于成像中的短暂停留中,比如错误的开关操作

 

图像复原的方法

无约束还原法
反向滤波法

有退化模型:$g(x,y) = h(x,y)*f(x,y)+n(x,y)$

无约束的反向滤波法过程如下:

$ \begin{array}{l} \hat{f}(x, y)=g(x, y)^{*} h_{I}(x, y)=\left[h(x, y)^{*} f(x, y)+n(x, y)\right]^{*} h_{I}(x, y) \\ \hat{F}(u, v)=[H(u, v) F(u, v)+N(u, v)] H_{I}(u, v) \\ \text { 设: } \quad H_{I}(u, v)=\frac{1}{H(u, v)} \Rightarrow \hat{F}(u, v)=F(u, v)+\frac{N(u, v)}{H(u, v)} \end{array}$

当$H(u,v)$为0或者很小时,复原图像的傅里叶变换趋近于正无穷,噪声完全淹没图像

解决退化函数为0或者非常小的方法:限制滤波的频率,使其接近原点

维纳滤波/最小均方误差滤波

维纳滤波恢复正是在假定图像信号可以近似看作平稳随机过程的前提下,按照使原图像$f(x,y)$和恢复后的图像$\hat{f}(x,y)$之间的均方误差达到最小的准则,来实现图像恢复,如下:

$e^{2}=\min exp\left\{[f(x, y)-\hat{f}(x, y)]^{2}\right\}$

满足这一要求的转移函数为:

$H_{w}(u, v)=\frac{H^{*}(u, v)}{|H(u, v)|^{2}+\frac{S_{n}(u, v)}{S_{f}(u, v)}}$

其中,$H^{*}(u, v)$是退化函数的复共轭函数,$S_n$是噪声图像功率谱,$S_f$是原始图像功率谱

推广到最小均方误差滤波器:

$\hat{F}(u, v)=\left[\frac{1}{H(u, v)} \times \frac{|H(u, v)|^{2}}{|H(u, v)|^{2}+s\left[S_{n}(u, v) / S_{f}(u, v)\right]}\right] G(u, v)$
  • 如果 $s = 1$,方括号内的项就是维纳滤波器
  • 如果s是变量,此时该滤波器被称为参数维纳滤波器
  • 当没有噪声,$S_n(u,v) = 0$时,维纳滤波器退化成反向滤波器中的理想滤波器
有约束还原法
最大平滑复原

准则:以函数平滑为基础

  1. 使得函数的二阶导数为最小
  2. 用内积来考察函数的平滑性

 

运动模糊图像的复原

根据先验知识(退化的原因为已知)
大气湍流造成的传递函数
$H(u, v)=\exp \left[-c\left(u^{2}+v^{2}\right)^{5 / 6}\right]$

c是与湍流性质有关的常数

光学系统散焦的传递函数
$ H(u, v)=J_{1}(\pi \mathrm{~d} \rho) / \pi \mathrm{d} \rho \\ $

此处$\rho=\sqrt{u^{2}+v^{2}} $,d是光学系统散焦点扩散函数的直径

$J_1()$是第一类一阶贝塞尔函数

$ J_{1}(Z)=\frac{Z}{2} \sum_{k=0}^{\infty} \frac{(-1)^{k} Z^{2 k}}{2^{2 k} \cdot k(k+1)} $

当光学系统散焦时,点光源的像将变成圆盘。从公式可以看出,散焦系统的传递函数在以原点为中心,d为半径处存在零点,形成一些同心的暗环,由散焦图像的频谱上估计出这些同心圆的半径,可以得到$H(u,v)$

匀速直线运动模糊下的传递函数

相机与景物之间相对运动造成图像降质

设相机不动,对象运动,运动分量x,y分别为$x_0(t),y_0(t)$,相机快门速度是理想的,快门开启时间(曝光时间为$T_0$, 这里的模糊后的图像值为:

$ g(x, y)=\int_{0}^{T} f\left[x-x_{0}(t), y-y_{0}(t)\right] \mathrm{d} t $

模糊传递函数为

$H(u,v) = \frac{sin\pi l w}{\pi l w}$

这里的l为由于运动造成的点位移的长度,$w = ucons\phi + v sin\phi$

 

根据图像中的点或者线估计(后验知识)
由功率谱估计传递函数
噪声的确定

只要噪声带宽远大于图像带宽即可作白噪声处理

 

图像的几何校正

概念:几何校正是一种几何变换,是图像的几何畸变的反运算,与几何变换类似。

步骤:空间变换,灰度插值

几何基准图像的坐标系统用$(x,y)$来表示,需要校正的图像的坐标系统用 $(x^{‘},y^{‘})$表示,两个坐标系统之间的关系用解析式表示:

$\begin{array}{l} x^{\prime}=h_{1}(x, y) \\ y^{\prime}=h_{2}(x, y) \end{array}$

通常可以用多项式表示

$\begin{aligned} x^{\prime} & =\sum_{i=0}^{N-1} \sum_{j=0}^{N-1} a_{i j} x^{i} y^{j} \\ y^{\prime} & =\sum_{i=0}^{N-1} \sum_{j=0}^{N-1} b_{i j} x^{i} y^{j} \end{aligned}$
空间变换

对于空间变换,通常可以用线性畸变来近似较小的几何畸变

$\begin{array}{l} x^{\prime}=a_{0}+a_{1} x+a_{2} y \\ y^{\prime}=b_{0}+b_{1} x+b_{2} y \end{array}$

也可以用更精确一些的二次型来近似

对于线性畸变,可以在基准图上找出三个点,在畸变图上也找出对应的三个点

联立解出上面的6个系数

二次畸变方程与系数量更多

灰度插值

由输出图像坐标反算出输入图像坐标时,若该坐标并非整数,需要进行灰度再采样

有以下几种方法:

  • 最邻近插值:最简单,但会有块状效应
  • 双线性插值:2*2邻域采样点的平均值
  • 双三次插值:4*4邻域,计算函数为三次函数,效果最好,计算量最大

 

图像复原的应用

图像复原的空间滤波器(只存在噪声)
  • 均值滤波器(可见图像增强笔记)

  • 顺序统计滤波器(可见图像增强笔记)

  • 自适应滤波器

    行为变化基于由mxn矩形窗口定义的区域$S_{xy}$内的图像统计特性

    与前述滤波器相比,性能更优,但也增加了算法复杂度

    包括自适应局部噪声消除滤波器和自适应中值滤波器

自适应局部噪声消除滤波器

滤波器响应基于以下4个量:

  1. $g(x,y)$,表示噪声图像在点$(x,y)$上的值
  2. $\sigma_{\eta}^{2}$,$g(x,y)$的噪声方差
  3. $m_L$,在$S_{xy}$上像素点的局部均值
  4. $\sigma_{L}^{2}$,在$S_{xy}$上像素点的局部方差

有:

$\hat{f}(x, y)=g(x, y)-\frac{\sigma_{\eta}^{2}}{\sigma_{L}^{2}}\left[g(x, y)-m_{L}\right]$

唯一需要知道或者估计的未知量是噪声方差$\sigma_{\eta}^{2}$,其他参数可以从$S_{xy}$中的像素计算出来

自适应中值滤波器

两个进程,是推理窗口扩大的过程

图像复原的频率域滤波器
带通滤波器
带阻滤波器
陷波滤波器

理想滤波器 & 巴特沃斯滤波器 & 高斯滤波器,同图像增强章节

 

小结

图像增强与图像复原有交叉部分

图像增强主要是主观过程,而图像复原主要是客观过程

 

 

 

Ch5 彩色图像处理

彩色图像处理可以分为:

全彩色处理:数码相机,彩色扫描仪

伪彩色处理:对不同灰度或灰度范围赋予不同的颜色

 

彩色空间

——也称为彩色模型或者彩色系统

——example: RGB \ CMY & CMYK \ HSI \ YIQ \ YUV \ YCbCr

  • RGB

    CCD或者CMOS技术直接感知RGB三个分量(本身光电传感器无法识别颜色,增加滤光片之后可以分辨)

  • CMY & CMYK

    CMY(青色,品红,黄)CMYK(青、品红、黄、黑)

    大多数在纸上沉积彩色颜料的设备,比如彩色打印机和复印机、印刷设备

    打印中的主要颜色是黑色,等量的CMY原色可以产生黑色,但不纯

  • HSI

    HSI(色调,饱和度,亮度)

    I分量与图像的彩色信息无关

    H和S分量与人感受颜色的方式是紧密相连的

    广泛用于计算机视觉、图像检索和视频检索

  • YIQ & YUV

    Y指亮度,即灰度值

    I和Q指色调,描述色彩及饱和度,U和V也指色调,与前者不同

    用于彩色电视广播,YIQ被北美的电视系统所采用,YUV被欧洲的电视系统所采用

    Y分量可提供黑白电视机的所有影像信息

  • YCbCr

    Y指亮度

    Cb和Cr由U和V调整得到

    JPEG采用的彩色空间

 

彩色空间的转换(RGB与其他)

CMY

将所有值都归一化之后:

$ \left[\begin{array}{l} C \\ M \\ Y \end{array}\right]=\left[\begin{array}{l} 1 \\ 1 \\ 1 \end{array}\right]-\left[\begin{array}{l} R \\ G \\ B \end{array}\right] $

RGB->HSI

$ \begin{array}{l} H=\left\{\begin{array}{ll} \theta & B \leq G \\ 360-\theta & B>G \end{array}\right. \\ \theta=\arccos \left\{\frac{\frac{1}{2}[(R-G)+(R-B)]}{\left[(R-G)^{2}+(R-G)(G-B)\right]^{\frac{1}{2}}}\right\} \\ S=1-\frac{3}{(R+G+B)}[\min (R, G, B)] \\ I=\frac{1}{3}(R+G+B) \end{array}$

HSI->RGB

$\begin{array}{l}
0^{0} \leq H<120^{\circ} \\
R=I\left[1+\frac{S \cos H}{\cos \left(60^{\circ}-H\right)}\right] \quad G=1-(R+B) \quad B=I(1-s)
\end{array}$

$\begin{array}{l}
120^{0} \leq H<240^{\circ} \\
G=I\left[1+\frac{S \cos H}{\cos \left(60^{\circ}-H\right)}\right] \quad B=1-(R+G) \quad R=I(1-s)
\end{array}$

$\begin{array}{l}
240^{0} \leq H<360^{\circ} \\
B=I\left[1+\frac{S \cos H}{\cos \left(60^{\circ}-H\right)}\right] \quad R=1-(G+B) \quad G=I(1-s)
\end{array}$

其他

需要数值矩阵

 

伪彩色图像处理

思想:根据一定的准则对灰度值赋值以彩色的处理

为什么需要:人类可以辨别上千种颜色和强度,但只能辨别二十几种灰度,因此需要一种能够帮助人类观察与解释灰度图像的技术

如何:强度分层技术 & 灰度级到彩色转换技术

强度分层技术

简单来说就是对图像灰度分层切割之后分配彩色值

灰度级到彩色的转换

对任何输入像素的灰度级执行3个独立变换

3个变换结果分别送入彩色监视器的红绿蓝三个通道,产生一幅合成图像

应用:X光扫描行李箱

 

全彩色图像处理

分为两大类:

  1. 分别处理每一个分量的图像后合成彩色图像
  2. 直接对彩色图像处理:3个颜色分量表示像素向量

 

彩色变换

彩色变换函数:

$ g(x, y)=T[f(x, y)]\\ f(x, y) 是彩色输入图像 \\ g(x, y) 是变换或处理过的彩色输出图像 \\T 是在空间邻域 (x, y) 上对 f 的操作 $

对于某一个点处彩色分量的变量:

$ s_{i}=T_{i}\left(r_{1}, r_{2}, \ldots, r_{n}\right) \quad i=1,2, \ldots, n\\ r_{i} 和 S_{i} 是 f(x, y) 和 g(x, y) 在任何点处彩色分量的变量\\ \left\{T_{1}, T_{2}, \ldots T_{n}\right\} 是一个对 r_{i} 操作产生 s_{i} 的变换或彩色映射函数集$

补色:在彩色环上,与一种色调直接相对立的另一种色调称为补色

色调校正:实验性地调整图像亮度和对比度

彩色平衡:

偏色:

采样过程中,由于设备、环境的原因会造成图象的三个颜色分量不同的变换关系,使图象中所有物体的颜色偏离了其原有的真实色彩,这种现象被称为偏色。

如何检查彩色图像的偏色问题:即检查在现实种应该是灰色的物体,在图像中是否是灰色

色彩平衡算法:需要选取灰色区域,按某一个RGB分量作为线性校正的基准

 

彩色图像平滑和尖锐化

同灰度图像,有空间域滤波与频率微分,只是输入通道换成了对应彩色空间的n个分量

彩色空间分割:

HSI:可用直方图分割

RGB:可用不同像素的颜色向量与分割样本的颜色向量之间的欧氏距离为判据

 

 

 

Ch6 形态学图像处理

基础知识

形态学:是生物学中研究动物和植物结构的一个分支。

数学形态学(图像代数):以形态为基础对图像进行分析的数学工具。

形态学图像处理的应用:可以简化图像数据,保持它们基本的形状特性,并除去不相干的结构。

思想:用具有一定形态的结构元素,去度量和提取图像中的对应形状,以达到对图像分析和识别的目的

发展:初期的数学形态学方法仅可以应用于二值图像,所以需要将灰度图像先进行二值化。后来灰度形态学得到发展,使得数学形态学方法不仅可以用于二值图像,也可以应用于各种灰度与彩色图像。

 

二值形态学中的运算对象是集合,但实际运算中当涉及两个集合时并不把他们看作是互相对等的,一般设A为图像集合,B为结构元素,数学形态学运算是用B对A进行操作。

结构元素本身实际上也是一个图像集合。对每个结构元素,先要指定一个原点,它是结构元素参与形态学运算的参考点。注意原点可以包含在结构元素中,也可以不包含在结构元素中(即原点并不一定要属于结构元素),但两种情况下的运算结果常不相同 。

集合论中的基本概念:并,交,补,差

有公式:

  1. 集合A的平移,平移到z(z1,z2)

    $(A)_{z}=\{c \mid c=a+z, a \in A\}$
  1. B的反射:关于结构元素的原点

    $\hat{B}=\{w \mid w=-b, b \in B\}$

示意图如下:

 

二值图像的基本逻辑运算

 

膨胀与腐蚀

膨胀与腐蚀是形态学算法的基础

膨胀:使得图像扩大

腐蚀:使得图像缩小

膨胀:

A被B膨胀的定义:

$A \oplus B=\left\{z \mid(\hat{B})_{z} \cap A \neq \varnothing\right\}$

A为图像元素,B为结构元素,上述式子表明,B的反射进行平移后与A的交集不为空

反射的目的:确保膨胀的空间对称性

算法实现过程:
  • 对B进行反射,反射后B的原点移动至集合A的某一点
  • 将反射后B的坐标与集合A中该店坐标相加,得到膨胀运算结果
  • 对集合A中所有元素重复上述过程

example:

应用:将裂缝桥接起来

 

腐蚀

B对A的腐蚀是一个用z平移的B包含在A中所有的点z的集合,可以理解为,B完全包含在A中时,B的原点位置的集合

定义:

$A \ominus B=\left\{z \mid(B)_{z} \subseteq A\right\}$

膨胀和腐蚀这两种运算是紧密联系在一起的,一个运算对图像目标的操作相当于另一个运算对图像背景的操作

example:

应用:在数学形态学运算中的作用是消除物体边界点,可以把小于结构元素的物体(毛刺、小突起)去除,因此选取不同大小的结构元素,就可以在原始图像中去除不同大小的物体,达到筛选的目的

 

开操作和闭操作

开操作:使图像的轮廓变得光滑,断开狭窄的连接和消除细的突出物

$A \circ B=(A \ominus B) \oplus B$

先用B对A腐蚀,然后用B对结果进行膨胀

 

闭操作:同样使得图像的轮廓变得光滑,但与开操作相反,能消除狭窄的间断与长细的鸿沟,消除小的空洞,并填补轮廓线中的裂痕

$A \bullet B=(A \oplus B) \ominus B$

先用B对A膨胀,然后用B对结果进行腐蚀

 

击中或击不中变换

一般来说,一个物体的结构可以由物体内部各种成分之间的关系来确定。为了研究物体(在这里指图像)的结构,可以逐个地利用其各种成分 (例如各种结构元素)对其进行检验,判定哪些成分包括在图像内,哪些在图像外,从而最终确定图像的结构。

设有两幅图像A & B,如果A与B的交集不为空集,那么称B击中A,否则称B击不中A

 

一些基本的形态学算法

边界提取
$\beta(A)=A-(A \ominus B)$

先用B对A腐蚀,然后用A减去腐蚀的结果

使用3x3的结构元素提取的边界宽度为1像素

区域填充

使用迭代法进行区域填充

$X_{k}=\left(X_{k-1} \oplus B\right) \cap A^{c}$

如下图所示:$X_7 = X_8$,当$X_k = X_{k-1}$时,算法在迭代的第k步结束

*如果公式不加与A的补集的交集,则结果将会无限膨胀

凸壳 细化 粗化 骨架 裁剪等
二值形态学的五个基本结构元素(B)

 

灰度级形态学

膨胀 & 腐蚀

膨胀:

$(f \oplus b)(s, t)=\max \left\{f(s-x, t-y)+b(x, y)(s-x),(t-y) \in D_{f} ;(x, y) \in D_{b}\right\} $

亮特征变强,暗特征变弱

腐蚀:

$(f \ominus b)(s, t)=\min \left\{f(s+x, t+y)-b(x, y)(s+x),(t+y) \in D_{f} ;(x, y) \in D_{b}\right\} $

亮特征变弱,暗特征变强

开操作与闭操作

与二值化图像操作的构成相同

 

灰度级形态学处理的一些应用
形态学平滑处理

先开操作,再闭操作:消除/减弱人为的亮和暗的细节

形态学图像梯度(边缘增强)

类似于微分 or 梯度操作

膨胀粗化图像中的目标区域,腐蚀细化它们,两者之差强调了区域间的边界

$g=(f \oplus b)-(f \ominus b)$
Top-hat变换

可增强阴影细节

$h=f-(f \circ b)$
粒度测定
  • 选择各类合适半径尺寸的圆盘结构元对图像进行开操作

  • 对于每一次开操作,计算像素值的和

  • 表面区域是圆盘形结构元半径的函数

    *为什么不直接腐蚀:单纯腐蚀会导致颗粒尺寸被低估,开操作通过结构元素与颗粒的匹配度筛选尺寸,结果更接近真实分布

纹理分割
  • 对原图执行闭操作删除小圆点
  • 执行开操作删除大圆点之间的亮间隔,得到分割边界

 

 

 

Ch7 图像分割

基础知识

图像分割是指把图像分成各个具有相应特性的区域并提取出感兴趣目标的技术和过程

特性包括:灰度、颜色、纹理等,目标可以对应单个区域,也可以对应多个区域

分类:
  • 按幅度不同分割:幅度分割
  • 按边缘不同分割:边缘检测
  • 按形状不同分割:区域检测

对灰度图像的分割常可以基于像素灰度值的两个性质: 不连续性相似性。区域内部的像素一般具有灰度相似性,而在区域之间的边界上一般具有灰度不连续性。不连续性->基于边界的分割;相似性->基于区域的分割

 

间断检测

点检测

使用模板

$R = w_1z_1+w_2z_2+w_3z_3+...+w_9z_9 = \sum_{i=1}^{9}w_iz_i$

人为设置阈值,且如果模板的响应为0,则表示在灰度级为常数的区域

线检测

有4个线检测模板,分别在水平,+45°,垂直以及-45°方向上有最大响应

边缘检测
  • 边缘是一组相连的像素集合,这些像素位于两个区域的边界上。灰度边缘是灰度值不连续的结果。
  • 一阶导数与二阶导数在识别图像的边缘中具有重要的作用

数字边缘的模型有:理想数字边缘模型 & 斜坡数字边缘模型。理想数字边缘模型是一种阶跃型的信号,而斜坡数字边缘模型与边缘的模糊程度成比例关系。

如上图所示,以斜坡数字边缘模型为例,可对其求导,在边缘斜面上,一阶导数为正,其他区域为0;在边缘与黑色交界处,二阶导数为正,在边缘与亮色交界处,二阶导数为负;沿着斜坡和灰度为常数的区域为0。

因此有:

  • 一阶导数可以用于检测图像中的一个点是否在边缘上
  • 二阶导数的符号可以判断一个边缘像素是在边缘的亮侧还是在边缘的暗侧
  • 一阶导数使用梯度算子,二阶导数使用拉普拉斯算子

*微弱的噪声对导数的影像非常严重,所以预处理要先降噪/平滑处理

边缘检测算子

  • 梯度算子 or 差分算子
  • Laplace算子
  • Canny算子

 

梯度算子

$\nabla f(x, y) = G[f(x,y)] = [\frac{\partial f}{\partial x} \frac{\partial f}{\partial y}]^{T}$

梯度的模:$|\nabla f(x, y)|=\sqrt{\left(\frac{\partial f}{\partial x}\right)^{2}+\left(\frac{\partial f}{\partial y}\right)^{2}}$

方向角:$\phi(x, y)=\arctan \left(G_{x} / G_{y}\right)$

离散化后为:$\nabla f(x, y)=|f(x, y)-f(x+1, y+1)|+|f(x+1, y)-f(x, y+1)|$

在空间域图像增强的基础上增加梯度算子Kirsch

由8个方向模板组成,每个模板的值有不同的趋向性,将8个模板分别与图像相乘,选取最大的一个值,作为中央像素的边缘强度。使得梯度算子一定程度上具有了方向性

 

拉普拉斯算子

公式与模板:

$ \begin{array}{l} \nabla^{2} f(x, y)=\frac{\partial^{2} f(x, y)}{\partial x^{2}}+\frac{\partial^{2} f(x, y)}{\partial y^{2}} \\ =f(x+1, y)+f(x-1, y)+f(x, y-1)+4 f(x, y) \\\\ {\left[\begin{array}{ccc} 0 & -1 & 0 \\ -1 & 4 & -1 \\ 0 & -1 & 0 \end{array}\right] \quad\left[\begin{array}{ccc} -1 & -1 & -1 \\ -1 & 8 & -1 \\ -1 & -1 & -1 \end{array}\right] \quad\left[\begin{array}{ccc} 1 & -2 & 1 \\ -2 & 4 & -2 \\ 1 & -2 & 1 \end{array}\right] } \end{array} $

推广:

为减少噪声对拉普拉斯算子的影响,在其基础上实现的马尔算子,它先用一个2D的高斯平滑模板与源图像进行卷积,之后再进行拉普拉斯算子套用。

 

最优边缘检测算法——Canny算子

好的图像边缘检测需要满足下面两个条件:

  1. 能有效地抑制噪声

  2. 能精确地定位到边缘的位置

    类似于马尔算子,Canny算子也属于先平滑后求导的方法

算法步骤

  • 用高斯滤波器平滑图像:
$G(x, y)=f(x, y) * H(x, y)$
  • 用一阶偏导的有限差分来计算梯度的幅值和方向
$\begin{array}{l} H_{1}=\left|\begin{array}{cc} -1 & -1 \\ 1 & 1 \end{array}\right| \quad H_{2}=\left|\begin{array}{ll} 1 & -1 \\ 1 & -1 \end{array}\right| \\ \varphi_{1}(m, n)=f(m, n) * H_{1}(m, n) \\ \varphi_{2}(m, n)=f(m, n) * H_{2}(m, n) \\ \varphi(m, n)=\sqrt{\varphi_{1}^{2}(m, n)+\varphi_{2}^{2}(m, n)} \\ \theta_{\varphi}(m, n)=\tan ^{-1} \frac{\varphi_{2}(m, n)}{\varphi_{1}(m, n)} \end{array}$
  • 非极大值抑制——细化边缘

利用梯度的方向,保留局部梯度最大的点

$\xi[\mathbf{i}, \mathbf{j}]=\operatorname{Sector}(\theta[\mathbf{i}, \mathbf{j}])$

在一个3x3的邻域中,4种类型的边缘方向的边缘法线有一定的角度范围,在每一点上,邻域的中心像素M与沿着梯度线的两个像素相比。如果M的梯度值不比沿梯度线的两个相邻像素梯度值大,则令M = 0.

$\mathbf{N}[\mathbf{i}, \mathbf{j}]=\mathbf{N M S}(\mathbf{M}[\mathbf{i}, \mathbf{j}], \xi[\mathbf{i}, \mathbf{j}])$
  • 阈值化

对N使用一个阈值,将低于阈值的所有值赋0,解决方法为双阈值算法

 

边缘连接

在边缘检测后,仅仅得到位置在边缘上的像素点,实际上得到的这些像素点由于各种原因很少能完整地组成一条边缘,因此在使用边缘检测算法之后,需要使用连接过程将边缘像素组合成有意义的边缘。

局部处理

如何确定边缘像素的相似性

对于两个边缘像素,若以下两个值:

  • 边缘像素梯度算子的响应强度

  • 边缘像素梯度算子的方向

在自己设定的阈值范围内,则可以将两点连接起来

轮廓跟踪和图搜索
  • 确定作为搜索起点的边缘点
  • 确定和采取一种合适的数据结构和搜索机理,在已经发现的轮廓点基础上确定新的轮廓点
  • 确定搜索终结的准则或者终止条件,满足条件时停止进程,结束搜索

个人认为算是一种路径搜索算法,边界点和边界段可以用图结构表示,通过在图中进行搜索对应最小代价的通道也可以找到闭合边界。

边缘元素是2个互为4-近邻的像素的边缘,每个由像素p和q确定的边缘元素对应一个代价函数:

$ c(p,q) = H- [f(p)-f(q)] $

其中H为图像中的最大灰度值,代价函数的取值与像素之间的灰度差成反比,需要找寻的边界时代价最小的路径

example:

哈夫变换

利用图像的全局特性直接检测目标轮廓

提出:从像素之间的整体关系出发,检测目标边界

把在图像空间里的直线检测问题转换为参数空间里对点的检测问题,通过在参数空间里进行简单的累加统计完成检测任务。

涉及到坐标系变换与解析,可看其他资料进一步了解并理解推导。

 

阈值分割

字面理解,阈值分割方法的关键是选取合适的阈值

有以下几种方法:

  • 全局阈值
  • 局部阈值
  • 动态/自适应阈值
全局阈值

自动获取阈值T的方法:

  • 选取一个T的初始估计值,一般取图像的平均灰度
  • 用T分割图像,G1为所有灰度值大于T的,剩余为G2
  • 对G1和G2中所有像素计算平均灰度值g1和g2
  • 计算新的阈值$T_1 = \frac{1}{2}(g_1+g_2)$
  • 重复步骤2~4,直到迭代得到的T值小于等于T初始值
基本自适应阈值

单一全局阈值存在的问题:不均匀亮度图像无法有效分割

解决方法:将图像进一步细分为子图像,并对不同的子图像使用不同的阈值处理

问题:如何将图像进行细分,且如何为得到的子图像估计阈值

对于仅包含2个主要灰度级的区域,令z表示灰度级值,则两个灰度区域的直方图可以看作其概率密度函数的估计p(z),如果p(z)已知,则它能够确定一个最有阈值,将图像分割成两个可以区分的部分,下式中P1是属于目标对象的概率,P2是属于背景像素的概率,有$P_1+P_2 = 1$

最优阈值:

$T=\frac{\mu_{1}+\mu_{2}}{2}+\frac{\sigma^{2}}{\mu_{1}-\mu_{2}} \ln \left(\frac{P_{2}}{P_{1}}\right)$

数学推导略复杂,遂省略

通过边界特性选择阈值

基本思想,将直方图修正为较为直观的形态:波峰高且窄,对称,且被很深的波谷分开。

修正方法:用微分算子处理图像,使得图像只剩下边界中心两边的值,因此直方图也只剩下边缘的像素。边缘上的点在区域内和区域外的概率相等,因此可以增加波峰的对称性

 

聚类分割

机器学习常见算法

 

区域分割

概念:将整幅图像区域划分为n个子区域,满足完备性、连通性、独立性、互斥性

区域生长法

一种从单个像素出发,逐渐合并以形成所需分割区域的技术

核心:相似条件的确定

生长准则:

基于区域灰度差(字面意思)
基于区域内灰度分布统计性质
  • 把像素分成互不重叠的小区域;
  • 比较邻接区域的累积灰度直方图,根据灰度分布的相似性进行区域合并;
  • 设定终止准则,通过反复进行上一个步骤中的操作将各个区域依次合并直到满足终止准则
基于区域形状

方法1:把图像分割成灰度固定的区域,设两相邻区域的周长为P1和P2,把两区域共同边界线两侧灰度差小于给定值的那部分设为L,如果有:(T1为预定的阈值)

$\frac{L}{\min \left\{P_{1}, P_{2}\right\}}>T_{1} $

则合并两区域

方法2:把图像分割成灰度固定的区域,设两邻接区域的共同边界长度为B,把两区域共同边界线两侧灰度差小于给定值的那部分长度设为L,如果有:(T2为预定阈值)

$\frac{L}{B}>T_{2} $

则合并两个区域

第一种方法是合并两邻接区域的共同边界中对比度较低部分占整个区域边界份额较大的区域,

第二种方法则是合并两邻接区域的共同边界中对比度较低部分比较多的区域。

 

分裂合并

思想:先把图像分成任意大小且不重叠的区域,然后根据准则合并或者分裂这些区域,迭代直到实现分割

 

基于形态学分水岭的分割

又称为watershed变换,是一种借鉴形态学理论的分割方法。它利用图像区域特性来分割图像,将边缘检测与区域生长的优点结合起来,能够得到单像素的、连通的、封闭的且位置准确的轮廓

把图像看成3-D地形的表示,即2-D的地基(对应图像空间)加上第3维的高度(对应图像灰度)

 

 

《数字图像处理》这本书看了七七八八,有一些内容很有趣,知道opencv库的一些底层原理还是有必要的。其中有一些内容,例如:图像理解、数字图像编码技术、图像模式分类等,没有再继续看。希望可以在实践中巩固这些知识。