*均值为$m$的随机变量$z$的方差定义为$E[(z-m)^2]$,其中$E{}$是该参量的期望值;两个随机变量的协方差定义为$E[(z_i-m_i)(z_j-m_j)]$,若两个变量不相关,则它们的协方差为0。
2.6.4 集合和逻辑操作 基本集合操作属于、空集、交集、并集、补集的基本概念与数学中学的类似,还有一个差集的概念:
$$A-B=\{w|w\in A,\,w\notin B\}=A\cap{B^c}$$
图像灰度集合操作中会有些小的变化,首先元素是三元形式$(x, y, z)$,其中$x, y$是空间坐标,$z$是灰度,那么补集定义$A^c=\{(x, y, K-z)|(x, y, z)\in A\}$,并集定义$A\cup B=\{\mathrm{max}_z(a,b)|a\in A,b\in B\}$等等。
逻辑操作包括的操作有非(NOT)、与(AND)、或(OR)、与非(做差集AND[NOT])和异或(XOR)操作,其中需要注意的是AND, OR, NOT是功能完备的。
模糊集合用以处理界限不精确的分类集合,比如用年龄区分。
2.6.5 空间操作空间操作可以分作三类:
单像素操作:$$s=T(z)$$
其中$z$是源图像中某像素的灰度,$s$是处理后图像中相应的灰度,$T$是变换函数。
邻域操作令$S_{xy}$代表图像$f$中任意一点$(x,y)$为中心的一个邻域坐标集,然后在这个邻域内经过一些操作生成一个像素的坐标值。
几何空间变换和图像配准几何变换也叫橡皮膜变换,它由两个基本操作组成:坐标空间变化+灰度内插(空间变换之后的像素赋灰度值)。
最常用的空间坐标变换是仿射变换,形式如下:
$$\begin{bmatrix} x & y & 1 \end{bmatrix}=\begin{bmatrix}v & w & 1 \end{bmatrix}T=\begin{bmatrix} v & w & 1 \end{bmatrix}\begin{bmatrix} t_{11} & t_{12} & 0\\ t_{21} & t_{22} & 0 \\ t_{31} & t_{32} & 0 \end{bmatrix}$$
其中矩阵$T$可以实现恒等变换、尺度变换、旋转变换、平移变换、以及垂直和竖直方向的便宜变换。对于$T$中的元素,$t_{11}$ 和$t_{22}$表明尺度变换因子,$t_{12}$表明水平偏移变换,$t_{21}$表明垂直偏移变换,$t_{31}$和$t_{32}$表明平移变换情况。
上式可以有两种方法来使用,一种是向前映射,一种是逆计算,称作反向映射,即$(v,w)=T^{-1}(x,y)$的,就实现角度来讲,往往反向映射更为有效。
图像配准是数字图像处理的一种重要应用,用于对齐多幅相同场景的图像。这多幅图像可能是多模态的,使用的方法是利用约束点。往往约束点选取的越多,其准确度也越高,但计算量会相应增加。
2.6.6 向量与矩阵操作一个像素可以用向量来表示,如RGB彩色图像;一幅图像也可以用向量来表示,即一个$M\times N$的矩阵变为$MN\times 1$的向量。
对于用矩阵表示的像素,任一点$a$在$n$维空间的欧氏距离$D$可以表示为:
$$D(\vec{z},\vec{a})=\begin{bmatrix}(\vec{z}-\vec{a})^T(\vec{z}-\vec{a})\end{bmatrix}^{\frac{1}{2}}=\sum_{i=1}^{n}{(z_i-a_i)^2}^{\frac{1}{2}}$$
2.6.7 图像变换一种二维线性变换$T(u,v)$可以表示为
$$T(u,v)=\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)r(x,y,u,v)$$
其中$f(x,y)$是图像,$r(x,y,u,v)$称为正变换核,如果从$T$到$f$,需要的变换核称为反变换核,这两种变换在一起称为变换对。对于变换核,如果可以拆分,如
$$r(x,y,u,v)=r_1(x,u)r_2(r,v)$$
那么我们称变换核是可分的,如果$r_1=r_2$,那么变换是对称的,例如二维傅里叶变换
$$r(x,y,u,v)=e^{-j2\pi(\frac{ux}{M}+\frac{vy}{N})}$$
上图描述了线性变换域执行图像处理的基本步骤,变换可以看作一个变换举矩阵作用到图像矩阵上。
2.6.8 概率方法随机变量$z$的第$n$阶矩定义为:
$$\mu_n(z)=\sum_{k=0}^{L-1}(z_k-m)^np(z_k)$$
其中$p(z_k)$是图像中灰度级$z_k$出现的概率,$m$为整幅图像的灰度均值,所以我们可以得到$\mu_0(z)=1$,表示概率之和为1;$\mu_1(z)=m$,表示整幅图像的期望值;$\mu_2(z)=\sigma^2$,表示方差。
*高阶矩的敏感性更高,对于图像的视觉特性也有越明显的作用。
MATLAB 版这一章节主要是一些概念介绍和函数介绍。
2.1 数字图像的表示 2.1.1 坐标约定IPT(Image Process Tools)中关于坐标的描述与数学上的描述略有不同,主要区别有:
使用$(r,c)$来代表行和列。
远点在$(1,1)$处。
MATLAB的基本单位是矩阵,对于一个数来说,可以看做是$1\times 1$的标量,一副数字图像可以表示成:
$$f=\begin{bmatrix}f(1,1) & f(1,2) & \cdots & f(1,N) \\ f(2,1) & f(2,2) & \cdots & f(2,N) \\ \vdots & \vdots & \ddots & \vdots \\ f(M,1) & f(M,2) & \cdots & f(M,N) \\\end{bmatrix}$$
一个$1\times N$矩阵称为一个行向量,一个$M\times 1$矩阵称为一个列向量。
2.2 读取图像imread - Read image from graphics file.
用法:f = imread(\'路径名+文件名+扩展名\')
其支持的格式有
size – Size of array.给出一幅图像的行数和列数
用法:[M, N] = size(f)
whos - List current variables, long form. 显示出一个数组的附加信息
用法:whos f
2.3 显示图像imshow - Display image in Handle Graphics figure.
用法:imshow(f, G)
其中G是该图像的灰度级数,默认是256,用一个数组表示[low high],如果参数不写,那么会将整幅图像的像素灰度值等比例拉伸到0-255,如下图效果: