可以看到,第一幅图像是由于镜头聚焦不好引起的模糊,第二幅是由于小车运动产生的模糊,第三幅是大气湍流影响的结果,a 中,大气湍流可以忽略不计,b 为剧烈湍流影响的结果,c 和 d 分别为中等湍流和轻微湍流影响的结果。从以上几张图片可以看出,成像过程中不同因素的影响导致影响质量下降,这就是所谓的图像退化。
图像的退化是指图像在形成、传输和记录过程中,由于成像系统、传输介质和设备的不完善,使图像的质量下降(变坏)。
其典型表现为: 模糊、失真、有噪声。
针对图像的模糊、失真、有噪声等造成的退化,我们需要对退化后的图像进行复原。
图像复原就是尽可能恢复退化图像的本来面目,它是沿图像退化的逆过程进行处理,也就是如果我们知道图像是经历了什么样的过程导致退化,就可以按其逆过程来复原图像。
因此,图像复原过程流程如下:
找退化原因→建立退化模型→反向推演→恢复图像
典型的图像复原是根据图像退化的先验知识,建立退化现象的数学模型,再根据模型进行反向的推演运算,以恢复原来的景物图像。
因此,图像复原的关键是知道图像退化的过程,即图像退化模型。并据此采用相反的过程求得原始图像。
针对不同的退化问题,图像复原的方法主要有:代数方法恢复、运动模糊恢复、逆滤波恢复、维纳滤波恢复、功率谱均衡恢复、约束最小平方恢复、最大后验恢复、最大熵恢复、几何失真恢复等。
区别如下:图像增强不考虑图像是如何退化的,而是主观上试图采用各种技术来增强图像的视觉效果。
因此,图像增强可以不顾增强后的图像是否失真,只要达到想要的目视效果就可以。
而图像复原就完全不同,需知道图像退化的机制和过程等先验知识,客观上找出一种相应的逆处理方法,从而得到复原的图像。
如果图像已退化,应先作复原处理,再作增强处理。
二者的目的都是为了改善图像的质量。
输入图像 f ( x , y ) f(x,y) f(x,y) 经过某个退化系统后输出的是一幅退化的图像。为了讨论方便,把噪声引起的退化即噪声对图像的影响一般作为加性噪声考虑。
原始图像 f ( x , y ) f(x,y) f(x,y) 经过一个退化算子或退化系统 H ( x , y ) H(x,y) H(x,y) 的作用,再和噪声 n ( x , y ) n(x,y) n(x,y) 进行叠加,形成退化后的图像 g ( x , y ) g(x,y) g(x,y) 。
下图表示退化过程的输入和输出之间的关系,其中 H ( x , y ) H(x,y) H(x,y) 概括了退化系统的物理过程,它就是我们要寻找的退化数学模型
通常,我们假设图像经过的退化系统是线性非时变系统,线性非时变系统具有如下四个基本性质:
H H H 的四个性质(假设噪声 n ( x , y ) = 0 n(x,y) = 0 n(x,y)=0 )
如果 f 2 ( x , y ) = 0 f_2(x,y) = 0 f2(x,y)=0,则:
H [ k 1 f 1 ( x , y ) ] = k 1 H [ f 1 ( x , y ) ] H[k_1f_1(x,y)] = k_1H[f_1(x,y)] H[k1f1(x,y)]=k1H[f1(x,y)]
结论
:线性系统对常数与任意输入的乘积的响应等于常数与输入的响应的乘积
如果 k 1 = k 2 = 1 k_1 = k_2 = 1 k1=k2=1,则:
H [ f 1 ( x , y ) + f 2 ( x , y ) ] = H [ f 1 ( x , y ) ] + H [ f 2 ( x , y ) ] H[f_1(x,y)+f_2(x,y)] = H[f_1(x,y)] + H[f_2(x,y)] H[f1(x,y)+f2(x,y)]=H[f1(x,y)]+H[f2(x,y)]
结论
:两个图像和的退化结果等于它们分别退化结果之和(说明线性系统对两个输入图像之和的响应等
于它对两个输入图像响应的和)。
H [ k 1 f 1 ( x , y ) + k 2 f 2 ( x , y ) ] = k 1 H [ f 1 ( x , y ) ] + k 2 H [ f 2 ( x , y ) ] H[k_1f_1(x,y)+k_2f_2(x,y)] = k_1H[f_1(x,y)] + k_2H[f_2(x,y)] H[k1f1(x,y)+k2f2(x,y)]=k1H[f1(x,y)]+k2H[f2(x,y)]
结论
:两个图像的加权和的退化结果等于它们分别退化结果的加权和。
H [ f 1 ( x − a , y − b ) ] = g ( x − a , y − b ) ] H[f_1(x-a, y-b)] = g(x-a, y-b)] H[f1(x−a,y−b)]=g(x−a,y−b)]
结论
:原始图像偏移多少,响应的退化图像也偏移多少,说明线性系统在图像任意位置的响应只与在该位置的输入值有关而与位置本身无关
根据这些特点,输入信号与其经过线性非时变系统的输出信号之间的关系,以及傅里叶变换的性质,我们得到如下时域及频域的关系表达式:
即:在时域上分析时,原始图像经过退化系统后得到的退化图像 g ( x , y ) g(x,y) g(x,y) 等于原始输入图像 f ( x , y ) f(x,y) f(x,y) 与系统冲激响应 h ( x , y ) h(x,y) h(x,y) 的卷积再加上噪声信号。
在频(率)域上分析时,退化图像的傅里叶变换 G ( u , v ) G(u,v) G(u,v)等于原始图像的傅里叶变换 F ( u , v ) F(u,v) F(u,v) 与退化系统的频率响应 H ( u , v ) H(u,v) H(u,v) 相乘,再加上噪声信号的傅里叶变换 N ( u , v ) N(u,v) N(u,v)
由于许多种退化都可以用线性位移不变模型来近似,这样线性系统中的许多数学工具如线性代数,能用于求解图像复原问题,从而使运算方法简捷和快速。
当退化不太严重时,一般用线性位移不变系统模型来复原图像,在很多应用中有较好的复原结果,且计算大为简化。
实际上,尽管非线性和位移可变的情况能更加准确而普遍地反映图像复原问题的本质,但在数学上求解困难。只有在要求很精确的情况下才用位移可变的模型去求解,其求解也常以位移不变的解法为基础加以修改而成。
换句话说,就是利用了:线性系统的计算简洁快速,同时它也是非线性和位移可变系统的基础,非线性位移可变系统的求解可以转化为线性移不变求解。
根据上述所介绍的图像退化与复原的概念以及图像退化模型,如下图所示,原始图像 f ( x , y ) f(x,y) f(x,y) 经过退化系统 H H H 以及噪声 n ( x , y ) n(x,y) n(x,y) 的影响后得到退化后的图像 g ( x , y ) g(x,y) g(x,y) ,经过复原系统 M M M 将 g ( x , y ) g(x,y) g(x,y) 尽最大可能恢复到近似原图 f ’ ( x , y ) f’(x,y) f’(x,y) ,因此,对图像的复原可以看作是图像退化的逆过程。
由图像的退化模型及图像复原的基本过程可见,复原处理的关键在于对系统 H 的基本了解。由信号与系统的时域和频域分析与处理理论可知,对退化图像的恢复可以在时域或者频域来完成,时域是通过卷积实现,卷积是积分求和的过程,根据傅里叶变换的时域卷积性质,可以知道,频域
处理是通过乘积来实现。乘法计算比卷积计算简单,同时傅里叶变换的快速实现(FFT)使得对图像的频率域处理更为简单。因此,可以在频率域来解决该问题。
设图像退化前的傅里叶变换为 F ( u , v ) F(u, v) F(u,v) ,退化后的傅里叶变换为 G ( u , v ) G(u, v) G(u,v) ,系统函数即退化函数的傅里叶变换为 H ( u , v ) H(u,v) H(u,v) ,从频率域角度看,它使图像退化,因而反映了成像系统的性能。由前面得知的图像退化频域描述模型(如下式)
进行反傅立叶变换可得到 f ( x , y ) f(x, y) f(x,y)
以上就是逆滤波复原的基本原理。将 1 / H ( u , v ) 1/H(u, v) 1/H(u,v) 称为逆滤波器。
该过程就是用退化函数除退化图像的傅里叶变换,得到退化前图像的傅里叶变换的估计,因此叫直接逆滤波图像复原,该方法是对经退化函数 H 退化的图像进行复原的最简单方法。
由该式可知,即使知道退化函数,也不能准确的复原图像,因为 $N(u, v) $未知,甚至有更糟的情况是
如果退化函数是零或是非常小的值时,则噪声与退化函数的壁纸 N ( u , v ) / H ( u , v ) N(u, v) /H(u, v) N(u,v)/H(u,v)比较大,很容易支配 F ( u , v ) F (u ,v ) F(u,v)的估计值,会对逆滤波复原的图像产生很大的影响,有可能使恢复得到的图像与原始 f ( x , y ) f(x,y) f(x,y)相差很大,甚至面目全非。
解决这个问题的一种方法是限制滤波的频率,从频谱图可知,高频分量(通常对应的是噪声信号)的值接近 0,而 H ( 0 , 0 ) H(0,0) H(0,0) 在频率域中通常是 H ( u , v ) H(u, v) H(u,v) 的最高值。因此可缩短滤波半径,使通过的频率接近原点,减少遇到零值的概率。
逆滤波复原过程可归纳如下:
(1) 对退化图像 g ( x , y ) g(x,y) g(x,y) 作二维离散傅立叶变换,得到 G ( u , v ) G(u,v) G(u,v) ;
(2) 计算系统点扩散函数(即退化函数) h ( x , y ) h(x,y) h(x,y) 的二维离散傅立叶变换,得到 H ( u , v ) H(u,v) H(u,v) ;
(3) 逆滤波计算 F ( u , v ) = G ( u , v ) / H ( u , v ) F (u, v) = G(u, v)/ H(u, v) F(u,v)=G(u,v)/H(u,v);
(4) 计算 F ( u , v ) F(u, v) F(u,v) 的逆傅立叶变换,求得 f ( x , y ) f(x, y) f(x,y) 。
但实际获取的影像都有噪声,因而只能求 F ( u , v ) F(u,v) F(u,v) 的估计值 ˆ F ( u , v ) ˆF(u, v) ˆF(u,v) 。
若噪声存在,为减少噪声对复原信号的影响,则将
H − 1 ( u , v ) H^{-1}(u, v) H−1(u,v)进行调整,
(1) 在 H ( u , v ) = 0 H(u, v) = 0 H(u,v)=0 附近,人为地仔细设置 H − 1 ( u , v ) H^{-1}(u, v) H−1(u,v) 使得复原信号受噪声影响变小
(2) 使 H ( u , v ) H(u, v) H(u,v) 具有低通滤波性质
通过上面的傅里叶逆变换得到的复原图像。以 Lena 图像为例,采用上述逆滤波方法进行图像复原
的结果如图所示:
从该逆滤波图像复原结果可以看出,选择不同半径的效果,其中滤波半径为 78 时恢复效果较好。
逆滤波复原方法数学表达式简单,物理意义明确,但没有清楚地说明如何处理噪声,因此,在逆滤波理论基础上,从统计学观点出发,综合退化函数和噪声统计特性两个方面来设计图像复原滤波器,比如维纳滤波器就能处理被退化函数退化和噪声污染的图像。该滤波方法建立在图像和噪声都是随机变量的基础之上,目标是找到未污染图像 f ( x , y ) f(x, y) f(x,y)的
的一个估计 f ′ ( x , y ) f'(x, y) f′(x,y) ,使它们之间的均方误差最小,即
其中 E . E{.} E. 是参数期望值,因此,维纳滤波是最小均方误差滤波方法。
针对不同的退化问题,图像复原的方法主要有:代数方法恢复、运动模糊恢复、逆滤波恢复、维纳滤波恢复、功率谱均衡恢复、约束最小平方恢复、最大后验恢复、最大熵恢复、几何失真恢复。
在诸如数字识别、车牌识别、条形码识别、遥感影像信息提取等应用场景中,特别是基于日常便携图像采集设备的应用场景中,通过图像采集设备所获取的图像不可避免地存在运动模糊、畸变失真退化等成像问题。如用广角镜头拍出的照片中远处的建筑物通常是歪斜的,在翻拍旧照片的时候常常拍出畸形的结果、卫星拍摄影像自身的姿态不稳定以及地面起伏等原因造成的影像畸变等。因此,需要对这样的图像进行几何校正。
在实际的成像系统中,图像捕捉介质平面和物体平面之间不可避免地存在有一定的转角和倾斜角。
转角对图像的影响是产生图像旋转,倾斜角的影响表现为图像发生投影变形。另外一种情况是由于摄像机系统本身的原因导致的镜头畸变。此外,还有由于物体本身平面不平整导致的曲面畸变如柱形畸变等。这些畸变统称为几何畸变。
光学系统、电子扫描系统失真而引起的斜视畸变、投影畸变、枕形、桶形畸变、混合畸变、柱面畸变等,都可能使图像产生几何特性失真,这些系统失真导致的常见的图像几何畸变如图所示:
几何畸变又可分为线性几何畸变和非线性几何畸变。通常情况下,线性几何畸变指缩放、平移、旋转等畸变。而非线性几何畸变是由成像面和物平面的倾斜、物平面本身的弯曲、光学系统的像差造成的畸变,表现为物体与实际的成像各部分比例失衡。
常见几何畸变退化问题的复原大多是基于成像系统,如模拟鱼眼和针孔系统进行摄像机标定,通过确定摄像机畸变参数对所获取图像进行后续校正和复原处理。其优点是一旦确立成像模型,便可以快速有效地根据模型参数对基本图像进行几何变换,从而实现复原。
但通常情况下我们面临的图像其成像系统未知且多样化,因此,这种方法不适合于解决一般性无法预知模型的畸变退化。
比如由成像面不平整造成的曲面畸变。因此,另外一种常见的解决方法是多项式变换技术,其实质是利用数值分析的方法求解几何变换方程。其优点是不需要预先知道成像模型,对复杂曲面畸变能够进行校正和复原。缺点是运算量大,不适宜实时性较高系统,对多项式次数和控制点的选
取要求严格,发生复原失控的概率很大,不适用于一些只存在投影变换和镜头畸变的图像。
这里我们重点介绍基于多项式变换的几何校正方法,其基本流程是先建立几何校正的数学模型,比如针对畸变特点选择一次多项式或者二次多项式作为几何校正的数学模型;其次利用已知条件确定模型参数,通常以标准未畸变影像为参考,由用户在参考影像与畸变影像上选择控制点(同名点),从而解算出多项式系数,即确定出模型参数;最后根据模型对图像进行几何校正。
通常由如下两步来完成:
(1)图像空间坐标变换(确定校正后图像中每个像素的空间坐标);首先建立图像像点坐标(行、列号)和物方(或参考图)对应点坐标间的映射关系,解求映射关系中的未知参数,然后根据映射关系对图像各个像素坐标进行校正
(2)灰度内插(确定校正影像中每个像素的灰度值)
实际工作中常以一幅图像为基准,去校正另一幅几何失真图像。通常设基准图像 f(x,y)是利用没畸变或畸变较小的摄像系统获得的,而有较大几何畸变的图像用 g(x´,y´)表示,下图是一种畸变情形。
设两幅图像几何畸变的关系能用解析式描述为
x ′ = h 1 ( x , y ) , y ′ = h 2 ( x , y ) x' = h_1(x, y), y' = h_2(x, y) x′=h1(x,y),y′=h2(x,y)
通常 h 1 ( x , y ) h_1(x,y) h1(x,y) 和 h 2 ( x , y ) h_2(x,y) h2(x,y)可用多项式来近似
上述式子中包含 a 0 0 、 a 1 0 、 a 0 1 、 b 0 0 、 b 1 0 、 b 0 1 a_00、a_10、a_01 、b_00、b_10、b_01 a00、a10、a01、b00、b10、b01 6 个未知数,至少需要 3 个已知点来建立方程式,解求未知数。
包含 12 个未知数,至少需要 6 个已知点来建立关系式,解求未知数。
几何校正方法可分为直接法和间接法两种。
利用若干已知点(就是通常所说的控制点)坐标,根据参考图像中像素坐标与校正后影像的像素
坐标的对应关系,如下式所示,(x, y)为参考图像坐标,(x’, y’)为(x, y)对应的校正后影像坐标:
通过解求未知参数得到二者的对应关系;然后如上图实线箭头所示,从畸变图像出发,根据上述关系依次计算每个像素的校正坐标,同时把像素灰度值赋予对应像素,这样生成一幅校正图像。
该方法存在的一个问题是图像像素分布是不规则的,会出现像素挤压、疏密不均等现象,不能满足原始未畸变影像的要求,因此最后还需对不规则图像通过灰度内插生成规则的栅格图像。
先根据下式
对如图所示的畸变图像的四个角点 a、b、c、d 进行坐标变换,获得 a´、b´、c´、d´。由此确定校正图像的范围。再按下式
反求像点(x, y)在已知畸变图像上的坐标(x’, y’)。由于计算所得的 (x’, y’)坐标值一般不为整数,不会位于畸变图像像素中心,因而不能直接确定该点的灰度值,而只能在畸变图像上,由该像点周围的像素灰度值通过内插,求出该像素的灰度值,作为(x, y)点的灰度。按上述步骤获得校正图像。
由于间接法内插灰度容易,所以一般采用间接法进行几何纠正。
常用的像素灰度内插法有最近邻元法、双线性内插法和三次内插法三种。
在待求点的四邻像素中,将距离这点最近的相邻像素灰度赋给该待求点,如下图所示,十字点为计算所得坐标位置,其距离左上角给予红色标记的像素最近,因此,将该红色像素的灰度值赋给纠正后对应的像素。
该方法最简单,效果尚佳,但校正后的图像有明显锯齿状,即存在灰度不连续性
双线性内插法是利用待求点四个邻像素的灰度在两个方向上作线性内插。如图,下面推导待
求像素灰度值的计算式
对于黄线连接的位置 ( i , j + v ) (i,j+v) (i,j+v) ,图中的黄点所示,有 f ( i , j + v ) = [ f ( i , j + 1 ) − f ( i , j ) ] v + f ( i , j ) f(i,j+v)=[f(i,j+1)-f(i,j)]v +f(i,j) f(i,j+v)=[f(i,j+1)−f(i,j)]v+f(i,j)
对于绿线连接的位置 ( i + 1 , j + v ) (i+1,j+v) (i+1,j+v) ,图中的蓝点所示有 f ( i + 1 , j + v ) = [ f ( i + 1 , j + 1 ) − f ( i + 1 , j ) ] v + f ( i + 1 , j ) f(i+1,j+v)=[f(i+1,j+1)- f(i+1,j)]v+f(i+1,j) f(i+1,j+v)=[f(i+1,j+1)−f(i+1,j)]v+f(i+1,j)
对于红线连接的位置 ( i + u , j + v ) (i+u,j+v) (i+u,j+v) ,图中的红点所示,即待求点,有
f ( i + u , j + v ) = [ f ( i + 1 , j + v ) − f ( i , j + v ) ] u + f ( i , j + v ) f(i+u,j+v)=[f(i+1,j+v)-f(i,j+v)]u+f(i,j+v) f(i+u,j+v)=[f(i+1,j+v)−f(i,j+v)]u+f(i,j+v)
结合前面两个计算结果,得到上式,校正点像素灰度值为相邻四个像素的线性加权和,因此,称为线性内插
该方法要比最近邻元法复杂,计算量大。但没有灰度不连续性的缺点,结果令人满意。它具有低通滤波性质,使高频分量受损,图像轮廓有一定模糊。
该方法利用三次多项式 S ( x ) S(x) S(x)来逼近理论上的最佳插值函数 s i n ( x ) / x sin(x)/x sin(x)/x 。其数学表达式为:
红色像素为(x,y)像素坐标邻近原图像坐标(i,j),以该(i,j)为参考,取(x,y)周围 16 个像素,它们的坐标以此为左上角(i-1,j-1),右上角(i-1,j+2),左下角(i+2,j-1),右下角(i+2,j+2).
待求像素(x,y)的灰度值由其周围十六个点的灰度值加权内插得到。可推导出待求像素的灰度计算式如下:
f ( x , y ) = A ‧ B ‧ C f(x,y)=A‧B ‧ C f(x,y)=A‧B‧C
其中
u,v 为内插点距离其最邻近像素 f (i,j) 的距离该算法计算量最大,但内插效果最好,精度最高。
下图给出了三种不同像素灰度内插方法的效果,可以看出,三次内插法效果最好,最平滑
几何畸变校正一般要使用几何(坐标)变换,包括平行移动、旋转、扩大缩小等简单的变换。同时,图像处理时,往往会遇到需要对图像进行放大、缩小、旋转等操作。这节课我们来讲解图像的几何变换,主要涉及到图像的缩放、旋转和平移
从变换的性质分, 图像的几何变换有平移、比例缩放、旋转、反射和错切等基本变换,透视变换等复合变换,以及插值运算等。
几何变换是将图像的坐标进行变换,这些几何变换可以用统一的数学模型来描述,我们先来认识一个概念,叫齐次坐标
将 2D 图像中的点坐标(x, y) 表示成齐次坐标(Hx, Hy, H),当 H=1 时,则(x, y, 1)就称为点(x, y)的规范化齐次坐标。
规范化齐次坐标的前两个数是相应二维点的坐标, 没有变化,仅在原坐标中增加了 H=1 的附加坐标。
由点的齐次坐标(Hx, Hy, H)求点的规范化齐次坐标(x, y, 1),可按如下公式进行
齐次坐标的几何意义相当于点 ( x , y ) (x, y) (x,y) 落在 3D 空间 H = 1 H=1 H=1 的平面上, 如果将 XOY 平面内的三角形 abc 的各顶点表示成齐次坐标 ( x i , y i , 1 ) ( i = 1 , 2 , 3 ) (x_i, y_i, 1)(i=1, 2, 3) (xi,yi,1)(i=1,2,3)的形式,就变成 H=1 平面内的三角形 a 1 b 1 c 1 a_1b_1c_1 a1b1c1 的各顶点。
图像比例缩放变换:指将给定的图像在 x 轴方向按比例缩放 fx 倍,在 y 轴方向上按比例缩放 fy 倍,从而获得一幅新的图像。比例缩放前后两点 P 0 ( x 0 , y 0 ) P0(x_0, y_0) P0(x0,y0) 、 P ( x , y ) P(x, y) P(x,y) 之间的关系用矩阵形式可以表示为:
大变小需要坐标取整
放大
在图像放大的正变换中,出现了很多的空格。因此,需要对放大后所多出来的一些空格填入适当的像素值。一般采用最邻近插值和线性插值法。
图像平移变换:图像平移是将一幅图像中所有的点都按照指定的平移量在水平、垂直方向移动,平移后的图像与原图像相同
图像的镜像变换不改变图像的形状。图像的镜像(Mirror)变换分为水平镜像和垂直镜像。
设原图宽为 w,高为 h,变换后,图的宽和高不变。
一般图像的旋转是以图像的中心为原点,旋转一定的角度,即将图像上的所有像素都旋转一个相同的角度。
利用公式进行图像旋转正变换时需要注意如下两点:
1、为了避免图像信息的丢失,图像旋转后必须进行平移变换。
2、图像旋转之后,会出现许多空洞点,如图所示,我们需要对这些空洞点必须进行填充处理,否则图像旋转后的效果不好,需要做插值处理,可采用行或列插值方法。最简单的插值方法是,图像旋转前某一点 ( x , y ) (x, y) (x,y)的像素点颜色,除了填充在旋转后坐标 ( x ’ , y ’ ) (x’,y’) (x’,y’)上外,还要充 ( x ’ + 1 , y ’ ) (x’+1, y’) (x’+1,y’)和 ( x ’ , y ’ + 1 ) (x’, y’+1) (x’,y’+1) 。
其逆运算为:
图像绕任意点旋转:上述的旋转是绕坐标轴原点(0,0)进行的,如果是绕某一个指定点(a,b)旋转,则先要将坐标系平移到该点,再进行旋转,然后将旋转后的图像平移回原坐标系。
例如,我们这里以图像的中心为旋转中心: