当前位置:文档之家› 数字图像处理畸变校正

数字图像处理畸变校正

数字图像处理畸变校正 数 字 图 像 处 理

图像畸变及校正 1 图像畸变介绍 从数字图像处理的观点来考察畸变校正, 实际上就是一个图像恢复的过程, 就是对一幅退化了的图像进行恢复。在图像处理中,图像质量的改善与校正技术,也就就是图像复原,当初就是在处理从人造卫星发送回来的劣质图像的过程中发展、完善的。目前,图像畸变校正的应用领域越来越广,几乎所有涉及应用扫描与成像的领域都需要畸变校正。图像在生成与传送的过程中,很可能会产生畸变,如:偏色、模糊、几何失真、几何倾斜等等。前几种失真主要就是体现在显示器上,而后一种失真则多与图像集角度有关。不正确的显影,打印、扫描,抓拍受反射光线的影响等方式,都会使图像产生偏色现像。模糊、几何畸变主要就是在仪器采集图片过程中产生,大多就是因机器故障或操作不当影响导致,如在医学成像方面。而几何空间失真广泛存在于各种实际工程应用中,尤其就是在遥感、遥测等领域。 2 畸变产生的原因 在图像的获取或显示过程中往往会产生各种失真(畸变):几何形状失真、灰度失真、颜色失真。引起图像失真的原因有:成像系统的象差、畸变、带宽有限、拍摄姿态、扫描非线性、相对运动等;传感器件自身非均匀性导致响应不一致、传感器件工作状态、非均匀光照条件或点光源照明等;显示器件光电特性不一致;图像畸变的存在影响视觉效果,也就是影响图像检测系统的形状检测与几何尺寸测量精度的重要因素之一。 3 图像畸变校正过程所用到的重要工具 灰度直方图就是关于灰度级分布的函数,就是对图象中灰度级分布的统计。灰度直方图就是将数字图象中的所有像素,按照灰度值的大小,统计其所出现的频度。通常,灰度直方图的横坐标表示灰度值,纵坐标为想像素个数。直方图上的一个点的含义就是,图像存在的等于某个灰度值的像素个数的多少。这样通过灰度直方图就可以对图像的某些整体效果进行描述。从数学上讲,图像的灰度直方图就是图像各灰度值统计特征与图像灰度值出现的频率。从图形上来讲,它就是一个一维曲线,表征了图像的最基本的统计特征。 作为表征图像特征的信息而在图像处理中起着重要的作用。由于直方图反映了数字图像处理畸变校正 图像的灰度分布状况,所以从对图像的观察与分析,到对图像处理结果的评价,灰度直方图都可以说就是最简单、最有效的工具。 4 图像颜色畸变校正介绍 图像颜色畸变现象可以就是由摄像器材导致,也可以就是由于真实环境本身就偏色导致,还有的就是由于图像放置过久氧化、老化导致。无论其产生的原因如何,其校正方法都就是类似的。 如果用Matlab显示颜色畸变的图像RGB基色直方图 ,发现相对正常图像,颜色畸变的图像的直方图的三种基色的直方图中至少有一个直方图的像素明显集中集中在一处,或则集中在0处或则集中在255处,而另一部分有空缺,或则集中在中间而两边空,因此通过调整该直方图的像素点的像素值在区间[0,255]上的分布来解决图像颜色畸变问题。如果直方图中像素集中在0一边则说明该基色偏暗,如果集中在255处则说明该基色偏亮。下图就是一有颜色畸变的图像的基色B的直方图。

图1 基色B的直方图 很明显几乎所有像素点都集中在区间[a,b]上,这就是偏暗的情况。那么要做的就是把代表基色B的矩阵的数据拉伸,使得区间[a,b]扩大为区间[a,c]。只要做以下处理即可得到以上目的。对每一个x ,x在[a,b]上,x*(c-a)/(b-a),而所有的y,y在区间[b,c]上,y=c,c=255。 MATLAB中的算法实现如下: function dealcolor(pic,k,d) a=imread(pic); %提取指定图像到矩阵a b=double(a); %将矩阵a的数据转化为double型 [m,n]=size(b(:,:,k)); %取图像矩阵的行列数 fr=255/d; %设定拉伸系数 for i=1:m % 二重循环 对矩阵内的每一个数据进行处理 for j=1:n bm=b(i,j,k)*fr; % 拉伸处理 if bm>255 %将所有值大于255的点都设为255 bm=255; 数字图像处理畸变校正 end b(i,j,k)=bm; end end c=uint8(b); %将矩阵b转化为8个字节的整型数据 image(c); %显示处理过的图像 注释:a ——— 要处理的图像矩阵,就是一个三维矩阵 pic ——— 要处理的图像的路径 k ——— 要处理的第几个基色矩阵,1、2、3分别代表R、G、B d ——— 向量,它的值就是要拉伸的像素值中的最大值,0~255之间

5 图像模糊校正算法介绍 图像的灰度变化情况可以表现为一曲线。当读入一个图像后,灰度变化就转变成了矩阵数据的变化。反映数据变化的数学手段可以采用微分算子。从数学的微分含义来瞧,“一阶微分”就是描述“数据的变化率”,“二阶微分”就是描述“数据变化率的变化率”。在感应灰度变化方面,二阶微分比一阶微分更具敏感性,尤其就是对斜坡渐变的细节。因此采用二阶微分算子来处理。 最简单的各向同性微分算子就是拉普拉斯微分算子。设原图为f(x,y),一个二

维的拉普拉斯微分算子定义为:22222yfxff 将它展开就得到 )1,()1,(),1(),1(),(42yxfyxfyxfyxfyxff。写成图像处理运

算模版的形式就就是010141010L。 设处理后的图像为g(x,y),则 ),(),(),(2yxfyxfyxg。用模板表示则就是



0101510100L,模板中心点就就是要处理的像素点。如果连对角线方向都考

虑的话,模板的形式就表现为1111911111L。 由于模板就是一个3阶矩阵,所以模板处理不了图像矩阵边缘的点。将这些处理不了的点像素值都设置为255。 在Matlab中的算法实现为: function pic_tem = pick_tem(b,x,y,j,tem_n) % b就是一个三维矩阵,j 就是代表数字图像处理畸变校正 第几层矩阵 %tem_n代表模板号0代表采用第一种模板,1代表采用第二种模板 if tem_n==0 %第一种模板 %返回二阶微分处理后的值 pic_tem=5*b(y,x,j)-(b(y,x-1,j)+b(y+1,x,j)+b(y-1,x,j)+b(y,x+1,j)); else %第二种模板 %返回二阶微分处理后的值 pic_tem=9*b(y,x,j)-(b(y-1,x-1,j)+b(y-1,x,j)+b(y-1,x+1,j)+b(y,x-1,j)+b(y+1,x+1,j)+b(y+1,x-1,j)+b(y+1,x,j)+b(y+1,x+1,j)); end function faintness(pic,tem_n) %pic代表处理的图片的路径,tem_n代表采用第几种模板 a=imread(pic); %导入图像,并把数据存放到三维矩阵a中 b=double(a); %将数据转化为双精度 [h,w,k]=size(b); %取矩阵的维数 g=zeros(h,w,k)+255; %生成一个与原图像矩阵有相同维数的矩阵g for y=2:h-1 %剔除图像矩阵最外一层的点,处理可以被模板包含的点 for x=2:w-1 for j=1:k g(y,x,j)=pick_tem(b,x,y,j,tem_n); %采用二阶微分算子处理,返回处理点(x,y)后的像素值 end end end image(uint8(g));%显示处理后的图像

6图像几何畸变校正算法介绍 对于畸变的光学系统,畸变空间中的直线在像空间中一般不再就是直线,而只有通过对称中心的直线就是例外。因此在进行桶形畸变校正时须先找出对称中心,再进行通用的几何畸变校正过程。 桶形畸变校正一般步骤: (1)找出畸变图对称中心,将畸变图代表的地址空间关系转换为以对称中心为原点的空间关系。 (2)空间变换:对输入图像(畸变图)上像素重新排列以恢复原空间关系。即利用地址映射关系为校正图空间上的每一个点找到它们在畸变图空间上的对应点。 (3)灰度插值:对空间变换后的像素赋予相应的灰度值以恢复原位置的灰度值。 几何畸变的校正要使用几何(坐标)变换,包括平行移动、旋转、扩大缩小等简单的变换。 在这里,先在直角坐标系下研究地址映射关系,在程序中则使用矩阵坐标系。设[f(x,y)]就是原图,[f(u,v)]就是发生畸变后的图像。 数字图像处理畸变校正 畸变校正的基本思想就是,找出由(u,v) (x,y)的坐标变换T(地址映射),然后令:)),((),(vuTfyxf 为参数向量。若畸变只就是简单的纵横比的改变与倾斜,那么仿射变换可以校正这种畸变。取:FEDCBAT,,,,,: CBxAux ][FEvDuy x表示去最接近x的整数

若能得到参数的估计,问题就可以解决了。 但一般的畸变都不只就是简单的纵横比的改变与倾斜,通常遇到的都就是空间扭曲型几何畸变,俗语讲就就是橡胶层面拉伸。它就是曲线畸变,这里采用二次多项式来模拟它,可表示为: 25423210yaxyaxayaxaau(1) 25423210ybxybxbybxbbv(2)

同样,只要可以取得参数),(iiba的估计,畸变函数便可知,那么原则上,可以通过上式多项式变换来获得修正的空间扭曲映射。 (1)与(2)都就是一个有6个参数的二元二次方程,那么只要在畸变图与校正图上各取六对对应点(其中从校正图上的点就是估计值)就可以通过解方程组得到参数),(iiba的估计,理论上,取的对应点对数越多得到的参数),(iiba估计就越精确。设取m对对应点,用向量来表示为 ],...,,[21mtuuuU ],...,,[21mtvvvV





2222222222211121111............11mmmmmmyyxxyxyyxxyxyyxxyxA

其系数 ],...,,[10mtaaaa ],...,,[10mtbbbb 假设所取的m对对应点组成的矩阵A可逆,也就就是说m对对应点线性不相关,则容易计算得到系数),(iiba:UAa VAb 由于采用灰度插值,所以在校正的处理过程就是对校正图上每一点映射到畸变图,然后通过灰度插值来得到这一点的灰度值。因此校正所采用的就是地址逆映射: ayxyxyxu*,,,,,122 byxyxyxv*,,,,,122 ()

相关主题