APP下载

二维频域光学相干层析系统研究

2015-01-22游腾飞钟舜聪钟剑锋张秋坤罗曼婷

机电工程 2015年5期
关键词:移相器透明胶频域

游腾飞,钟舜聪,2*,钟剑锋,张秋坤,罗曼婷

(1.福州大学机械工程及自动化学院,福建福州350108;2.福建省医疗器械和生物技术重点实验室,福建福州350000)

0 引言

自1991年David Huang 等人[1]提出光学相干层析技术(optical coherence tomography,OCT)以来,该技术就得到了迅速的发展。OCT 技术朝着更高分辨率、实时性、功能化和信息特异化方向发展,同时,OCT 系统朝着小型化方向发展,更好地满足使用需求[2]。因为频域OCT 系统不需要参考臂进行深度方向的扫描,相比时域OCT 系统大大缩短了成像时间,使得OCT系统实时成像成为可能[3-5]。为了再提高成像速度,频域OCT 系统从一维频域OCT 系统发展到二维的频域OCT 系统[6-7]。因为二维系统一次采集成像便可产生二维的样品信息图像,相比一维OCT 系统需要进行多次采集来构成相同的二维的样品图像而言,二维OCT系统在成像速度上大为提高,提高了OCT 系统成像的实时性。

频域OCT 系统中包含CCD 相机、PZT 移相器、线性电动移动平台等,为此,研究者需要开发出能够协调驱动这些硬件的控制软件,使得所搭建的OCT 系统形成有机整体,并对数据进行处理和图像重构等工作。

VC++编程能力和代码的执行效率高,对硬件的控制能力强。但是在图形处理和数据分析运算等方面代码复杂、编程难度大,不利于需要图形处理和数据分析运算的软件的开发和维护。Matlab 具有强大的数据处理分析能力和绘图能力,使得其在算法研究等科学领域中广泛运用[8-12]。但是Matlab 代码不能离开其运行环境而独立运行,并对底层的硬件控制能力和效率都不如VC++高。为此,在软件开发过程中,要是能结合VC++和Matlab 各自的优点[13],就可以降低软件开发难道,提高软件的开发效率。

本研究采用VC++与Matlab 混合编程技术开发二维频域光学相干层析成像系统。

1 光学系统的搭建

二维相干层析系统示意图如图1所示。由图1 可见,和一维频域光学相干层析系统的组成相类似,二维相干层析系统可以分为:光源、样品臂、参考臂、信号探测端等部分。不同之处在于平行光入射到分光镜之前,会先经过柱透镜。经过柱透镜后,平行光会被汇聚成一条线。利用这条汇聚的光线照射到待测样品表面,那么一次采集便能生成这条光线上待测样品的结构信息。相比一维的单点成像需要多次采集而拼构成一条二维的待测样品的结构信息而言,二维的系统大大提高了成像速度。

图1 二维相干层析系统示意图

由图1 可见,光源发出的宽带弱相干光被透镜聚焦后进去光纤传输,而后从光纤输出的光通过透镜后准直成一束平行光。该束平行光通过柱透镜后聚焦成一条线,透过分光镜后,被分成两束。其中一束入射到PZT 参考镜中并被参考镜发射回来形成参考光;另一束入射到待测样品并被待测样品后向散射或者反射回来,形成样品光。参考光和样品光返回分光镜后相遇,倘若参考臂和样品臂光程在一个相干长度范围内,那么两束光将发生干涉,形成干涉光。该干涉光在被CCD 相机采集之前,还需要使用光栅将该干涉光按波长分开,最后被CCD 相机采集并上传到电脑中进行数据处理分析和图像重构。

系统中柱透镜使用型号为THORLABS 公司的LJ1821L1-B,焦距f=50 mm。线性移动平台使用THORLABS 公司型号为MTS50/M-Z8 的电动平台。该电动平台行程为50 mm,分辨率为29 nm。CCD 相机使用深圳迪美捷公司型号为DC140M 相机,该相机有效像素为1 360×1 024,在该分辨率下帧率为7.5 fps,像元尺寸为4.65 μm×4.65 μm。驱动PZT 移相器的NI 卡采用NI 公司型号为NI USB-6009 的NI 卡。该NI 卡具有12 位数字I/O 输出端,输出电压范围为0~5 V。

2 系统控制软件的开发

在硬件系统搭建完毕后,还需要开发出相应的控制软件系统,才能使整套系统正常工作,为后续对光学相干层析的研究提供便利。为获得高效的代码执行效率、硬件控制能力,以及数据分析和图像处理能力,本研究利用VC ++和Matlab 混合编程技术,充分利用软件各自的优点,开发高效的控制软件。

