摘要 提取杨氏干涉光学条纹的中心线是自动化测量杨氏干涉光学条纹间距的重要过程,本文对此进行详细介绍。首先,搭建杨氏双缝干涉实验的光路,并用数码相机采集干涉条纹,将采集的信息以图片的形式储存到计算机中。然后,采用MATLAB软件编程对杨氏干涉光学条纹图像进行读取、图像类型的转换、图像的增强、中值滤波、自适应滤波、图像的细化、像素的测量等。最后,利用长度比对方法实现条纹间距测量,由此算得发射激光的波长。激光波长的测试值接近参考值,绝对误差、相对误差均在较小范围内,由此验证处理后的杨氏干涉光学条纹图像信息的完整性、以及条纹间距自动测量方法的可行性。
关键词:干涉条纹;图像处理;条纹中心;细化
1.引言:
条纹间距的自动检测是利用长度比对的方法,即待测长度与选定的标准长度按比例换算,得到条纹间距。主要分三步骤,首先搭建杨氏干涉条纹实验装置,然后处理杨氏干涉条纹图像,最后实现条纹间距的自动测量。
2.搭建光路
2.1 杨氏干涉条纹实验原理
1801年,托马斯·杨采用单色激光照射屏上的两个缝隙,获得两个相干的光波,进行光的干涉实验,装置如图2-1[1]。
.png)
图2-1 杨氏双缝干涉实验装置
条纹间距与条纹的级数k无关。若已知d和D,又测出,则可算出入射光的波长:
.png)
(1-1)[2]
2.2实验装置
图2-2为杨氏干涉光学条纹间距测量的实验流程图。
图2-2流程图
其中,实验用的激光器为氦氖激光器,波长为632.8nm;数码相机分辨率为3 6482 736;两个狭缝之间的距离d=0.2 mm。
3.基于Matlab 软件对干涉条纹进行图像处
数码相机是将数字技术与传统的相机相结合,可采集杨氏干涉光学条纹的图像,然后以图片的形式储存,图片中存在的干扰噪声需要预处理。常用的预处理的方法多种多样。杨氏干涉光学条纹经过预处理后再细化,可以得到光学条纹的中心线。MATLAB可用于图形处理 [3],因而采用MATLAB软件编程自动测量杨氏干涉光学条纹的间距。
3.1测条纹间距像素的程序
具体程序:
I1= imread('C:\Program Files\MATLAB\R2008a\work\feng.jpg','jpeg');
imshow(I1);
I1=rgb2gray(I1);
I1=adapthisteq(I1);
figure
imshow(I1)
I1=medfilt2(I1);
I1=medfilt2(I1);
figure
imshow(I1)
I1=wiener2(I1,[11 11]);
I1=wiener2(I1);
figure
imshow(I1)
I1=im2bw(I1,0.5);
figure
imshow(I1);
I2= bwmorph(I1,'thin',Inf);
figure
imshow(I2);
[x,y]=getline
l=sqrt((x(1)-x(2))^2+(y(1)-y(2))^2)
该程序首先读取图像,然后图像增强、中值滤波、自适应滤波,最后图像细化,提取干涉条纹中心。
整个程序的流程图如图3-1。
.png)
图3-1 测量条纹间距像素的流程图
3.2 处理结果
采用以上步骤对三个杨氏干涉光学条纹进行图像处理、间距测量。第一个图像的运行结果如图3-2。
a) b) c)
d) e) f)
g)
图3-2 a)原图、b)图像增强、c)中值滤波、d)自适应滤波、
e)二值化、f)细化、g)条纹间距像素的显示
第二个图像的运行结果如图3-3。
a) b) c)
d) e) f)
g)
图3-3 a)原图、b)图像增强、c)中值滤波、d)自适应滤波、
e)二值化、f)细化、g)条纹间距像素的显示
第三个图像的运行结果如图3-4。
a) b) c)
d) e) f)
g)
图3-4 a)原图、b)图像增强、c)中值滤波、d)自适应滤波、
e)二值化、f)细化、g)条纹间距像素的显示
在上述三组实验中,g)图的Commmand Window指令窗中的(x,y)为鼠标所选的点,d为条纹间距的像素。以上三个Commmand Window指令窗中的d分别近似为52、77、114。
3.3测标准长度像素的程序及运行结果
3.3.1具体程序:
x=imread('C:\Program Files\MATLAB\R2008a\work\fengy.jpg','jpeg');
imshow(x);
[m,n]=getline
f=sqrt((m(1)-m(2))^2+(n(1)-n(2))^2)
3.3.2 实验数据处理
=d\f10mm
式中:10mm是标准长度的实际值。
(1)第一个干涉条纹的间距:
=52\14010mm=3.71mm
(2)第二个干涉条纹的间距:
=77\23610mm=3.26mm
(3)第三个干涉条纹的间距:
=114\29410mm=3.88mm
表3-1实验数据处理
.png)
上述三组数据的绝对误差分别为:
===4(nm)
===6.4(nm)
===16.9(nm)
上述三组数据的相对误差分别为:
/=4nm/632.8nm=0.63%
/=6.4nm/632.8nm=1.01 %
/=16.9nm/632.8nm=2.67%
其中,、分别为波长的理论值和测量值。
=nm=627.8nm
其中,为测量的波长的平均值。
因此,测量波长的相对误差和绝对误差均很小,接近于波长的理论值,该测量条纹间距的方法是可行的。
4.结论
本文共进行了三组杨氏干涉光学条纹图像的自动处理,获得了三个光波长度的测试值。实际测量的波长分别为628.8nm、639.2nm、615.9nm,波长的平均值为627.8,相对误差分别为:0.63%、1.01%、2.67%。条纹间距以及光波波长的测量均很准确,因而该条纹自动处理方法是可行的,处理后干涉条纹信息是完整的。
参考文献
[1] 王宏波,曹文,冯玉琴. 大学物理实验[M]. 哈尔滨: 东北林业大学出版社, 2004.
[2] 梁铨廷. 物理光学[M]. 北京: 机械工业出版社, 1982.
[3] 董长虹. Matlab图像处理与应用 [M]. 北京: 国防工业出版社, 1989, 65-116.