Phase CT reconstruction - filtered back projection

Version 1.0.1 (21.6 MB) by Karol Vegso
Phase CT reconstruction - filtered back projection
46 Downloads
Updated 22 Aug 2023

View License

I am attaching to zip file sinogram of polymer / polypropylene sample with name <sino_000001_000400.raw>. The sinogram contains 400 rows, which is 400 projections per 180 degerees. The number of columns in sinogram is number of points in horizontal direction in the original differential phase images. It has value of 1536 points. You can open example sinogram in ImageJ -> File Import Raw -> 64 bit Real, width=1536, height=400, little bit endian byte order. The sinogram shows white signal on the left and black signal on the right, which is the flipping the diffrential phase at the sample edges. The backprojection algorithm was taken from web-site of the Rice university <https://www.clear.rice.edu/elec431/projects96/DSP/> written by Justin Romberg.
The original sinogram calculated from differential phase images is represented by sino matrix. The sign(ni) filter is applied to the original sinogram sino, and the result of filtering is sino_filtered matrix. I take differential phase data or sinle horiozntal line from sino matrix, and I do fast Fourier transform (fft) of that line, and I multiply data in frequency domain by sign(ni)/(i*2*pi) filter. Then I do inverse Fourier transformation of that resulting line and I take real part of the data.
In differential phase imaging using grating interferometry or X-ray Talbot interferometry, you can use sign(ni) filter in frequency domain, where sign(ν) = |ν|/ν is the sign function equal to 1 for x > 0, −1 for x < 0 and 0 for x = 0.
So, I apply sign(ni) filter to each horizontal line of 400 lines of the original sinogram stored in sino matrix. The result of filtering is sino_filtered matrix. The backprojection lagorithm is applied to the data stored in sino_filtered matrix.
We have in the example sinogram 400 projections from 0 degrees to 180 degrees. The projection angles for backprojection algorithm are stored in the vector theta=((0:(m-1))./m)*180;
The result of backprojection is stored in the image with name <phase_CT.raw>, which is also attached to the zip file available for downloading.
For good CT reconstruction, you must also define center of the sinogram, which is here defined in the middle_index variable. The center of sinogram is 735-th pixel from 1536 pixels.

Cite As

Karol Vegso (2024). Phase CT reconstruction - filtered back projection (https://www.mathworks.com/matlabcentral/fileexchange/134137-phase-ct-reconstruction-filtered-back-projection), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2021b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

phase_CT

Version Published Release Notes
1.0.1

The clarity of explanation was improved.

1.0.0