本文同时发布在我的个人博客上:https://dragon_boy.gitee.io
数字图像处理概念
一幅图像可定义为一个二维函数,
和
是空间坐标,在任何一对空间坐标
处的幅值
称为图像在该点处的强度或灰度。当
时有限的离散数值时,我们称该图像为数字图像。数字图像处理就是指借用计算机处理数字图像。数字图像由有限数量的元素组成,每个元素都有一个特定的位置和幅值,这些元素称为像素。
数字图像处理的基本步骤

视觉感知
马赫带

在不同亮度的边界,我们往往会感受到不同的亮度。,即带有毛边的亮度模式。
同时对比

感知区域的亮度并不简单地取决于其强度,随着背景变量,所观察的物体的亮度看起来变暗了一些。
错觉
顾名思义。

光和电磁波谱
这里只关注电磁波谱的可见光波段,可以分为6个主要区域:紫、蓝、绿、黄、橘黄、红。
人感受物体颜色由其反射光决定,物体吸收其它波长光的大部分能量。
没有颜色的光被称为单色光或无色光。单色光的唯一属性是它的强度。因为感知单色光的强度从黑色到灰色的变化,最后到白色,灰度级一词常用来表示单色光的强度。从黑到白的单色光的度量值范围通常称为灰度级,而单色图像常称为灰度图像。
简单的图像生成模型
当一副图像由物理过程产生时,其亮度值正比于物理源所辐射的能量,因此,一定时非零和有限的:
函数可由两个分量来表征:(1)入射到观察场景的光源照射总量;(2)场景中物体所反射的光照总量。这两个分量分别称为入射分量和反射分量,且分别表示为
和
。两个函数作为一个乘积合并为
:
其中,
和
零单色图像在任何坐标处的强度表示为
则的取值范围为
其中和
。
区间称为灰度级,实际情况下常令该区间为
,其中
为黑色,
为白色。
图像的取样和量化
为了产生一幅数字图像,我们需要把连续的感知数据(如电压波形)转化为数字形式,这种转化包含两种处理:取样和量化。
基本概念

图a是一幅连续图像,它的坐标和幅度可能都是连续的,为将其转化为数字形式,我们在坐标和幅度上都进行取样操作。对坐标值数进行数字化称为取样,对幅值数字化称为量化。
图b的一维函数是沿AB的连续图像幅度值的曲线。我们沿线段AB等距地对该函数取样,结果如图c,接着量化灰度值。我们制作一个分为多个离散区间的灰度标尺,对每一个样本的灰度值进行比较,较其的灰度值置为最接近的标尺中的灰度值,取样和量化的结构如图d。
数字图像表示
令表示一幅具有两个连续变量
和
的连续图像函数,通过取样和量化操作,可以将其转换为数字图像。假如将其取样为一个阵列
,该阵列包含M行和N列,这样,数字图像的原点的值是
(左上角),
表示第一行的第二个样本。
由一幅图像的坐标张成的实平面部分称为空间域,和
称为空间变量或空间坐标。
这里,我们将数字图像表示为矩阵形式:
矩阵中的每个元素可以成为像素。

数字化过程要求针对M、N和灰度级L做出判断。对于M和N,必须为正整数。出于存储和量化硬件的考虑,灰度级数典型地取为2的整数次幂,即
我们假设离散灰度级时等间距的,区间是内的整数。有时,由灰度值跨越的值域非正式地称为动态范围。这里,我们将图像系统的动态范围定为系统中最大可度量灰度和最小可度量灰度之比。作为一条规则,上限取决于饱和度,下限取决于噪声,同时,我们定义最高和最低灰度级间的灰度差为对比度,当有高动态范围时,则认为图像有高的对比度。
存储数字图像所需的比特数为:
时:
下表是和
取不同值是需要用来存储方形图像的比特数:

