2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
1
5.7 图像几何处理
5.7.1几何处理的内容图像处理算法中的几何处理是根据几何变换改变一幅图像中象素的位置和/或排列 。 前面讨论过的各种处理都要根据特定的变换改变象素值的大小 。 而几何变换并不改变象素值的大小,它只是 改变象素所处的位置 。 也就是说,将给定象素值的象素移到图像中一个新位置上 。
由于几何变换是一种调整一幅图像中各类特征间空间关系的变换 。 实际上,一个不受约束的几何变换,
可将图像中的一个点变换到图像中任意位置 。 也就是说,几何变换可将原图像变得面目全非 。 但实际使用的几何变换是一种保持变换前后图像局部特征相似性的变换 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
2
几何变换是图像处理中一种基本的,常用的图像预处理方法,其主要用途是:
1,实现数字图像的放大,缩小及旋转;
2,实现畸变 ( 畸变原因可以多种多样,如摄影系统或镜头畸变 ) 图像的校正;
3,实现不同来源图像 ( 如航空摄影,卫星遥感,合成孔径雷达等不同来源 ) 的配准;
4,显示和打印图像时的一种图像排版工具;
5,可以使处理后的图像具有多种不同的特殊效果 。
几何变换还有许多别的用途,此处就不一一列举 。
与已讨论过的其它图像技术一样,几何变换在实现上也有其特殊的困难需要解决 。 进行几何变换处理时,如果不考虑象素位置,纵横比和缓冲区重叠的问题,可能就得不出预想的结果 。 在几何变换中精确的象素位置和纵横比是非常重要的 。 下面将详细讨论 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
3
主要的几何处理内容包括图像缩放,旋转,平移,
镜象,畸变校正,配准等 。
5.7.2图像几何变换原理图像几何变换的基本原理,是将原图像坐标系 u,v上的数字图像 f(u,v)变换为另一个 x,y坐标系上的数字图像
g(x,y)。 前面讨论的图像处理的算法中,原图像与所生成的目的图像之间存在着一一对应的关系 。 在对图像进行几何变换处理时,有时原图像和目的图像的象素会失去一一对应的关系 。 也就是说,在图像处理中,
生成的目的图像中的某个象素值需要用原图像的哪个象素 ( 或哪些象素 ) 这一对应关系是确定的,而对于几何处理,就不能保证存在这种原图像象素与目的图像象素之间的一一对应的映射关系了 。 以图像缩放为例,如果将一幅图像放大,原图像中的一个象素将被映射成目标图像中的多个象素 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
4
相反地,如果缩小一幅图像,原图像中的多个象素仅映射成目的图像中的一个象素 。 更进一步来说,如果图像的放大系数是一个非整数,比如说,放大系数为 1.3,
那么原图像中一个象素怎样映射成目的图像中的 1.3个象素呢?
在生成目的图像的映射方式上,一般习惯于由原图像向目的图像映射,但就几何处理来说,则必须由目的图像向原图像映射 。 尽管看上去违反了常规,但为了保证目的图像的每一个象素都有确定值,必须采用这种反向映射方式 。 因为原象素和目的象素中不存在一对一的对应关系,所以由原图像到目的图像的映射不能保证将原象素映射到每一个目的象素中去,也就是说,在输出图像中可能会出现没有被赋值的目的象素 。 这种缺象素值的图像显然是没有什么实用价值的 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
5
为避免出现,空,象素,几何变换一般采用反向映射的方法 。 反向映射就是扫描目的图像的每个象素,按照给定的变换关系来确定目的象素需要用到的原象素 。
用这种方法来计算目的象素就能保证整个目的图像没有空象素 。
由于采用反向映射,所以图像几何变换的数学表达式一般是目的图像坐标变量为自变量,而原图像的坐标变量为因变量,其一般表示式满足:
1,f(x’,y’)﹦ f(p(x,y),q(x,y)) → g(x,y)
其中:
为变换函数 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
6
2,保持变换前后两幅图像 f(x’,y’)与 g(x,y)间局部特征相似 。 即变换后,原图像上局部特征的连续性与连通性保持不变 。
应该注意到,数字图像上每个象素的坐标均为整数,
而变换函数:
是连续函数 。 因此,当取某一 (x,y)坐标时,一般来说,与之对应的 (x’,y’)就不一定是整数 。 反之,若某一 (x’,y’)为整数时,一般来说,与之对应的 (x,y)
也不一定是整数 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
7
在具体作几何变换时,原图像 f(x’,y’)是已知的,
变换的目标图像 g(x,y)是待定的 。 在实现上从节约计算量考虑,一般地 (x,y)坐标值取为整数,这样与之对应的 (x’,y’)坐标值一般就不是整数了 。 而非整数的 (u,v)
坐标,在原图像上其值 f(x’,y’)是没有定义的 。 为此必须根据原图像上与该 (x’,y’)点相邻的整数坐标 ( 即其
f(x’,y’)有定义的 ) 象素值,内插计算出该点灰度值
f(x’,y’),即所谓灰度插值计算 。
x’,y’坐标与 x,y坐标之间的函数关系可以是任意函数。考虑到任意函数均可展成幂级数,所以用幂函数形式来描述其间关系。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
8
综上所述,图像几何变换包括了坐标变换与灰度插值两部分变换计算工作 。
5.7.3插值计算在正反向映射的任一种情况下,插值的目的是要计算出位于一些象素值已知的点之间,且与这些已知点之间的距离也是已知的新的象素点的值 。 如下图 5所示,由于 (x0,y0)点不在整数坐标点上,因此需要根据相邻整数坐标点上灰度值,来插值估算出该点的灰度值 f(x0,y0)。
围绕在待求点 (x0,y0)周围的那些象素值己知的点称为待求点的邻域 。 邻域中离 (x0,y0)最近的点对于 (x0,y0)的值影响最大 。 离 (x0,y0)越远,则对 (x0,y0)的影响越小 。 线性插值假定邻域中的象素对 (x0,y0)的值的影响与象素离
(x0,y0)点的距离成反比 。 常用的灰度插值方法有最近邻法和双线性插值法 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
9
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
10
常用的灰度插值方法有三种:
1,最近邻法;
2,双线性插值法;
3,三次内插法 。
1,最近邻法最近邻法是将与 (x0,y0)点最近的整数坐标 (x,y)点的灰度值取为 (x0,y0)点的灰度值 。 在 (x0,y0)点各相邻象素间灰度变化较小时,这种方法是一种简单快速的方法,但当 (x0,y0)点相邻象素灰度差很大时,这种灰度估值方法会产生较大的误差 。
在上图中,假定目的图像区域如 (b)所示 。 黑象素
(x’i,y’j)是变换后生成的象素 。 对黑象素进行反向映射至原图像中 (x0,y0)分数座标位置,该位置周围由 A、
B,C,D四个原象素组成该点的邻域 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
11
如果采用最近邻近似法,则图 (a)中黑象素的分数地址将被取整为离它最近的整型邻域象素地址 。 在本例中由于象素 A,即 (xm,yn)离黑象素最近,所以目的图像中象素 (x’i,y’j)的值可以被赋予象素 A的值 。
2,双线性插值法双线性插值方法是对近邻法的一种改进,即用线性内插方法,根据 (x0,y0)点的四个邻点的灰度值,插值计算出
f(x0,y0)值 。 以上图为例,具体计算过程是:
先根据 f(xm,yn)及 f(xm+1,yn)插值求 f(x0,yn),即再根据 f(xm,yn+1)及 f(xm+1,yn+1)插值求 f(x0,yn+1),即
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
12
其中:
最后根据 f(x0,yn)及 f(x0,yn+1)插值求 f(x0,y0),即其中:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
13
在实际计算时,若对任 s值,规定 [s]表示其值不超过 s的最大整数,则上式中上述 f(x0,y0)的计算过程,实际是根据 f(xm,yn),
f(xm+1,yn),f(xm,yn+1)及 f(xm+1,yn+1)四个整数点的灰度值作两次线性插值(即所谓双线性插值)而得到的。上述 f(x0,y0)插值计算方程可改写为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
14
计算出的目的图像中的 (x’i,y’j)象素值的大小与
(x,y)邻域中各象素值及 (x,y)到邻域中各点的距离成反比 。
采用反向映射及线性插值方法对图像进行相应的几何变换,得到的图像质量较好,也就是说,使经过给定变换处理后的图像更准确地反映了原图的内容 。 作线性插值处理的缺点是,由于必须多次采用浮点数进行计算使几何变换速度降低 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
15
在用算法实现插值计算时必须考虑 ‘ 边界效果 ’ 。
实际上,任何采用了象素邻域这个概念的图像处理算法,在对图像边界处的象素进行处理时都要遇到类似的问题 。 为解决这个问题,插值过程中可以在图像边界复制象素邻域数据 。
双线性灰度插值计算方法由于已考虑到了 (u0,v0)
点的直接邻点对它的影响,因此一般能得到今人满意的插值效果 。 但这种方法具有低通滤波性质,使高频分量受到损失 。 为要得到更精确的灰度插值效果,可采用三次内插法 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
16
3,三次内插法为要得到更精确的 (x0,y0)点的灰度值,就不仅需考虑 (x0,y0)点直接邻点对它的影响,而需要考虑到该点周围 16个邻点的灰度值对它的影响 。
由连续信号采样定理可知,若对采样值用插值数
C(x)=sin(π x)/(π x)插值,则可准确地恢复原函数,
当然也就可准确地得到采样点间任意点的值 。 三次内插法采用 sin(π x)/(π x)的三次近似多项式,即
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
17
利用上述插值函数,可采用下述步骤插值算出 f(x0,y0):
1) 根据 f(xm-1,yn),f(xm,yn),f(xm+1,yn),f(xm+2,yn),
计算出 f(x0,yn)值,即:
根据 f(xm-1,yn-1),f(xm,yn-1),f(xm+1,yn-1),f(xm+2,yn-1),计算出 f(x0,yn-1)值,即:
根据 f(xm-1,yn+1),f(xm,yn+1),f(xm+1,yn+1),f(xm+2,yn+1),
计算出 f(x0,yn+1)值,即:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
18
根据 f(xm-1,yn+2),f(xm,yn+2),f(xm+1,yn+2),f(xm+2,yn+2),计算出 f(x0,yn+2)值,即:
2) 根据 f(x0,yn),f(x0,yn-1),f(x0,yn+1),f(x0,yn+2)
等四个值,插值计算 f(x0,y0)值,即:
上述计算过程可紧凑地用矩阵表示为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
19
其中本方法与前两种相比,有精度高的优点,但计算量比前两种大得多。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
20
5.7.4图像变换象素坐标 (x,y)到 (x’,y’)的变换中,一些特殊的变换关系是经常用到 。
1,恒等变换其变换公式为:
x’=x
y’=y
即为将图像 f(x,y)复制为图像 g(x’,y’)。
我们可以用矩阵形式来表示图像变换方程 。 为了能方便地将各种图像变换规范化为统一的矩阵表示,并通过矩阵运算完成图像变换计算,图像变换通常使用齐次坐标矩阵来表示 。 恒等图像变换方程的齐次坐标矩阵表示式为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
21
为了实行反向映射,需要使用目的图像象素坐标 (x’,y’)
计算原图像象素坐标 (x,y),对变换矩阵求逆阵后,得到逆运算的矩阵表示式为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
22
2 图像平移在图像平移变换过程中,原象素和目标象素间存在着一对一的映射关系,这样在目的图像中就不会出现空象素,
因此不需要进行插值 。
图像平移变换的公式为:
x’=x+x0
y’=y+y0
图像平移变换方程写成齐次坐标矩阵形式为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
23
逆运算的矩阵表示式为:
图像平移
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
24
3,图像缩放几何处理中的缩放处理,可以改变图像或图像中部分区域的大小,得到的图像将是对原图像放大或缩小的结果 。 对图像进行缩放的目标是尽量减少变换后图像的空间畸变 。 前面介绍的插值方法能帮助我们将这种畸变减少到最小程度 。
图像缩放变换的公式如下:
x’=c.x
y’=d.y
上式中 c,d为特定常数,此变换即为 f图像在 x轴方向上放大倍,在 y轴方向上放大倍而得到 g图像 。 应注意到,
当系数小于 1时,实际是缩小变换 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
25
图像缩放可以对整个图像的大小作缩放,也可以按给定的水平方向和竖直方向上的缩放系数对图像作缩放 。
如果在作缩放时,水平和垂直方向的缩放系数不同的话,
将改变缩放后图像的显示纵横之比,因此需根据具体应用情况来确定是否需要作图像的显示纵横比修正 。
作缩放处理时是从目的图像的角度来考虑的 。 也就是说,是根据目的图像中的每一个象素,按反向映射,
找到与目的图像中的该象素相对应的原图像中哪个 ( 或哪些个 ) 象素 。 采用反向映射保证了目的图像中每一个象素都有一个确定的值 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
26
在图像缩放处理中,最为复杂的部分是变换后象素值的插值计算问题,这方面的问题请详见本章前面有关插值的介绍 。
应该注意到,缩放处理改变了图像的空间结构关系,
因此往往不能根据目的图像惭复原始图像的数据了 。 这也就是说,原图中的空间信息永久性地丢失了 。 图像缩小过程就能具体说明信息丢失的情况 。 当一幅图像进行缩小四倍的处理时,目的图像的一个象素是由原图像中四个不同的象素生成的,如果图像放大的倍数与前面缩小的倍数相同,则在前面缩小过程中,四个不同的象素合成了一个象素,在后面放大的过程中,这个象素又复制成了四个相同的象素 。 由上述缩放过程看出,在这两次变换中,四个不同的象素先缩小后放大后变成了四个相同的象素,部分信息丢失了 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
27
图像缩放变换方程写成齐次坐标矩阵形式为:
逆运算的矩阵表示式为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
28
图像比例变换示例 1-50%
图像比例变换示例 2-原图像 -目的图像放大图像整数倍放大 -原图像 -目的图像放大最邻近点图像比例缩放二次线性插值图像比例缩放
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
29
4,图像旋转几何处理中的旋转功能允许将一幅图像绕某一中心旋转任意指定的角度 。 对整幅图像进行旋转是通过对组成该图像的每个象素进行旋转来完成的 。 象素点 (x,y)经逆时针旋转角后,新象素点 (x’,y’)的的坐标值为:
x’=xcos?﹣ ysin?
y’=ycos?﹢ xsin?
上式中为旋转角度,是 x’,y’坐标系相对于 x,y坐标系的夹角,逆时针为正,顺时针时则为负 。 此变换即为图像
f(x,y) 逆时针转动角后得到图像 g(x’,y’)。
图像缩放变换方程写成齐次坐标矩阵形式为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
30
逆运算的矩阵表示式为:
相对于点 (x0,y0)为旋转中心的的图像旋转逆运算的的矩阵为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
31
最邻近点图像旋转二次线性插值图像旋转
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
32
5 图像镜像图像镜像处理产生的目的图像为原图像的镜像 。 这种变换起的作用如同一面镜子 。,常用的图像镜像是水平方向和垂直方向镜像 。 对于水平镜像,原图像的左边变成了目的图像的右边,而原图像的右边变成了目的图像的左边 。 对于垂直镜像,原图像的顶部变成了目的图像的底部,原图像的底部变成了目的图像的顶部 。
图像 f(x,y)绕 x0=c的垂直轴做水平镜像变换得到图像 g(x’,y’)的公式为:
x’=-(x-x0)+x0=-x+2c
y’=y
上式中 c 为给定常数 。
图像绕 x0=c的垂直轴变换方程写成齐次坐标矩阵形式为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
33
逆运算的矩阵表示式为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
34
图像 f(x,y)绕 y0=c的水平轴做垂直镜像变换而得到图像
g(x’,y’)的公式为:
x’=x
y’=-(y-y0)+y0=-y+2c
图像绕 y0=c的垂直轴变换方程写成齐次坐标矩阵形式为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
35
逆运算的矩阵表示式为:
6 图像转置图像转置变换是将图像的横坐标和纵坐标互换 。 该变换将改变图像的大小,图像的高度和宽度将互换 。
图像转置变换的公式如下:
x’=y
y’=x
图像转置变换方程写成齐次坐标矩阵形式为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
36
逆运算的矩阵表示式为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
37
上述各种特殊坐标变换关系是幂级数形式表示的一般变换关系的特例 。 上述各种特殊坐标变换关系亦可多个组合应用而得到任意的变换结果 。 但实际图像处理中所用到的几何变换往往不是按给定的变换函数关系,求最终的目标图像 ( 变换结果 ) 的过程,而是根据实际畸变图像畸变量的测量来确定变换函数关系的过程 。 一般采用控制点法 。
5.7.5控制点变换方法控制点法是通过测定若干特定坐标点 ( 即所谓控制点的位移量来确定坐标变换方程的系数的方法 。 例如下图所示:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
38
若已知该图所示输入图像与输出图像上四对对应点对 ( 即控制点对 ) 的位移量,则可利用这四对已知控制点对,求解下列坐标变换方程中的系数 a~ h
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
39
系数 a~ h确定后,就得到确定的坐标变换关系,进而可据此完成图像的坐标变换 。
上例是坐标变换幂函数方程中一个特例。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
40
对一般的 N阶幂函数,系数个数及为确定这些系数所需的控制点对数需根据具体 N值来确定。一般来说,适当提高阶次 N可提高校正精度,但随着阶次 N的提高,为确定幂函数系数所需的控制点对数量亦随之增多,并且坐标变换所需计算量亦增多。实用上,一般取 N=2~ 3。
对 N=2的情况,上述 u,v的幂函数可展开为:
即为确定此方程共有 12个待定系数 aij及 bij,为此共需 6
对控制点对才能唯一地确定此坐标变换方程的系数。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
41
在实际应和中,对应点对的测量难免有误差,为了避免由于个别对应点对的测量误差严重影响所求坐标变换方程系数的精度,通常采用多选控制点对(即选取多于所需的控制点对),而后用最小二乘方法来求解坐标变换方程的系数。
若选取 M个控制点,则:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
42
变换矩阵 A为:
令
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
43
得到:
实际处理表明,采用三次多项式的变换,就能满足陆地卫星图像几何精校正的要求 。 同理可导出,当 N=3时,
坐标变换方程共有 20个系数需要确定,为此至少需要 10对控制点对才能唯一地确定这些系数 。
由于计算量的限制,不可能对图像元素逐点进行变换校正,而只在输出图像网络交点上进行直接映射运算,网格交点以外的像元,只能根据其相应网格周围的数据进行补插 。 同时在确定输出图像像素在输入图像上的位置之后,
需要为输出图像象素给定相应的灰阶 。 可以使用最近邻点法,双线性插值,三次插值法和样条函数内插法等 。
(C)
1
5.7 图像几何处理
5.7.1几何处理的内容图像处理算法中的几何处理是根据几何变换改变一幅图像中象素的位置和/或排列 。 前面讨论过的各种处理都要根据特定的变换改变象素值的大小 。 而几何变换并不改变象素值的大小,它只是 改变象素所处的位置 。 也就是说,将给定象素值的象素移到图像中一个新位置上 。
由于几何变换是一种调整一幅图像中各类特征间空间关系的变换 。 实际上,一个不受约束的几何变换,
可将图像中的一个点变换到图像中任意位置 。 也就是说,几何变换可将原图像变得面目全非 。 但实际使用的几何变换是一种保持变换前后图像局部特征相似性的变换 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
2
几何变换是图像处理中一种基本的,常用的图像预处理方法,其主要用途是:
1,实现数字图像的放大,缩小及旋转;
2,实现畸变 ( 畸变原因可以多种多样,如摄影系统或镜头畸变 ) 图像的校正;
3,实现不同来源图像 ( 如航空摄影,卫星遥感,合成孔径雷达等不同来源 ) 的配准;
4,显示和打印图像时的一种图像排版工具;
5,可以使处理后的图像具有多种不同的特殊效果 。
几何变换还有许多别的用途,此处就不一一列举 。
与已讨论过的其它图像技术一样,几何变换在实现上也有其特殊的困难需要解决 。 进行几何变换处理时,如果不考虑象素位置,纵横比和缓冲区重叠的问题,可能就得不出预想的结果 。 在几何变换中精确的象素位置和纵横比是非常重要的 。 下面将详细讨论 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
3
主要的几何处理内容包括图像缩放,旋转,平移,
镜象,畸变校正,配准等 。
5.7.2图像几何变换原理图像几何变换的基本原理,是将原图像坐标系 u,v上的数字图像 f(u,v)变换为另一个 x,y坐标系上的数字图像
g(x,y)。 前面讨论的图像处理的算法中,原图像与所生成的目的图像之间存在着一一对应的关系 。 在对图像进行几何变换处理时,有时原图像和目的图像的象素会失去一一对应的关系 。 也就是说,在图像处理中,
生成的目的图像中的某个象素值需要用原图像的哪个象素 ( 或哪些象素 ) 这一对应关系是确定的,而对于几何处理,就不能保证存在这种原图像象素与目的图像象素之间的一一对应的映射关系了 。 以图像缩放为例,如果将一幅图像放大,原图像中的一个象素将被映射成目标图像中的多个象素 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
4
相反地,如果缩小一幅图像,原图像中的多个象素仅映射成目的图像中的一个象素 。 更进一步来说,如果图像的放大系数是一个非整数,比如说,放大系数为 1.3,
那么原图像中一个象素怎样映射成目的图像中的 1.3个象素呢?
在生成目的图像的映射方式上,一般习惯于由原图像向目的图像映射,但就几何处理来说,则必须由目的图像向原图像映射 。 尽管看上去违反了常规,但为了保证目的图像的每一个象素都有确定值,必须采用这种反向映射方式 。 因为原象素和目的象素中不存在一对一的对应关系,所以由原图像到目的图像的映射不能保证将原象素映射到每一个目的象素中去,也就是说,在输出图像中可能会出现没有被赋值的目的象素 。 这种缺象素值的图像显然是没有什么实用价值的 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
5
为避免出现,空,象素,几何变换一般采用反向映射的方法 。 反向映射就是扫描目的图像的每个象素,按照给定的变换关系来确定目的象素需要用到的原象素 。
用这种方法来计算目的象素就能保证整个目的图像没有空象素 。
由于采用反向映射,所以图像几何变换的数学表达式一般是目的图像坐标变量为自变量,而原图像的坐标变量为因变量,其一般表示式满足:
1,f(x’,y’)﹦ f(p(x,y),q(x,y)) → g(x,y)
其中:
为变换函数 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
6
2,保持变换前后两幅图像 f(x’,y’)与 g(x,y)间局部特征相似 。 即变换后,原图像上局部特征的连续性与连通性保持不变 。
应该注意到,数字图像上每个象素的坐标均为整数,
而变换函数:
是连续函数 。 因此,当取某一 (x,y)坐标时,一般来说,与之对应的 (x’,y’)就不一定是整数 。 反之,若某一 (x’,y’)为整数时,一般来说,与之对应的 (x,y)
也不一定是整数 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
7
在具体作几何变换时,原图像 f(x’,y’)是已知的,
变换的目标图像 g(x,y)是待定的 。 在实现上从节约计算量考虑,一般地 (x,y)坐标值取为整数,这样与之对应的 (x’,y’)坐标值一般就不是整数了 。 而非整数的 (u,v)
坐标,在原图像上其值 f(x’,y’)是没有定义的 。 为此必须根据原图像上与该 (x’,y’)点相邻的整数坐标 ( 即其
f(x’,y’)有定义的 ) 象素值,内插计算出该点灰度值
f(x’,y’),即所谓灰度插值计算 。
x’,y’坐标与 x,y坐标之间的函数关系可以是任意函数。考虑到任意函数均可展成幂级数,所以用幂函数形式来描述其间关系。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
8
综上所述,图像几何变换包括了坐标变换与灰度插值两部分变换计算工作 。
5.7.3插值计算在正反向映射的任一种情况下,插值的目的是要计算出位于一些象素值已知的点之间,且与这些已知点之间的距离也是已知的新的象素点的值 。 如下图 5所示,由于 (x0,y0)点不在整数坐标点上,因此需要根据相邻整数坐标点上灰度值,来插值估算出该点的灰度值 f(x0,y0)。
围绕在待求点 (x0,y0)周围的那些象素值己知的点称为待求点的邻域 。 邻域中离 (x0,y0)最近的点对于 (x0,y0)的值影响最大 。 离 (x0,y0)越远,则对 (x0,y0)的影响越小 。 线性插值假定邻域中的象素对 (x0,y0)的值的影响与象素离
(x0,y0)点的距离成反比 。 常用的灰度插值方法有最近邻法和双线性插值法 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
9
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
10
常用的灰度插值方法有三种:
1,最近邻法;
2,双线性插值法;
3,三次内插法 。
1,最近邻法最近邻法是将与 (x0,y0)点最近的整数坐标 (x,y)点的灰度值取为 (x0,y0)点的灰度值 。 在 (x0,y0)点各相邻象素间灰度变化较小时,这种方法是一种简单快速的方法,但当 (x0,y0)点相邻象素灰度差很大时,这种灰度估值方法会产生较大的误差 。
在上图中,假定目的图像区域如 (b)所示 。 黑象素
(x’i,y’j)是变换后生成的象素 。 对黑象素进行反向映射至原图像中 (x0,y0)分数座标位置,该位置周围由 A、
B,C,D四个原象素组成该点的邻域 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
11
如果采用最近邻近似法,则图 (a)中黑象素的分数地址将被取整为离它最近的整型邻域象素地址 。 在本例中由于象素 A,即 (xm,yn)离黑象素最近,所以目的图像中象素 (x’i,y’j)的值可以被赋予象素 A的值 。
2,双线性插值法双线性插值方法是对近邻法的一种改进,即用线性内插方法,根据 (x0,y0)点的四个邻点的灰度值,插值计算出
f(x0,y0)值 。 以上图为例,具体计算过程是:
先根据 f(xm,yn)及 f(xm+1,yn)插值求 f(x0,yn),即再根据 f(xm,yn+1)及 f(xm+1,yn+1)插值求 f(x0,yn+1),即
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
12
其中:
最后根据 f(x0,yn)及 f(x0,yn+1)插值求 f(x0,y0),即其中:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
13
在实际计算时,若对任 s值,规定 [s]表示其值不超过 s的最大整数,则上式中上述 f(x0,y0)的计算过程,实际是根据 f(xm,yn),
f(xm+1,yn),f(xm,yn+1)及 f(xm+1,yn+1)四个整数点的灰度值作两次线性插值(即所谓双线性插值)而得到的。上述 f(x0,y0)插值计算方程可改写为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
14
计算出的目的图像中的 (x’i,y’j)象素值的大小与
(x,y)邻域中各象素值及 (x,y)到邻域中各点的距离成反比 。
采用反向映射及线性插值方法对图像进行相应的几何变换,得到的图像质量较好,也就是说,使经过给定变换处理后的图像更准确地反映了原图的内容 。 作线性插值处理的缺点是,由于必须多次采用浮点数进行计算使几何变换速度降低 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
15
在用算法实现插值计算时必须考虑 ‘ 边界效果 ’ 。
实际上,任何采用了象素邻域这个概念的图像处理算法,在对图像边界处的象素进行处理时都要遇到类似的问题 。 为解决这个问题,插值过程中可以在图像边界复制象素邻域数据 。
双线性灰度插值计算方法由于已考虑到了 (u0,v0)
点的直接邻点对它的影响,因此一般能得到今人满意的插值效果 。 但这种方法具有低通滤波性质,使高频分量受到损失 。 为要得到更精确的灰度插值效果,可采用三次内插法 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
16
3,三次内插法为要得到更精确的 (x0,y0)点的灰度值,就不仅需考虑 (x0,y0)点直接邻点对它的影响,而需要考虑到该点周围 16个邻点的灰度值对它的影响 。
由连续信号采样定理可知,若对采样值用插值数
C(x)=sin(π x)/(π x)插值,则可准确地恢复原函数,
当然也就可准确地得到采样点间任意点的值 。 三次内插法采用 sin(π x)/(π x)的三次近似多项式,即
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
17
利用上述插值函数,可采用下述步骤插值算出 f(x0,y0):
1) 根据 f(xm-1,yn),f(xm,yn),f(xm+1,yn),f(xm+2,yn),
计算出 f(x0,yn)值,即:
根据 f(xm-1,yn-1),f(xm,yn-1),f(xm+1,yn-1),f(xm+2,yn-1),计算出 f(x0,yn-1)值,即:
根据 f(xm-1,yn+1),f(xm,yn+1),f(xm+1,yn+1),f(xm+2,yn+1),
计算出 f(x0,yn+1)值,即:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
18
根据 f(xm-1,yn+2),f(xm,yn+2),f(xm+1,yn+2),f(xm+2,yn+2),计算出 f(x0,yn+2)值,即:
2) 根据 f(x0,yn),f(x0,yn-1),f(x0,yn+1),f(x0,yn+2)
等四个值,插值计算 f(x0,y0)值,即:
上述计算过程可紧凑地用矩阵表示为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
19
其中本方法与前两种相比,有精度高的优点,但计算量比前两种大得多。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
20
5.7.4图像变换象素坐标 (x,y)到 (x’,y’)的变换中,一些特殊的变换关系是经常用到 。
1,恒等变换其变换公式为:
x’=x
y’=y
即为将图像 f(x,y)复制为图像 g(x’,y’)。
我们可以用矩阵形式来表示图像变换方程 。 为了能方便地将各种图像变换规范化为统一的矩阵表示,并通过矩阵运算完成图像变换计算,图像变换通常使用齐次坐标矩阵来表示 。 恒等图像变换方程的齐次坐标矩阵表示式为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
21
为了实行反向映射,需要使用目的图像象素坐标 (x’,y’)
计算原图像象素坐标 (x,y),对变换矩阵求逆阵后,得到逆运算的矩阵表示式为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
22
2 图像平移在图像平移变换过程中,原象素和目标象素间存在着一对一的映射关系,这样在目的图像中就不会出现空象素,
因此不需要进行插值 。
图像平移变换的公式为:
x’=x+x0
y’=y+y0
图像平移变换方程写成齐次坐标矩阵形式为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
23
逆运算的矩阵表示式为:
图像平移
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
24
3,图像缩放几何处理中的缩放处理,可以改变图像或图像中部分区域的大小,得到的图像将是对原图像放大或缩小的结果 。 对图像进行缩放的目标是尽量减少变换后图像的空间畸变 。 前面介绍的插值方法能帮助我们将这种畸变减少到最小程度 。
图像缩放变换的公式如下:
x’=c.x
y’=d.y
上式中 c,d为特定常数,此变换即为 f图像在 x轴方向上放大倍,在 y轴方向上放大倍而得到 g图像 。 应注意到,
当系数小于 1时,实际是缩小变换 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
25
图像缩放可以对整个图像的大小作缩放,也可以按给定的水平方向和竖直方向上的缩放系数对图像作缩放 。
如果在作缩放时,水平和垂直方向的缩放系数不同的话,
将改变缩放后图像的显示纵横之比,因此需根据具体应用情况来确定是否需要作图像的显示纵横比修正 。
作缩放处理时是从目的图像的角度来考虑的 。 也就是说,是根据目的图像中的每一个象素,按反向映射,
找到与目的图像中的该象素相对应的原图像中哪个 ( 或哪些个 ) 象素 。 采用反向映射保证了目的图像中每一个象素都有一个确定的值 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
26
在图像缩放处理中,最为复杂的部分是变换后象素值的插值计算问题,这方面的问题请详见本章前面有关插值的介绍 。
应该注意到,缩放处理改变了图像的空间结构关系,
因此往往不能根据目的图像惭复原始图像的数据了 。 这也就是说,原图中的空间信息永久性地丢失了 。 图像缩小过程就能具体说明信息丢失的情况 。 当一幅图像进行缩小四倍的处理时,目的图像的一个象素是由原图像中四个不同的象素生成的,如果图像放大的倍数与前面缩小的倍数相同,则在前面缩小过程中,四个不同的象素合成了一个象素,在后面放大的过程中,这个象素又复制成了四个相同的象素 。 由上述缩放过程看出,在这两次变换中,四个不同的象素先缩小后放大后变成了四个相同的象素,部分信息丢失了 。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
27
图像缩放变换方程写成齐次坐标矩阵形式为:
逆运算的矩阵表示式为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
28
图像比例变换示例 1-50%
图像比例变换示例 2-原图像 -目的图像放大图像整数倍放大 -原图像 -目的图像放大最邻近点图像比例缩放二次线性插值图像比例缩放
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
29
4,图像旋转几何处理中的旋转功能允许将一幅图像绕某一中心旋转任意指定的角度 。 对整幅图像进行旋转是通过对组成该图像的每个象素进行旋转来完成的 。 象素点 (x,y)经逆时针旋转角后,新象素点 (x’,y’)的的坐标值为:
x’=xcos?﹣ ysin?
y’=ycos?﹢ xsin?
上式中为旋转角度,是 x’,y’坐标系相对于 x,y坐标系的夹角,逆时针为正,顺时针时则为负 。 此变换即为图像
f(x,y) 逆时针转动角后得到图像 g(x’,y’)。
图像缩放变换方程写成齐次坐标矩阵形式为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
30
逆运算的矩阵表示式为:
相对于点 (x0,y0)为旋转中心的的图像旋转逆运算的的矩阵为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
31
最邻近点图像旋转二次线性插值图像旋转
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
32
5 图像镜像图像镜像处理产生的目的图像为原图像的镜像 。 这种变换起的作用如同一面镜子 。,常用的图像镜像是水平方向和垂直方向镜像 。 对于水平镜像,原图像的左边变成了目的图像的右边,而原图像的右边变成了目的图像的左边 。 对于垂直镜像,原图像的顶部变成了目的图像的底部,原图像的底部变成了目的图像的顶部 。
图像 f(x,y)绕 x0=c的垂直轴做水平镜像变换得到图像 g(x’,y’)的公式为:
x’=-(x-x0)+x0=-x+2c
y’=y
上式中 c 为给定常数 。
图像绕 x0=c的垂直轴变换方程写成齐次坐标矩阵形式为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
33
逆运算的矩阵表示式为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
34
图像 f(x,y)绕 y0=c的水平轴做垂直镜像变换而得到图像
g(x’,y’)的公式为:
x’=x
y’=-(y-y0)+y0=-y+2c
图像绕 y0=c的垂直轴变换方程写成齐次坐标矩阵形式为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
35
逆运算的矩阵表示式为:
6 图像转置图像转置变换是将图像的横坐标和纵坐标互换 。 该变换将改变图像的大小,图像的高度和宽度将互换 。
图像转置变换的公式如下:
x’=y
y’=x
图像转置变换方程写成齐次坐标矩阵形式为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
36
逆运算的矩阵表示式为:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
37
上述各种特殊坐标变换关系是幂级数形式表示的一般变换关系的特例 。 上述各种特殊坐标变换关系亦可多个组合应用而得到任意的变换结果 。 但实际图像处理中所用到的几何变换往往不是按给定的变换函数关系,求最终的目标图像 ( 变换结果 ) 的过程,而是根据实际畸变图像畸变量的测量来确定变换函数关系的过程 。 一般采用控制点法 。
5.7.5控制点变换方法控制点法是通过测定若干特定坐标点 ( 即所谓控制点的位移量来确定坐标变换方程的系数的方法 。 例如下图所示:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
38
若已知该图所示输入图像与输出图像上四对对应点对 ( 即控制点对 ) 的位移量,则可利用这四对已知控制点对,求解下列坐标变换方程中的系数 a~ h
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
39
系数 a~ h确定后,就得到确定的坐标变换关系,进而可据此完成图像的坐标变换 。
上例是坐标变换幂函数方程中一个特例。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
40
对一般的 N阶幂函数,系数个数及为确定这些系数所需的控制点对数需根据具体 N值来确定。一般来说,适当提高阶次 N可提高校正精度,但随着阶次 N的提高,为确定幂函数系数所需的控制点对数量亦随之增多,并且坐标变换所需计算量亦增多。实用上,一般取 N=2~ 3。
对 N=2的情况,上述 u,v的幂函数可展开为:
即为确定此方程共有 12个待定系数 aij及 bij,为此共需 6
对控制点对才能唯一地确定此坐标变换方程的系数。
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
41
在实际应和中,对应点对的测量难免有误差,为了避免由于个别对应点对的测量误差严重影响所求坐标变换方程系数的精度,通常采用多选控制点对(即选取多于所需的控制点对),而后用最小二乘方法来求解坐标变换方程的系数。
若选取 M个控制点,则:
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
42
变换矩阵 A为:
令
2009年 7月 24日 数字图象处理演示稿 纪玉波制作
(C)
43
得到:
实际处理表明,采用三次多项式的变换,就能满足陆地卫星图像几何精校正的要求 。 同理可导出,当 N=3时,
坐标变换方程共有 20个系数需要确定,为此至少需要 10对控制点对才能唯一地确定这些系数 。
由于计算量的限制,不可能对图像元素逐点进行变换校正,而只在输出图像网络交点上进行直接映射运算,网格交点以外的像元,只能根据其相应网格周围的数据进行补插 。 同时在确定输出图像像素在输入图像上的位置之后,
需要为输出图像象素给定相应的灰阶 。 可以使用最近邻点法,双线性插值,三次插值法和样条函数内插法等 。