Reconstruction algorithm for cone beam CT with conventional and oscillating scanning orbit
Disclaimer
This software was developed in Matlab environment (MathWorks Inc) by Antonio Minopoli and Antonio Sarno as part of the PRIN project Q-CT funded by the Italian Ministry of University and Research (CUP E53D23012420006). The activity of Antonio Sarno was also part of the Prof-of-Concept project QE-CBCT funded by the Italian Ministry of the Economic Development (MISE) through the Italian Institute of Nuclear Physics (CUP C18H23000670002). Permission of use is hereby granted, free of charge, to any person obtaining a copy of the Software, to deal in the software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, or sell copies of the Software or derivatives. Developers assume no responsibilities whatsoever for the use by other parties of the software and make no guarantees, expressed or implied, about its quality, reliability, or any other characteristics. Although this software can be redistributed and/or modified freely.
Software features
The developed software permits analytical FDK reconstruction in CBCT, either by using CPU or GPU architecture. It permits sinogram input either for conventional circular scanning geometry or for oscillating geometry as described in the quoted paper.
Instruction for the use
This MATLAB project implements the Feldkamp-Davis-Kress (FDK) reconstruction algorithm specifically adapted for cone beam computed tomography (CBCT) with an oscillating scanning orbit. The algorithm is designed to handle the source overlapping introduced by the oscillating orbit, providing accurate 3D reconstructions from cone beam data. It was developed and tested on Matlab R2024a and Windows OS
List additional toolboxes required
Image Processing Toolbox
Parallel Computing Toolbox
Instructions
Download the folder containing the main code (ExoCT_code.m), the parameter setting with two example settings (User_setting_ex1.m and User_setting_ex2.m), the folder ‘/Functions’ containing the supporting functions (FDK.p, Filtering.p, Geometry_initialization.p, Stack_saving.p), and two sinograms contained in the folder ‘/Sinograms’ to be used with the user setting examples (PP1_sino.tif and PP3_sino.tif).
Define parameters in User_setting_*.m, in detail:
param.sinogram: filename or full path in case the folder containing the sinogram is different from “Sinogram” folder provided
param.horizontal: “true” if the angle of projections varies along the horizontal axis, “false” if along the vertical axis
param.log: “true” if the sinogram pixel values are expressed as logarithm, “false” otherwise
param.gpu: “1” to enable the use of GPU, “0” to disable it
param.px_size: pixel size in millimeters
param.DSD: source-detector distance in millimeters
param.DSO: source-object distance in millimeters
param.tot_angle: total scanning angle
param.dir: “-1” if the gantry rotates counterclockwise, “1” if the gantry rotates clockwise
param.PP: number of projections per oscillation period
param.amplitude: full amplitude oscillation in millimeters
param.vx: voxel size along x axis in millimeters
param.vy: voxel size along y axis in millimeters
param.vz: voxel size along z axis in millimeters
param.filter: the available filters are “ram-lak”, “shepp-logan”, “cosine”, “hamming”, “hann”
param.save: “true” to save the reconstructed volume, “false” otherwise.
Run ExoCT_code.m
The output volume will be saved in the dedicated subdirectory Reconstructed_volume. Each of the reconstructed axial slice will be saved as a separate 32-bit ASCII file
Is data on this page outdated, violates copyrights or anything else? Report the problem now and we will take corresponding actions after reviewing your request.