空间和灰度分辨率
直观来说,空间分辨率是图像中可辩别的最小细节的度量。在数量上,空间分辨率的度量可以表示为每单位距离线对数和每单位距离像素数。假设我们使用交替的黑白垂直线来构造一幅图形,线宽为个单位,线对的宽度就是
,每个单位距离有
个线对。广义的图像分辨率的定义是每单位距离可分辨的最大线对数量。每单位距离像素数是印刷和出版业常用的图像分辨率度量,在美国,这一度量通常使用每英寸点数(dpi)来表示。
类似地,灰度分辨率是指在灰度级中可分辨的最小变化。
图像内插
内插是在诸如放大、收缩、旋转和几何校正等任务中广泛应用的基本工具。
比如,要将一幅大小为像素的图像放大1.5倍,一种简单的放大方法是创建一个假想的
网格,它与原始图像有相同的间隔,然后将其收缩,使它准确地和原图像匹配。收缩后的
网格的像素间隔要小于原图像的像素间隔,为了对覆盖的每一个点赋予灰度值,我们在原图像中寻找最接近的像素,并把该像素的灰度赋予
网格中的新像素。当完成对网格覆盖的所有点的灰度赋值后,就把图像扩展到原来规定的大小,得到放大后的图像。
上述方法称为最近邻内插值,但这个方法不常使用,因为会造成极为严重的失真。更为使用的方法使双线性插值,我们使用4个最邻近去估计给定位置的灰度,表示要赋予的灰度值:
其中,4个系数可由4个邻近点写出的未知方程确定。
另一个复杂度较高的方法是双三次插值,包含16个邻近点:
其中,16个系数可由16个邻近点写出的未知方程确定。
像素间的基本关系
相邻像素
位于处的像素
有4个水平和垂直的相邻像素:
这组像素称为的4邻域,用
表示。
的4个对角相邻像素的坐标如下:
用表示。这些点和4个邻点一起称为
的8邻域,用
表示。
邻接性、连通性、区域和边界
令是用于定义邻接性的灰度值集合。在灰度图像中,例如灰度级为0-255的临界像素中,
可能是256个值中的任何一个子集。考虑3种邻接:
- 4邻接。如果
在集合
中,则具有
中数值的两个像素
和
是4邻接的。
- 8邻接。如果
在集合
中,则具有
中数值的两个像素
和
是8邻接的。
-
邻接。如果
在
中,或在
中,且集合
中没有来自V中数值的像素,则具有
中数值的两个像素
和
是
邻接的。
邻接用来消除
邻接的二义性。
从像素到像素
的通路是特定的像素序列:
是
的坐标,
是
的坐标,之间相邻像素是邻接的。
是通路的长度。根据相邻像素的邻接方式可以来命名通路名。
令是图像中的一个像素子集,如果
的全部像素之间存在一个通路,则
和
在
中连通。对于
中任意像素
,
中连通到该像素的像素集称为
的连通分量。如果
只有一个连通分量,则集合
称为连通集。
令是图像的一个像素子集。如果
是连通集,则
称为一个区域。两个区域如果联合成一个连通集,那么它们称为邻接区域。
距离度量
像素和
的欧式距离:
城市街区距离:
棋盘距离:
数字图像处理中所用数学工具
阵列和矩阵操作
图像可以等价地被看成是矩阵。阵列和矩阵间地操作是有区别的。矩阵乘法不必多说,而阵列乘法是每个像素相对应的乘法。
线性操作和非线性操作
图像处理方法的最重要分类之一是它是线性的还是非线性的。考虑一般的算子,该算子对给定的输入图像
,产生一幅输出图像
:
如果
则是一个线性算子。反之是非线性操作(比如求最大值操作)。
算数操作
即两个阵列间的加减乘除操作(两个图像的大小要相同)。
空间操作
分为三类:(1)单像素操作。(2)邻域操作。(3)几何空间变换。
单像素操作
在数字图像中执行的最简单的操作就是以灰度为基础改变单个像素的值:
其中,是原图像中像素的灰度,
是处理后的图像中相应像素的灰度。
邻域操作
令代表图像
中以任意一点
为中心的一个邻域的坐标集。邻域处理在输出图像
中的相同坐标处生成一个相应的像素,该像素的值由输入图像中坐标
内像素经指定操作决定。
几何空间变换和图像配准
几何变换由两个基本操作组成:(1)坐标的空间变换。(2)灰度内插,即对空间变换后的像素赋灰度值。
坐标变换:
是源图像中像素的坐标,
是变换后图像像素的坐标。
是变换矩阵。
灰度内插的方法在之前提到过(双线性内插,双三次内插)。
图像配准:
比如对图像进行放射变换时,对四个角生成约束点,变换这些约束点可以对图像进行配准操作。
图像变换
除在空间域对处理外,还可以在频域进行处理。