DOI: 10.5281/zenodo.7870794
title: Computational 3D resolution enhancement for optical coherence tomography with a narrowband visible light source

description: This repository contains the code and data underlying the publication "<em>Computational 3D resolution enhancement for optical coherence tomography with a narrowband visible light source</em>" in Biomedical Optics Express 14, 3532-3554 (2023) (doi.org/10.1364/BOE.487345). 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. <strong>Description of the code and datasets</strong> Table 1 describes all the Matlab and Python scripts in this depository. Table 2 describes the datasets. The input datasets are the phase corrected datasets, as the raw data is large in size and phase correction using a coverslip as reference is rather straightforward. Processed datasets are also added to the repository to allow for running only a limited number of scripts, or to obtain for example the aberration corrected data without the need to use python. Note that the simulation input data (<em>input_simulations_pointscatters_SLDshape_98zf_noise75.mat</em>) is generated with random noise, so if this is overwritten de results may slightly vary. Also the aberration correction is done with random apertures, so the processed aberration corrected data (<em>exp_pointscat_image_MIAA_ISAM_CAO.mat</em> and <em>exp_leaf_image_MIAA_ISAM_CAO.mat</em>) will also slightly change if the aberration correction script is run anew. The current processed datasets are used as basis for the figures in the publication. For details on the implementation we refer to the publication. Table 1: The Matlab and Python scripts with their description <strong>Script name</strong> <strong>Description</strong> <em>MIAA_ISAM_processing.m</em> This scripts performs the DFT, RFIAA and MIAA processing of the phase-corrected data that can be loaded from the datasets. Afterwards it also applies ISAM on the DFT and MIAA data and plots the results in a figure (via the scripts <em>plot_figure3, plot_figure5</em> and <em>plot_simulationdatafigure</em>). <em>resolution_analysis_figure4.m</em> This figure loads the data from the point scatterers (absolute amplitude data), seeks the point scatterrers and fits them to obtain the resolution data. Finally it plots figure 4 of the publication. <em>fiaa_oct_c1.m, oct_iaa_c1.m, rec_fiaa_oct_c1.m, rfiaa_oct_c1.m</em> These four functions are used to apply fast IAA and MIAA. See <em>script MIAA_ISAM_processing.m</em> for their usage. <em>viridis.m, morgenstemning.m</em> These scripts define the colormaps for the figures. <em>plot_figure3.m, plot_figure5.m, plot_simulationdatafigure.m</em> These scripts are used to plot the figures 3 and 5 and a figure with simulation data. These scripts are executed at the end of script <em>MIAA_ISAM_processing.m.</em> Python script: <em>computational_adaptive_optics_script.py</em> Python script that applied computational adaptive optics to obtain the data for figure 6 of the manuscript. Python script: <em>zernike_functions2.py</em> Python script that gives the values and carthesian derrivatives of the Zernike polynomials. <em>figure6_ComputationalAdaptiveOptics.m</em> Script that loads the CAO data that was saved in Python, analyzes the resolution, and plots figure 6. Python script: <em>OCTsimulations_3D_script2.py</em> Python script simulates OCT data, adds noise and saves it as .mat file for use in the matlab script above. Python script: <em>OCTsimulations2.py</em> Module that contains a python class that can be used to simulate 3D OCT datasets based on a Gaussian beam. Matlab toolbox DIPimage 2.9.zip Dipimage is used in the scripts. The toolbox can be downloaded online or this zip can be used. The datasets in this Zenodo repository <strong>Name</strong> <strong>Description</strong> input_leafdisc_phasecorrected.mat Phase corrected input image of the leaf disc (used in figure 5). input_TiO2gelatin_004_phasecorrected.mat Phase corrected input image of the TiO2 in gelatin sample. input_simulations_pointscatters_SLDshape_98zf_noise75 Input simulation data that, once processed, is used in figure 4. exp_pointscat_image_DFT.mat exp_pointscat_image_DFT_ISAM.mat exp_pointscat_image_RFIAA.mat exp_pointscat_image_MIAA_ISAM.mat exp_pointscat_image_MIAA_ISAM_CAO.mat Processed experimental amplitude data for the TiO2 point scattering sample with respectively DFT, DFT+ISAM, RFIAA, MIAA+ISAM and MIAA+ISAM+CAO. These datasets are used for fitting in figure 4 (except for CAO), and MIAA_ISAM and MIAA_ISAM_CAO are used for figure 6. simu_pointscat_image_DFT.mat simu_pointscat_image_RFIAA.mat simu_pointscat_image_DFT_ISAM.mat simu_pointscat_image_MIAA_ISAM.mat Processed amplitude data from the simulation dataset, which is used in the script for figure 4 for the resolution analysis. exp_leaf_image_MIAA_ISAM.mat exp_leaf_image_MIAA_ISAM_CAO.mat Processed amplitude data from the leaf sample, with and without aberration correction which is used to produce figure 6. exp_leaf_zernike_coefficients_CAO_normal_wmaf.mat exp_pointscat_zernike_coefficients_CAO_normal_wmaf.mat Estimated Zernike coefficients and the weighted moving average of them that is used for the computational aberration correction. Some of this data is plotted in Figure 6 of the manuscript. input_zernike_modes.mat The reference Zernike modes corresponding to the data that is loaded to give the modes the proper name. exp_pointscat_MIAA_ISAM_complex.mat exp_leaf_MIAA_ISAM_complex Complex MIAA+ISAM processed data that is used as input for the computational aberration correction.