什么是数字图像处理
改善图像信息,便于作出解释
方便对图像传输,储存,方便机器理解
什么是数字图像
(1)模拟图像:连续二维函数 f(x,y)表示,其中 x,y 是平面坐标,f 代表图像在某点的某种性质的数值
(2)数字图像:对模拟图像red:离散化的结果
r 表示图形的行,c 表示图像的列,I 表示离散后的 f,可以用矩阵或者数组来描述数字图像
像素:数字图像的元素
数字图像处理的任务
(1)图像获取
(2)图像预处理
(3)图像滤波与增强
(4)图像复原
(5)彩色图像处理
(6)图像压缩
(7)图像分割
(8)图像描述与识别
机器视觉
用机器来模拟视觉,使用算法对于采集到的图像进行分析处理,并做出合适决策
计算机视觉侧重于对于理论的研究,而机器视觉侧重于对于实际场景的使用,强调算法的重要性
一个完整的机器视觉系统包括:
(1)光学系统
(2)图像采集模块
(3)图像处理系统
(4)交互界面
光学系统:通常包括光源,相机和镜头,突出被拍摄物体的特征,方便后期处理
图像采集模块:使用图像采集卡,将来自相机的模拟信号或者数字信号转为图像数据流
图像处理系统:通过视觉处理软件对于图像进行多种运算,并对得到的特征进行检测,定位,测量等处理
交互界面:显示最终的结果
工业应用中机器视觉的特点
(1)综合技术
(2)实用性
(3)实时性
处理基础
图像感知与获取
通过传感器将输入能源变为电压,再进行数字化处理
图像取样与量化
大多数传感器的输出是连续电压波形,为了产生图像,需要把连续的模拟信号转为离散的数字信号
取样:图像空间坐标的数字化
量化:对于图像函数值 f的数字化
数字图像只是对于真实场景的近似,取样点越多,量化的灰度级越多,图像质量越好
对于表示模拟图像的函数
f
(
s
,
t
)
f(s,t)
f(s,t),通过采样和量化,转化为 M 行 N 列,离散灰度级数为 L 的数字图像,其中 M、N 必须为正整数,灰度级数
L
=
2
k
L=2^k
L=2k,等间隔
(1)灰度跨越的值域为动态范围:
图像中最大可度量灰度
图像中最小可检测灰度
\frac{图像中最大可度量灰度}{图像中最小可检测灰度}
图像中最小可检测灰度图像中最大可度量灰度
(2)可度量灰度的上限取决于饱和度,超过了饱和度的灰度级将被剪切掉;下限取决于噪声,因为噪声掩盖了可检测的最低真实灰度级
(3)对比度:图像中最高的灰度级与最低的灰度级之间的灰度差
L
=
2
k
L=2^k
L=2k,储存数字图像所需要的 bit 数为:
M
∗
N
∗
k
M*N*k
M∗N∗k
E.G.对于 32*32 的二值图像(黑白两种元素的图像)
k=1,则其大小为:
3
2
2
∗
1
=
1024
b
i
t
s
=
256
b
y
t
e
s
32^2*1=1024bits=256bytes
322∗1=1024bits=256bytes
空间分辨率
图像的空间分辨率代表着对于图像中可辨别的最小单位的度量,由采样方式确定:
(1)视觉任务:像素尺寸
(2)平面设计:DPI(dots per Inch)
灰度分辨率
灰度分辨率则是指在灰度级中可以分辨的最小变化,灰度分辨率越大,图像的细节区分度就越好
图像中灰度级变小会如何:
图像的明暗过度会越来越明显,同时可能出现一些不属于正常物体边缘的伪轮廓,呈现细小山脊状,是灰度级不够平滑造成的
图像内插
用于图像的放大缩小,旋转矫正等任务,同时也可以相对应的改变图像的分辨率
插值:通过已知的图像数据来对改变后的位置数据进行处理
最近邻插值
将原图中最相邻的灰度值赋给新位置,当对于边缘来说可能造成严重的失真
插值过程:
(1)对于一张 500x500 的图像,将其放大为 750x750
(2)采用原图的间隔创建 750*750 的网格
(3)将新图像收缩到和原图相同的大小,此时新网格的单位边长小于原网格
(4)对每个新网格中的点,找到其最近的原网格的点为其赋值
(5)将新网格扩展到 750x750 的大小,此时就获得了放大后的图片
总体来说,过程就是:放大-缩小-放大
线性插值
已知点(x0,y0)与 (x1,y1),计算[x0,x1]区间上的任意直线上一点的插值
y
=
x
1
−
x
x
1
−
x
0
⋅
y
0
+
x
−
x
0
x
1
−
x
0
⋅
y
1
y = \frac{x_1-x}{x_1-x_0}\cdot{y_0}+\frac{x-x_0}{x_1-x_0}\cdot y_1
y=x1−x0x1−x⋅y0+x1−x0x−x0⋅y1
则认为
f
(
P
)
=
x
1
−
x
x
1
−
x
0
⋅
f
(
P
0
)
+
x
−
x
0
x
1
−
x
0
⋅
f
(
P
1
)
f(P) = \frac{x_1-x}{x_1-x_0}\cdot f(P_0)+\frac{x-x_0}{x_1-x_0}\cdot f(P_1)
f(P)=x1−x0x1−x⋅f(P0)+x1−x0x−x0⋅f(P1)
双线性插值
用 4 个最近邻来估计给定位置的灰度值,相当于将 y 轴也算作灰度值插值,就不用考虑需要在直线上的条件,只要在 x,y 构成的平面内即可
首先还是在 x 方向进行线性插值,获得两个辅助点 R1 和 R2,然后再利用这两个辅助点在 y 方向上插值,从而得到最终的插值结果
我们也可以推出在三维空间中是三线性插值
双三次插值
了解即可,采用 16 个最近邻点来进行计算,效果比双线性插值更好,但是速度更慢
像素间的基本关系
主要分为 4 邻域,D 邻域,和 8 邻域
(对于 1 而言)
4 邻域:2,4,6,8 号格
D 邻域:3,5,7,9 号格
8 邻域:4 邻域+D 邻域
在灰度级中,我们一般考虑 3 种像素的邻接方法
(1)4 邻接:两个像素互在对方的 4 邻域中
(2)8邻接:两个像素互在对方的 8 邻域中
(3)m 邻接(混合邻接):分为两种情况:1.4 邻接 2.两个像素互在对方的 D 邻域中,且 4 邻域的交集中像素值为 0
目的:对于8邻接,在寻找两个点的路径或者计算路径长度的时候会出现二义性的问题,m邻接可以去除二义性
如果使用8邻接,那么A-D的距离计算就会产生歧义,但是对于m邻接,A-C不能直接联通,因为他们的4邻域的交集中有B,所以A-D的路径为A-B-C-D
通路与连通集
对于刚刚我们提到的路径,我们把其叫做通路,通路的长度即为其包含的像素个数
(1)如果起始点和终点是同一个点,那么我们就认为这条通路是闭合通路,使用了哪种邻接方式就被称为x-通路
(2)给定一个像素集合S,对于任何一个属于S的像素q,通路中连接到像素q的像素集被称为S的连通分量
(3)如果S仅有一个连通分量,则S称为连通集
(4)R为图像的一个像素子集且刚好构成连通集,则将其称为一个区域,两个区域合在一起成为一个连通集,则这两个区域称为邻接区域
前景与背景
一幅图像中有k个不连接的区域,它们均不与图像的边界相接,令
R
u
R_u
Ru代表k个区域的并集,
(
R
u
)
c
(R_u)^c
(Ru)c表示其补集
则称
R
u
R_u
Ru为前景,$(R_u)^c为背景
图形的边界
对于图像中的一部分区域,已经定义了其邻接方式,若在此邻接方式下,区域的某像素的邻接区域中出现背景像素,则称该像素为该区域的边界
对于距离的定义
在图中,对于像素有:
(1)不是同一个点之间的距离必然大于0
(2)A到B的距离等于B到A的距离
(3)两边之和大于第三边
欧式距离
就是传统的计算距离的方式,勾股定理
D4距离(城市街区距离)
D 4 ( p , q ) = ∣ X p − X q ∣ + ∣ Y p − Y q ∣ D4(p,q) = |X_p-X_q|+|Y_p-Y_q| D4(p,q)=∣Xp−Xq∣+∣Yp−Yq∣
D8距离(棋盘距离)
D 8 ( p , q ) = m a x ( ∣ x p − x q ∣ , ∣ y p − y q ∣ ) D8(p,q) = max(|x_p-x_q|,|y_p-y_q|) D8(p,q)=max(∣xp−xq∣,∣yp−yq∣)
Dm距离
两点间的最短通路