图像处理与分析 --(5)图像增强变换

增强处理的方法:大致可分为三大类

  1. 点变换:只与本身像素点的值有关,做灰度值变换,与空间邻点值无关。
  2. 空间域处理:往往作邻域加权和处理
    ・需考虑邻域大小、形状
    ・点变换可看作处理窗为 1×1 的空间域处理
  3. 频域处理

一、灰度变换

1. 直方图

最常用的像素统计特性描述方式

2. 灰度增强

灰度增强就是按照一定变换方式逐点地改变原来图像中每个像素的灰度值 $r’=T (t)$。
通过改变像素灰度值获得直方图形状的改变。
(1) 灰度线性变换
(2) 灰度非线性变换
离散图像

二、空间域滤波 — 空间域图像锐化

1. 边缘检测

图像中的边缘一般分为两种:屋脊型边缘和阶跃型边缘。
在实际应用中,一般只考虑阶跃边缘,
因为只要采样足够或者说窗口足够小,屋脊型边缘也可以看做是阶跃边缘。
对于阶跃边缘可以使用一阶导数的极值来判断边缘。
对于阶跃边缘还可以使用二阶导数的过零点 (zero-acrossing) 判定。

斑点检测 (LoG,DoG) [上] 之边缘检测回顾

2.laplace 算子

3.roberts 算子

对角线

4.sobel 算子

各向同性 sobel 算子:考虑邻居点的权重(斜对角比较远,权重比较小)

5.Prewitt&Kirsch 算子

不只要区分方向,还要看边缘是亮变到暗,还是暗变到亮

6.LoG (高斯拉普拉斯算子) 和 DoG

LoG 边缘检测算子是 David Courtnay Marr 和 Ellen Hildreth (1980) 共同提出的。因此,也称为边缘检测算法或 Marr & Hildreth 算子。该算法首先对图像做高斯滤波,然后再求其拉普拉斯 (Laplacian) 二阶导数。即图像与 Laplacian of the Gaussian function 进行滤波运算。最后,通过检测滤波结果的零交叉 (Zero crossings) 可以获得图像或物体的边缘。因而,也被业界简称为 Laplacian-of-Gaussian (LoG) 算子。

step
a. 平滑滤波器采用高斯滤波器
b. 边缘增强用二阶导数(二维拉普拉斯函数)
c. 边缘检测判据是二阶导数零点交叉点
d. 采用线性插值的方法估计边缘的位置

(1) LoG
在进行 Laplacian 操作之前通常需要先用高斯平滑滤波器对图像进行平滑处理,以降低 Laplacian 操作对于噪声的敏感性。事实上由于卷积操作具有结合律,因此我们可以先将高斯平滑滤波器与拉普拉斯滤波器进行卷积,然后利用得到的混合滤波器去对图片进行卷积以得到所需的结果。采用这个做法主要有以下两个优点:
a. 由于高斯和拉普拉斯核通常都比图像小得多,所以这种方法通常只需要很少的算术运算。
b. LoG (Laplacian of Gaussian) 内核的参数可以预先计算,因此在运行时只需要对图像执行一遍的卷积即可。
在离散的网格上,简单的拉普拉斯算子可以看成是一种高斯函数很窄的 LoG 函数。
(2) DoG(为了符合人眼视觉)
DoG 算子和 LoG 算子具有类似的波形,仅仅是幅度不同,不影响极值点的检测,而 DoG 算子的计算复杂度显然低于 LoG,因此一般使用 DoG 代替 LoG 算子

高斯拉普拉斯算子(Laplacian of Gaussian, LoG)
DoG 和 LoG 算子
LoG 算子与 DoG 算子相似性数学推导

7.Canny 边缘检测过程

根据对信噪比与定位乘积进行测度,得到最优化逼近算子

(1) step1: 用高斯滤波器平滑图像(去噪)

图像处理基础 (4):高斯滤波器详解

(2) step2: 用一阶偏导的有限差分来计算梯度的幅值 和方向;(边缘处梯度幅度大,有一定方向)

对于平滑后的图像,首先在水平和垂直方向采用 Sobel kernel 计算得到水平方向 $g_x (m,n)$ 和垂直方向 $g_y (m,n)$
综合梯度通过以下公式计算梯度值和梯度方向:
$G (m,n)=\sqrt {g_x (m.n)^2 + g_y (m,n)^2}$
$\displaystyle \theta = arctan (\frac {g_y (m,n)}{g_x (m.n)})$

