干涉条纹图的数字图像处理
滤波
由于CCD 拍摄的图像中存在很大的噪声,滤除噪声的干扰对后期的处理相当重要。
由于噪声的多样性,本文采用W iener 自适应滤波【】,W iener 自适应滤波根据图像的局部方差来调整滤波器的输出。
当局部方差大时,滤波器平滑效果强。
对灰度图中的每一个像素点()j i f ,, W iener 滤波器采用的算法首先估计出像素的局部矩阵μ和方差2σ:
()∑∈=ημj i j i f MN ,,1
(1)
()2,22,1μση-=∑∈j i j i f MN (2)
η是图像中每个像素的N M ⨯的邻域。
个像素利用W iene 旎波器估计出其灰度值:
()()()μσ
νσμ--+=j i f j i b ,,222 (3) 式中:2ν是图像中噪声的方差。
细化处理
对滤波后的图像先进行二值化,并对二值化的干涉条纹进行细化处理【】。
干涉条纹的细化难点在于解决骨架的抽取,防止断点出现和剔除毛刺。
基于以上的考虑,本文利用数学形态学【】中的零交叉细化法来进行图像的细化。
其优点是对条纹的平滑和骨架抽取同时进行,并且可以有效地防止分支和解决易产生断点的问题,其算法如下。
图1所示为图像中的一个3x3区域,各点标记名称为
9321,,,,P P P P ⋅⋅⋅,
,其中1P 位于中心,若11=P (即黑点),下而4个条件如果同时满足,则删除()011=P P 。
()()()()⎪⎪⎩⎪⎪⎨⎧≠=⨯⨯≠=⨯⨯=≤≤10Z 01001062464228
4211P P P P P Z P P P P Z P NZ 或者或者 (4)
图1图像区域
根据上而的算法,对图像中的每一点重复这一步骤,直到所有的
点都不可删除为止,图像便可得到细化。
13亚像素边缘检测
对细化后的图像利用Zemike 正交矩【】对边缘进行亚像素定位。
Zemike 矩是积分型算子,对噪声不敏感,建立理想的阶跃边缘模型如图2所示。
图2理想阶跃边缘模型
图2中:b 为单位圆内的背景灰度、h 为阶跃高度,;L 为边缘上的直线,;a 为圆盘中心到边缘的垂直距离,’e 为边缘与x 轴所成的角度。
Zemike 矩的多项式定义为
()θθρin nm nm e R V =, (5)
式中:nm R 是Zemike 矩的正交多项式。
图像()y x f ,的二维Zemike 矩在的条件下可表示为
()()θρ,,*nm x y
nm V y x f Z ∑∑= ( 6)
对于一幅大小N N ⨯的数字离散化二维图像的Zem ike 矩可以表示为
()()()y x V y x f N n A nm
N x N
y nm ,,11112∑∑==-+=π (7) 亚像素边缘检测公式中只用了00A ,11A ,20A ,它们对应的积分核函数
分别为100=V ,jy x V +=11,1222220++=y x V 。
图像旋转前后00A ,11A ,20A 关系式可以表达为0000'A A =,θj e A A 1111'=,2020'A A =。
对于图像中的每一个像
素点计算出其边缘参数d ,h ,b ,θ。
取阶跃灰度阂值τ和距离δ进行阂值处理,当τ≥11A ,21=≤δd 时,被检测的点即为亚像素边缘点。
亚像素边缘检测公式可以表达为⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡=⎥⎦⎤
⎢⎣⎡θ
θsin cos d y x y x s s 。
14应用最小二乘法拟合激光干涉条纹中心及半径
根据最小二乘原理[]圆拟合方法来拟合激光干涉条纹的轮廓。
圆心坐标为()b a ,,半径为r 的圆方程可表示为
()()222r b y a x =-+- (9)
令残差为
()()222r b y a x i i i --+-=ε (10)
式中:E i ∈,E 为所有边界的集合;()i i y x ,为图像边界点的坐标。
残差平方和函数为
()()[]
22222∑∑--+-==i i i i i r b y a x Q ε(11)
根据最小二乘原理,应有:
0=∂∂=∂∂=∂∂r
Q b Q a Q (12) 即:()()[]()()()()[]()()()()[]
()⎪⎪⎪⎩⎪⎪⎪⎨⎧=-•--+-=∂∂=--•--+-=∂∂=--•--+-=∂∂∑∑∑i i i i i i i i i i i r r b y a x r Q b y r b y a x b
Q a x r b y a x a Q 022022022222222222 (13)
N y x y x i n i m i n m ⎪⎭
⎫ ⎝⎛=∑ (14) 式中:N 表示图像的所有边界点个数。
由式(14)便可算出圆环参数a ,b ,r 为
由最小二乘原理圆拟合方法推导的激光干涉条纹中心及半径的检测算法虽然形式复杂,但仅对边界点循环一次就可计算出各参数,较为复杂的根方运算只是在计算出中心后求半径时计算一次,因此整个算法的计算速度将会很快。
2实验结果及分析
为了验证方法的有效性,本文进行了大量的验证试验,试验是在Pentnm 4 CPU 为3 00 GH 、内存为512MB 的计算机上进行的,编程语言为V isual C++ 6 0}
采用CCD 拍摄干涉条纹图像,经图像卡输入计算机,在屏幕上可显示放大的干涉条纹图像如图3a 所示,条纹的标准中心位置为(56,
84),单位为像素,图31)为滤波后的干涉条纹,可以明显看出,原图像噪声已经剔除,并得到了清晰的干涉条纹。
由于拍摄图像的边缘条纹不完整,灰度变化大,细化后很难保存完整的条纹,而中间条纹细化后保存完好,减少了分叉,得到了单像素的条纹,因此本文只处理0- 4级条纹。
利用最小二乘法拟合激光干涉条纹的中心及各级半径,对图像拟合100次取平均得到的结果如表1所示,算法运行时间如表2所示。
由表1可以看出,利用本文提出的方法来检测干,涉条纹的中心及半径,其中心像素误差低于0 5个像素,测量精度能够达到亚像素
级。
由表2可以看出算法所需时间平均在100ms以下,基本可以达到实时要求。
表1干涉条纹中心及半径测量结果。