在VC++中调用Matlab 进行混合编程比较常用的方法有:①利用Matlab 引擎;②利用Matlab 自带的MCC 编译器;③利用MATCOM 编译器;④利用Matlab的COM Build 工具等方法。以上方法各具优点和不足,根据实际需要,选择合适的方法,才能取得事半功倍的效果。二维光学相干层析技术需要进行二维甚至三维的显示以及比较复杂的图像处理,如果能够充分利用Matlab 提供的图像工具箱和图像函数,那么对软件的开发将大大减小难度,代码直观,利于升级和维护。为此,选择在VC ++中调用Matlab 引擎的方法相比其他方法具有明显的优势。

基于VC ++和Matlab 开发的软件,所需驱动的硬件设备包括:①NI 卡,用于控制PZT 移相器产生移相;②线性电动移动平台,用于带动待测样品进行横向扫描;③面阵CCD 相机,用于对干涉光进行采集。这些设备产商都有提供SDK 工具包,便于根据需要进行二次开发。程序界面如图2所示。

图2 控制软件运行界面

如图2所示,软件主要包括干涉图像显示区、线性电动移动平台控制界面以及一些输入框和控制按钮。干涉图像显示区主要是用于显示CCD 相机采集到的干涉信号(如图2 中左半部分黑白相间的干涉条文)。CCD 相机自身可以根据光强条件自动调节曝光时间等参数,也可以根据需要人工对包括曝光时间、对比度等参数进行设定。

电动平台控制界面用于对线性电动移动平台的控制,达到对样品进行扫描的目的。可以根据需要设定电动平台的加速度、最大速度以及步进距离等运动参数。

当需要对待测样品进行实时成像的时候,本研究调节好光路,选择成像所需的方法,单机“监测数据”按钮,程序便开始驱动CCD 相机进行干涉信号的采集,驱动PZT 移相器移相以及调用Matlab 引擎进行数据处理分析和图像显示。

程序流程图如图3所示。

图3(a)为一次实时成像的流程图,在关闭实时成像之前,程序一直按照该流程进行重复的图像显示。各硬件初始化完成后,单击“监测数据”按钮,程序控制NI 卡输出预设定的电压(电压程序预设定好,也可根据需要在界面输入而修改默认设定),移相器接受电压而伸长(移相),而后驱动CCD 采集在该相位的干涉图,并传输并存储到计算机内存中,完成一副干涉图的采集。如果还需另一个相位的图像,则NI 卡重新输出另一电压值,驱动PZT 移相器产生另一伸长量,CCD 相机再进行一次数据采集,并存储到计算机内存中。如果不需其他相位的干涉图,则程序调用Matlab引擎,对刚保存在计算机内存的数据进行处理分析,并完成绘图进行显示。至此便完成一次实时成像。

图3 控制流程图

如果需要对图像的数据进行保存,方便日后使用和分析处理,也可以单击“采集数据”按钮进行数据采集。控制流程图如图3所示。采集数据之前,先设定好数据所保存的位置,电动移动平台的步距以及所需采集的次数等。在完成各硬件初始化后,NI 卡输出电压,驱动PZT 移相器产生移相,接着CCD 相机采集待测样品某个位置在该相位下的干涉数据,保存到刚才设定的位置。如果还需其他相位的数据采集,则NI 卡再次输出电压,PZT 发生移相器发生相移,然后CCD 再次采集数据并保存数据。如果待测样品该位置数据采集结束,则驱动电动移动平台运动一个步距的距离,重新按照上述再次进行另外一个位置的数据的采集。

3 实验及结果分析

笔者在完成二维频域光学相干层析系统的硬件搭建和软件开发调试后,进行对样品进行成像,测试系统的可行性。所使用待测样品为透明胶带。该种透明胶带由塑料薄膜层和胶水层组成。塑料薄膜层、胶水层以及空气这三者之间它们的折射率都不相同,因此在光通过他们的分界面时,由于折射率的变化,光会产生反射现象,那么对该透明胶带进行成像,会分出两层三个界面。

CCD 相机获取的干涉信号除了携带样品结构信息的干涉条文,还包含很强的直流噪声,以及自相干噪声等。为了防止直流噪声以及自相干噪声等对最后的结果产生影响,笔者在对干涉信号进行傅里叶变换前,需要先去除直流噪声。

经过对CCD 采集的干涉信号去除直流分量后,笔者对信号做傅里叶变换,最终便可以形成待测样品的结构信息。透明胶带结构信息图如图4所示。