(3) step3: 对梯度幅值进行非极大值抑制 (NMS)(一条边缘只有一次检测)


要进行非极大值抑制,就首先要确定像素点 C 的灰度值在其 8 值邻域内是否为最大。图 1 中蓝色的线条方向为 C 点的梯度方向,这样就可以确定其局部的最大值肯定分布在这条线上,也即出了 C 点外,梯度方向的交点 dTmp1 和 dTmp2 这两个点的值也可能会是局部最大值。因此,判断 C 点灰度与这两个点灰度大小即可判断 C 点是否为其邻域内的局部最大灰度点。如果经过判断,C 点灰度值小于这两个点中的任一个,那就说明 C 点不是局部极大值,那么则可以排除 C 点为边缘。这就是非极大值抑制的工作原理。

Canny 算子中的非极大值抑制与我们在角点检测等场景中所说的非极大值抑制有点细微的差别。Canny 算子中的非极大值抑制是沿着梯度方向进行的,即是否为梯度方向上的极值点;而在角点检测等场景下说的非极大值抑制,则是检测中心点处的值是否是某一个邻域内的最大值,是,则保留,否则去除,这种情况下的非极大值抑制比较简单。

Canny 算子中的非极大值抑制分析
Canny 边缘检测算法原理及其 VC 实现详解 (一)
Canny 边缘检测算法原理及其 VC 实现详解 (二)

(4) step4: 用双阈值算法检测和连接边缘(与强边缘连通的弱边缘需要一并检测)

它设置两个阀值(threshold),分别为 maxVal 和 minVal。其中大于 maxVal 的都被检测为边缘,而低于 minval 的都被检测为非边缘。对于中间的像素点,如果与确定为边缘的像素点邻接,则判定为边缘;否则为非边缘。
Q:阈值怎么选取?

低通、高通、带通滤波器原理详述
图像处理基本概念 —— 卷积,滤波,平滑

三、空间域滤波 — 空间域图像平滑

1. 线性滤波器 (均值滤波器)

(1) 邻域平均法
(2) 带门限的邻域平均法
在 $f$ 和 $f_$ 差别小于门限 T 的时候
(3) 半邻域平均法

2. 非线性滤波器

(1) 中值滤波
(2) 众值滤波

四、频域滤波

[数字图像处理] 频域滤波 (1)— 基础与低通滤波器
[数字图像处理] 频域滤波 (2)— 高通滤波器,带阻滤波器与陷波滤波器

五、中值滤波与同态滤波

1. 中值滤波

2. 同态滤波

六、色彩增强

图像增强 — 彩色增强技术
人的肉眼可分辨的灰度级在十几到二十几之间,却能区分几千种不同色度、不同亮度的色彩。可以说人眼对彩色的分辨力可以达到灰度分辨力的百倍以上。

1. 伪色彩增强:把灰度图像处理成伪彩色图像

(1) 空域增强
(2) 頻域增强

2. 假色彩增强:把自然彩色图像或遥感多光谱图像处理成假彩色图像

把一种多通道图映射到另一个多通道图

七、实作 - canny 边缘提取

  1. 选取一张彩色照片 / 图片,利用 C、C++或者 MATLAB 对其进行 Canny 边缘提取,并进行简要分析。
  2. 试着改变阈值或者根据图像内容自适应选取阈值,分析不同阈值条件下获得的边缘图像。
  3. 思考:如果仅存在彩色边缘,不存在灰度变化的边缘,如何处理?
  4. 强化:如何基于提取的边缘图做风格化处理?

八、课后拓展:

(1) 图像锐化 — 基于相位一致性的边缘检测(好处:无量纲、多尺度、去噪)

【理解】经典角点检测算法 —Harris 角点
角点检测 (2) - harris 算子 - 理论与 Python 代码
Gabor 滤波器原理
《phase congruency detects corners and edges》低层次 (基于像素之间的) 特征提取概述
相位一致性是指在图像的频率域中,边缘相似的特征在同一阶段出现的频率较高

低层次 (基于像素之间的) 特征提取概述

(2) 图像平滑 — 双边滤波


OpenCV 学习9:双边滤波 bilateralFilter
双边滤波(Bilateral Filter)详解

传统基本图像处理方法:图像增强、图像分割、图像配准等