图像算法

1. 概述

本文总结一些图像算法,有些可能介绍不太详细(原理比较简单),有些可能会在另外的文章中介绍。

2. 详述

2.1. 锐化

TODO

2.2. 滤波

2.2.1. Box Filter

盒式滤波器(Box Filter)的主要功能是:在给定的滑动窗口大小下,对每个窗口内的像素值进行快速相加求和。

2.2.2. Gaussian Filter

高斯滤波器(Gaussian Filter)是一种线性滤波器,能够有效的抑制噪声,平滑图像。其作用原理和均值滤波器类似,都是取滤波器窗口内的像素的均值作为输出。其窗口模板的系数和均值滤波器不同,均值滤波器的模板系数都是相同的为1;而高斯滤波器的模板系数,则随着距离模板中心的增大而系数减小。所以,高斯滤波器相比于均值滤波器对图像个模糊程度较小。

2.2.3. Sobel Filter

索贝尔滤波器(Sobel Filter)常用来提取灰度图像的水平边缘(水平特征)和竖直边缘(竖直特征)。

2.2.4. Scharr Filter

Scharr滤波器与Sobel滤波器原理相同,但在当滤波核大小为3时,运算与一样快,结果却更加精确。

2.2.5. Dilation Filter、Erosion Filter

  • 膨胀滤波器(Dilation Filter)形态学运算之一,可以看作是最大值滤波,它将输入的二值图像(或灰度图像)中每一个元素的值替换为以该点为中心的邻域窗口内所有元素值的最大值。原理是将滤波核最大的值作为滤波后的元素,作用是将白色区域放大。
  • 腐蚀滤波器(Erosion Filter)形态学运算之一,可以看作是最小值滤波,它将输入的二值图像(或灰度图像)中每一个元素的值替换为以该点为中心的邻域窗口内所有元素值的最小值。原理是将滤波核最小的值作为滤波后的元素,作用是将黑色区域放大。

2.2.6. Bilateral Filter

双边滤波

TODO

2.3. 角点检测算法

2.3.1. Harris 角点检测器

TODO

2.3.2. Shi-Tomasi 角点检测器

TODO

2.3.3. FAST角点检测算法

TODO

2.4. 边缘检测算法

2.4.1. Canny

TODO

2.5. 模糊(blur)算法

2.5.1. 高斯模糊(Gaussian Blur)

参考该文章

该方法本质上是一种数据平滑(data smoothing)技术,使用正态分布(高斯函数)计算模糊模板,并使用该模板与原图像做卷积运算,达到模糊图像的目的。

N维空间正态分布方程为:

其中数学公式: 是正态分布的标准差,该值越大,图像越模糊(平滑)。r为模糊半径,是指模板元素到模板中心的距离。如果二维模板大小为m*n,则模板上的元素(x,y)对应的高斯计算公式为:

在二维空间中,这个公式生成的曲面的等高线是从中心开始呈正态分布的同心圆,如图所示。

添加一张二维高斯曲面图片。

分布不为零的像素组成的卷积矩阵与原始图像做变换。每个像素的值都是周围相邻像素值的加权平均。原始像素的值有最大的高斯分布值,所以有最大的权重,相邻像素随着距离原始像素越来越远,其权重也越来越小。这样进行模糊处理比其它的均衡模糊滤波器更高地保留了边缘效果。

理论上来讲,图像中每点的分布都不为零,这也就是说每个像素的计算都需要包含整幅图像。在实际应用中,在计算高斯函数的离散近似时,在大概距离之外的像素都可以看作不起作用,这些像素的计算也就可以忽略。通常,图像处理程序只需要计算数学公式: 大小的矩阵就可以保证相关像素影响。注意:(1)矩阵中的值需要进行归一化(2)矩阵是中心对称的。

2.5.2. 分离高斯滤波

高斯函数的可分离性是指使用二维矩阵变换得到的效果也可以通过在水平方向进行一维高斯矩阵变换加上竖直方向的一维高斯矩阵变换得到。从计算的角度来看,这是一项有用的特性,因为这样只需要数学公式: $O(mMN)+O(nMN)O(mnM*N)$次计算。其中,m、n为高斯矩阵的维数,M、N为二维图像的维数。另外,两次一维的高斯卷积将消除二维高斯矩阵所产生的边缘。

2.6. 线性插值

参考该文章

2.7. 积分图

参考该文章

2.8. 色彩转换

TODO

2.9. 极值检测

2.9.1. 尺度空间极值检测

(1)背景介绍

尺度空间(scale space)思想最早是由Iijima于1962年提出的,后经witkin和Koenderink等人的推广逐渐得到关注,在计算机视觉邻域使用广泛。Tony Lindeberg指出尺度规范化的LoG(Laplacion of Gaussian)算子具有真正的尺度不变性,Lowe(SIFT算法发明者)使用高斯差分金字塔近似LoG算子,在尺度空间检测稳定的关键点。