图4(a)左半部分(或右半部分)可以看出具有3条亮线,其中一条比较明亮,另外两条比较弱。其中比较亮的一条为透明胶带不黏的那一面的表面,中间那条表示的透明胶带的塑料薄膜和胶水薄膜的分层界面,最左边的一条为胶水和基体的分界面面。图4(b)左半部分(或右半部分)也可以清晰地看出曲线具有3个峰,相应地对应不同的分层界面。可以看出该结果也是符合透明胶带的实际情况的。

图4 透明胶带结构信息图

然而,如果仅仅去除直流分量后做傅里叶变换,傅里叶变换后将会产生共轭镜像,如图4所示,在图像的左右各有一个以光程差为零的点为对称轴相对称的图像。假如零光程差的位置在样品内部,则势必造成样品的结构信息图像与其共轭镜像相重叠,无法分辨样品结构信息的问题。

为解决该问题方法有:①将零光程差的位置调节到样品外部,这样就不会造成混叠;②去除共轭镜像。

本研究采用第二种方法,采用五步移相法,重新构造复数函数[14],再进行傅里叶变换,从而去除共轭镜像,去除共轭镜像后透明胶带结构信息如图5所示。图5 中(a)图和(b)图中均只有图4 中对应的(a)图和(b)图的左半部分的样品结构信息了。

对比图4 和图5 可知,五步移相法不仅把共轭镜像去除,而且还增强了图像的信噪比。

4 结束语

基于VC++和Matlab 的二维频域光学相干层析成像系统具有易于操作,便于维护和升级的特点。在系统测试过程中,笔者对一层透明胶带进行了成像,成像结果符合实际,证明了系统是可行的。

图5 去除共轭镜像后透明胶带结构信息

由于一次成像便能产生二维的样品结构信息,相比一维频域光学相干层析成像系统,二维频域光学相干层析具有快速成像的优点,并且软件集成度高,功能全面,界面友好,对光学相干层析系统的开发具有促进作用。

[1]HUANG D.,SWANSON E.,LIN C.et al.,Optical coherence tomography[J].Science,1991,254(22):1178-1181.

[2]吴 凌.OCT 三维重建与多普勒成像研究[D].浙江:浙江大学光电信息工程学系,2007.

[3]马振鹤,王瑞康,张 帆,等.快速高分辨率的频域光学相干层析成像系统研究[J].纳米技术与精密工程,2005,3(3):232-235.

[4]DE BOER J F,CENSE B,PARK B H,et al.Improved signal-to-noise ratio in spectral domain compared with time-domain optical coherence tomography[J].Optics letters,2003,28(21):2067-2069.

[5]LEITGEB R A,HIZENBERGER C K,FERCHER A F.Performance of fourier domain versus time domain optical coherence tomography[J].Optics express,2003,11(8):889-894.

[6]WITTE S,BACLAYON M,PETERMAN E J G.et al.Single-shot two-dimensional full-range optical coherence tomography achieved by dispersion control[J].Optics express,2009,14(17):11335-11349.

[7]ZHONG Jian-feng,ZHONG Shun-cong,ZHANG Qiu-kun.et al.Two-dimensional optical coherence tomography for real-time structural dynamical characterization[J].Optics and Lasers in Engineering,2015(66):74-79.

[8]石成英,张利民,陈登科.基于VC++与Matlab 联合编程的测量系统软件开发研究[J].计算机数字工程,2013,41(9):1535-1537.

[9]李 卓,李益民.Matlab 与VC ++混合编程技术在图像处理中的应用研究[J].电脑知识与技术,2011,7(22):5450-5452.

[10]沈莉丽.基于Matlab 与VC ++混合编程的数字信号处理系统[J].信息化研究,2010,36(5):43-45.

[11]董建婷,王 杰.VC ++调用Matlab 实现图像处理的3种常用方法比较[J].现代电子技术,2012,35(16):46-49.

[12]许雪开.VC ++与Matlab 混合编程[J].机电工程,2007,24(2):26-27.

[13]钟舜聪,丁 康,孙智娟.Matlab 与C/C++混合编程在信号处理中的应用[J].微计算机应用,2000(5):305

[14]何梓昂.FD-OCT 去复共轭成像的研究[D].杭州:浙江大学光电信息工程学系,2008.

猜你喜欢

移相器透明胶频域
大型起重船在规则波中的频域响应分析
光量子芯片中级联移相器的快速标定方法*
基于变容二极管的紧凑型反射移相器
创新透明胶
频域稀疏毫米波人体安检成像处理和快速成像稀疏阵列设计
基于STC89C52的程控移相器的设计
计及可控移相器的电力系统潮流优化
基于改进Radon-Wigner变换的目标和拖曳式诱饵频域分离
扎不爆的气球
基于频域伸缩的改进DFT算法