Fast and accurate spectral estimation axial super resolution optical coherence tomography
收藏资源简介:
This depository contains the data and code underlying the results of the publication 'Fast and accurate spectral estimation axial super resolution optical coherence tomography' in Optics Express (doi.org/10.1364/OE.439761). The reader is free to use the scripts and data in this depository, as long as the manuscript is correctly cited in their work. For further questions, please contact the corresponding author. Description of the code and datasets Table 1 describes the Matlab scripts and functions in this depository that were used in the publication. For reproducing the figures of the publication, refer to the scripts SE_OCT_figure(..).m. For understanding the method and applying it on other datasets from the reader, Bscan_reconstruction.m and Cscan_reconstruction.m are the most convenient scripts to start with. For simulating OCT data as presented in the publication, OCT_simulations.m could be applied. Details on the variables and parameters, such as number of iterations, grid interpolation factor and number of data chunks are commented on in the code itself and should be understandable with the publication as reference. Table 2 describes the datasets that have been used for the publication and are free for the readers to be used with their methods. Table 3 then gives a brief explanation of the variables that are contained in the dataset .mat files. Table 1. The Matlab scripts in this depository with brief description. script name description Bscan_reconstruction.m This script loads a B-scan .mat file and applies the four processing methods FBW-DFT, PBW-DFT, AR, RFIAA on the data. Cscan_resonstruction.m This script loads a 3Ddata .mat file and applies the four processing methods FBW-DFT, PBW-DFT, AR, RFIAA on the data. oct_ar.m This function applies the auto-regressive spectral estimation on the input data. oct_iaa.m This function applies RFIAA or FIAA on the input data. fiaa_oct.m This function is called within oct_iaa.m for applying FIAA (without the recursive scheme) and within rfiaa_oct.m for the first line. This function applies FIAA on a single A-scan. rfiaa_oct.m This function is called within oct_iaa.m for applying RFIAA (with the recursive scheme) on a chunk of data. It initializes the first line of the chunk with fiaa_oct.m, and then it applies rec_fiaa_oct.m with the initialization taken from the previous scanline. rec_fiaa_oct.m This function applies RFIAA on a single A-scan, taking the initialization from the previous scanline as extra input parameter. RayleighThreshold.m This function automatically determines the lower limit of the dynamic range for plotting an OCT image. It fits a Rayleigh distribution on the input data (preferably noise, but also a full image could be used) and returns a threshold in dB. morgenstemning.m This function defines the colormap as used in the publication. Bscan_reconstruction_function.m This function takes the interference OCT signal, reference spectra and reconstruction parameters as input and returns the reconstructed images according to the four methods in the publication. This function is used in the scripts for reproducing the figures in the publication. It follows the same structure as the script Bscan_reconstruction.m. SE_OCT_figure3.m This script does the processing for and plots figure 3 in the manuscript. For this script, the .zip file wedge_simulation_data needs to be unpacked and placed as folder in the folder where this script is executed. SE_OCT_figure4.m This script reproduces figure 4 in the publication. SE_OCT_figure5.m This script reproduces figure 5 in the publication. SE_OCT_figure6.m This script reproduces figure 6 in the publication OCT_simulations.m This script reproduces the OCT simulations as described in the publication. As the noise is random, any new realization might slightly differ from the data in the publication. Table 2. The OCT datasets contained in this depository with a brief description. Table 3 describes the variables that are contained in each of these datasets. dataset name description wedge_Bscan_data.mat Experimental data from the wedge phantom as visualized in figure 3 of the publication. No spectrum averaging is applied. wedge_simulation_data.zip This zipped folder contains 16 simulation datasets with different noise levels, which form the basis of Figure 3 (f) in the publication. interfaces_simulation_Bscan_data.mat This file contains the simulation data for 8 interfaces with decreasing intensity and forms the basis of Figure 4 in the publication. layered_phantom_Bscan_data.mat This file contains the experimental data from the layered phantom, as used in Figure 4 (c-d) in the publication. No spectrum averaging is applied. onion_Bscan_data.mat This file contains the experimental data from the onion sample as used in Figure 5 in the publication. No spectrum averaging is applied. skin_Bscan_data.mat This file contains the experimental data from the skin sample as used in Figure 5 in the publication. No spectrum averaging is applied. intralipid_Bscan_data.mat This file contains the experimental data from the intralipid sample as used in Figure 6 in the publication. No spectrum averaging is applied. speckle_simulation_Bscan_data.mat This file contains simulation data for 3 speckle regions as used in Figure 6 in the publication. reference_spectrum.mat This file just contains a spectrum from the used experimental setup which is used as input for the simulations. onion_3Ddata.mat This file contains 3D data of the onion sample, which is used for visualization 1. The OCT spectra are obtained from averaging 8 spectra from the experimental setup. skin_3Ddata.mat This file contains 3D data of the skin sample, which is used for visualization 2. The OCT spectra are obtained from averaging 8 spectra from the experimental setup. Table 3. This table contains the variables in the .mat files and their description. variable name description iRawdata OCT interference spectra interpolated to a linear grid in k-domain, before subtracting the reference spectrum sk the reference spectrum, interpolated to a linear grid in k-domain phasep 4 polynomial coeficients, which can be used in 'polyval' to correct for dispersion sizeX the lateral size of the scan in mm sizeY (only for 3D datasets) the lateral size in the direction perpendicular to x in mm sizeZ the axial field of view (one-sided) before range reduction in mm ROIp the best axial region of interest for this dataset to apply RFIAA on a reduced reconstruction range (in pixels of the DFT reconstruction without zero-padding)
本存储库包含发表于《光学快讯》(Optics Express)的论文《快速精准的频谱估计轴向超分辨光学相干断层扫描》(doi.org/10.1364/OE.439761)的成果所支撑的数据与代码。读者可自由使用本存储库中的脚本与数据,只需在其研究工作中正确引用该论文即可。如有进一步疑问,请联系通讯作者。 代码与数据集说明 表1介绍了本存储库中用于该论文的Matlab脚本与函数。如需复现论文中的图表,请使用脚本`SE_OCT_figure(..).m`。若希望掌握该方法并将其应用于自有数据集,`Bscan_reconstruction.m`与`Cscan_resonstruction.m`是最便捷的入门脚本。如需复现论文中所述的光学相干断层扫描(Optical Coherence Tomography,OCT)数据仿真,可使用`OCT_simulations.m`。关于变量与参数的详细说明(如迭代次数、网格插值因子、数据分块数量等)已在代码内部注释,结合论文参考即可理解。 表2介绍了本论文使用的数据集,读者可自由将其用于自身方法研究。表3则简要说明了`.mat`格式数据集文件中包含的变量。 #### 表1 本存储库中的Matlab脚本及其简要说明 | 脚本名称 | 说明 | | --- | --- | | `Bscan_reconstruction.m` | 该脚本加载B扫描`.mat`文件,并对数据应用四种处理方法:FBW-DFT、PBW-DFT、AR(Auto-Regressive,自回归)、RFIAA。 | | `Cscan_resonstruction.m` | 该脚本加载3D数据`.mat`文件,并对数据应用四种处理方法:FBW-DFT、PBW-DFT、AR、RFIAA。 | | `oct_ar.m` | 该函数对输入数据应用自回归频谱估计。 | | `oct_iaa.m` | 该函数对输入数据应用RFIAA或FIAA。 | | `fiaa_oct.m` | 该函数在`oct_iaa.m`中被调用,用于对单条A扫描线应用FIAA(无递归方案);同时也在`rfiaa_oct.m`中被调用,用于处理首行数据。 | | `rfiaa_oct.m` | 该函数在`oct_iaa.m`中被调用,用于对分块数据应用RFIAA(带递归方案)。其首行数据通过`fiaa_oct.m`初始化,随后使用`rec_fiaa_oct.m`,并以上一条扫描线的初始化结果作为输入参数。 | | `rec_fiaa_oct.m` | 该函数对单条A扫描线应用RFIAA,以上一条扫描线的初始化结果作为额外输入参数。 | | `RayleighThreshold.m` | 该函数自动确定OCT图像绘图的动态范围下限。它对输入数据(优选为噪声数据,也可使用完整图像)拟合瑞利分布,并返回以dB为单位的阈值。 | | `morgenstemning.m` | 该函数定义了论文中使用的色图。 | | `Bscan_reconstruction_function.m` | 该函数以干涉型OCT信号、参考光谱及重建参数作为输入,根据论文中的四种方法返回重建图像。该函数被用于复现论文图表的脚本中,其结构与`Bscan_reconstruction.m`一致。 | | `SE_OCT_figure3.m` | 该脚本用于处理并绘制论文中的图3。运行该脚本前,需将压缩包`wedge_simulation_data.zip`解压并放置在该脚本的执行目录下。 | | `SE_OCT_figure4.m` | 该脚本用于复现论文中的图4。 | | `SE_OCT_figure5.m` | 该脚本用于复现论文中的图5。 | | `SE_OCT_figure6.m` | 该脚本用于复现论文中的图6。 | | `OCT_simulations.m` | 该脚本用于复现论文中所述的OCT仿真数据。由于噪声为随机生成,每次新的仿真结果可能与论文中的数据存在细微差异。 | #### 表2 本存储库中包含的OCT数据集及其简要说明 | 数据集名称 | 说明 | | --- | --- | | `wedge_Bscan_data.mat` | 来自楔形体模的实验数据,对应论文图3中的可视化结果。未施加光谱平均处理。 | | `wedge_simulation_data.zip` | 该压缩文件夹包含16组不同噪声水平的仿真数据集,为论文图3(f)的基础数据。 | | `interfaces_simulation_Bscan_data.mat` | 该文件包含8个强度递减界面的仿真数据,为论文图4的基础数据。 | | `layered_phantom_Bscan_data.mat` | 该文件包含分层体模的实验数据,为论文图4(c-d)所用数据。未施加光谱平均处理。 | | `onion_Bscan_data.mat` | 该文件包含洋葱样本的实验数据,为论文图5所用数据。未施加光谱平均处理。 | | `skin_Bscan_data.mat` | 该文件包含皮肤样本的实验数据,为论文图5所用数据。未施加光谱平均处理。 | | `intralipid_Bscan_data.mat` | 该文件包含脂肪乳样本的实验数据,为论文图6所用数据。未施加光谱平均处理。 | | `speckle_simulation_Bscan_data.mat` | 该文件包含3个散斑区域的仿真数据,为论文图6所用数据。 | | `reference_spectrum.mat` | 该文件仅包含所用实验装置的光谱,用于仿真实验的输入参数。 | | `onion_3Ddata.mat` | 该文件包含洋葱样本的3D数据,用于可视化1。OCT光谱通过对实验装置采集的8条光谱进行平均得到。 | | `skin_3Ddata.mat` | 该文件包含皮肤样本的3D数据,用于可视化2。OCT光谱通过对实验装置采集的8条光谱进行平均得到。 | #### 表3 各`.mat`数据文件中的变量及其说明 | 变量名称 | 说明 | | --- | --- | | `iRawdata` | 已插值至k域线性网格的OCT干涉光谱,且已完成参考光谱扣除。 | | `sk` | 已插值至k域线性网格的参考光谱。 | | `phasep` | 4项多项式系数,可通过`polyval`函数校正色散效应。 | | `sizeX` | 扫描的横向尺寸,单位为mm。 | | `sizeY` | (仅适用于3D数据集)垂直于x方向的横向尺寸,单位为mm。 | | `sizeZ` | 范围缩减前的轴向视场(单侧),单位为mm。 | | `ROIp` | 该数据集的最佳轴向感兴趣区域,用于在缩减重建范围内应用RFIAA(以未补零的DFT重建的像素数为单位)。 |