(2)原理简介

尺度空间理论的基本思想是:在图像信息处理模型中引入一个被视为尺度的参数,通过连续变化尺度参数获得多尺度下的尺度空间表示序列,对这些序列进行尺度空间主轮廓的提取,并以该主轮廓作为一种特征向量,实现边缘、角点检测和不同分辨率上的特征提取等。
尺度空间方法将传统的单尺度图像信息处理技术纳入尺度不断变化的动态分析框架中,更容易获取图像的本质特征。尺度空间中各尺度图像的模糊程度逐渐变大,能够模拟人在距离目标由近到远时目标在视网膜上的形成过程。

尺度空间满足视觉不变性,该不变性的视觉解释如下:当我们用眼睛观察物体时,一方面当物体所处背景的光照条件变化时,视网膜感知图像的亮度水平和对比度是不同的,因此要求尺度空间算子对图像的分析不受图像的灰度水平和对比度变化的影响,即满足灰度不变性和对比度不变性。另一方面,相对于某一固定坐标系,当观察者和物体之间的相对位置变化时,视网膜所感知的图像的位置、大小、角度和形状是不同的,因此要求尺度空间算子对图像的分析和图像的位置、大小、角度以及仿射变换无关,即满足平移不变性、尺度不变性、欧几里德不变性以及仿射不变性。

(3)具体过程

一个图像的尺度空间数学公式: 定义为一个变化尺度的高斯函数数学公式: 与原图像数学公式: 的卷积,如式3.1所示:数学公式: $L(x,y,\sigma)=G(x,y,\sigma)I(x,y)$,其中``表示卷积计算,数学公式: 如公式3.2所示:数学公式: ,其中:数学公式: 是尺度空间因子,值越小表示图像被平滑的越少,相应的尺度也就越小。大尺度对应于图像的概貌特征,小尺度对应于图像的细节特征。

尺度空间在实现时使用高斯金字塔表示,高斯金字塔的构建分为两部分:

  • 对图像做不同尺度的高斯模糊
  • 对图像做降采样(隔点采样)

图像的金字塔模型是指,将原始图像不断降阶采样,得到一系列大小不一的图像,由大到小,从下到上构成的塔状模型。原图像为金字塔的第一层,每次降采样所得到的新图像为金字塔的一层(每层一张图像),每个金字塔共n层。金字塔的层数根据图像的原始大小和塔顶图像的大小共同决定,其计算公式如公式3.3所示:

为了让尺度体现其连续性,高斯金字塔在简单降采样的基础上加上了高斯滤波。将图像金字塔每层的一张图像使用不同参数做高斯模糊,使得金字塔的每层含有多张高斯模糊图像,将金字塔每层多张图像合称为一组,金字塔每层只有一组图像,组数和金字塔层数相等,每组含有多张图像。另外,降采样时,高斯金字塔上一组图像的初始图像是由前一组图像的倒数第三张图像隔点采样得到的。

2002年Mikolajczyk在详细的实验比较中发现尺度归一化的高斯拉普拉斯函数数学公式: 的极大值和极小值同其它的特征提取函数(例如:梯度,Hessian或Harris角特征)比较,能够产生最稳定的图像特征。而Lindeberg早在1994年就发现高斯差分函数(Difference of Gaussian,DOG)与尺度归一化的高斯拉普拉斯函数非常近似。其中数学公式: 和数学公式: 的关系如下推导:

其中k-1为常数,不影响极值点位置的求取。

Lowe使用更高效的高斯差分算子代替拉普拉斯算子进行极值检测,如式3.4所示:

接下来可以进行空间极值点检测,首先寻找关键点。关键点是由DOG空间的局部极值点组成的,关键点的初步探查是通过同一组内各DoG相邻两层图像之间比较完成的。为了寻找DoG函数的极值点,每一个像素点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小。

在上述尺度空间内,O(组数)、S(组内层数)和数学公式: (尺度空间坐标)的关系如式3.5所示:

其中:数学公式: 是基准层尺度,o为组的索引,s为组内层数的索引。一般建立高斯金字塔时,先将图像的尺度扩大一倍来生成第-1组,做数学公式: 的高斯模糊。如果输入图像的尺寸用双线性插值扩大一倍,那么数学公式: 。式3.4中k为组内总层数的倒数,如式3.6所示:k=2^(1/S)。构造高斯金字塔,组内每层的尺度坐标按公式3.7计算:

数学公式: ,其中:数学公式: ,不同组相同层的组内尺度坐标相同。组内下一层由前一层按数学公式: 进行高斯模糊得到。计算不同组内某一层图像的尺度时,使用公式3.8进行计算:数学公式: ,该组内尺度在方向分配和特征描述时确定采样窗口的大小。

由以上得出,式3.4可记为式3.9: