Reconstruction library, reconstructor



wFBP Reconstruction Module, FreeCT

Module Description

This module houses a library of functions that assist in executing 3D image
reconstruction for Spiral Cone Beam CT scanners. The library of functions is
essentially a Python wrapper for the FreeCT_wFBP CUDA library for 3D CT
reconstruction [1].

FreeCT_wFBP is an open-source CUDA-based implementation of the weight filtered
back-projection (wFBP) algorithm by Stierstofer et al. [2], which performs 3D
reconstruction of X-ray images from CT projection data obtained from Spiral
Cone Beam CT scanners with curved rectangular detector panels and a helical
motion path for data acquisition. The CUDA implementation allows strong
parallelization of the reconstruction operation allowinf fast reconstruction of
large image volumes.

This module provide support for using the FreeCT library in Python with
functions allow feeding input projection data in the form of numpy ndarrays,
tuning FreeCT scanner configurations and reconstruction parameters and reading
FreeCT output data as Python numpy ndarrays.

[1]. J . Hoffman, S. Young, F. Noo, M. McNitt-Gray, “Technical Note: FreeCT_wFBP:
A robust, efficient, open-source implementation of weighted filtered backprojection
for helical, fan-beam CT,” Med. Phys., vol. 43, no. 3, pp. 1411-1420, Feb. 2016.

[2]. K. Stierstorfer, A. Rauscher, J. Boese, H. Bruder, S. Schaller, and T. Flohr,
“Weighted FBP—a simple approximate 3D FBP algorithm for multislice spiral CT with
good dose usage for arbitrary pitch,” Phys. Med. Biol., vol. 49, no. 11, pp.
2209–2218, Jun.2004.

Functions

fct_read_img_file() read binary image input file from FreeCT library
fct_read_prj_file() read binary projection input file from FreeCT library
fct_write_prm_file() write scanner parameters to .prm file in FreeCT
fct_write_prj_file() save numpy array projection data as a .bin file
fct_run() run FreeCT script on a projection data file to get reconstructed image output

Function Description

Desc. Read binary image input file from FreeCT library.
Args. fname: file, str binary image file name
w: int image width
h: int image height
Return binary byte data as numpy 2D ndarrary
Desc. Read binary projection input file from FreeCT library.
Args. fname: file, str binary projection input file
nchnls: int number of channels
nrows: int number of rows
nviews: int number of views
Return binary byte data as numpy 3D ndarrary
Desc. Write scanner parameters to .prm file in FreeCT. For information regarding the fields in the .prm file, check out FreeCT documentation at cvib.ucla.edu/freect/documentation.html
Args. fname: file, str .prm file path
param_dict: dict dictionary of fields in the .prm file
Return -
Desc. Write out ndarray of projection data to the format fct understands. This does not take negative log nor separates the alternating channels, nor reverse the order of views.
Args. fname: file, str projection file path
proj: 3D ndarray of numpy.float32 (nchnls, nrows, nviews)
Return -
Desc. Run FreeCT script on a projection data file to get reconstructed image output.
Args. prm_fname: str .prm file path for FreeCT
flags: str argument flags for executing FreeCT script, for details, see FreeCT documentation, cvib.ucla.edu/freect/documentation.html
Return -