File Exchange

image thumbnail

Calculation of CT MTF and NPS using the ACR accreditation phantom

version 1.1 (23.3 KB) by

This code enables measurements of CT MTF and NPS from images of an ACR accreditation phantom.



View License

This code is intended to accompany the paper:

S. N. Friedman, G. S. K. Fung, J. H. Siewerdsen, and B. M. W. Tsui. "A simple approach to measure computed tomography (CT) modulation transfer function (MTF) and noise-power spectrum (NPS) using the American College of Radiology (ACR) accreditation phantom," Med. Phys. 40, 051907-1 - 051907-9 (2013).

To calculate the 1D radial (axial) MTF and 3D NPS using CT data of the American College of Radiology (ACR) accreditation phantom.

Two consecutive scans of the phantom are needed. The program requires a data directory to be selected in which there are only two subdirectories containing only CT slices corresponding to the third module of the phantom. Be careful of partial volume effects with surrounding modules.
i.e., datadir
|-> scan 1 dir
| | -> only module 3 slices
|-> scan 2 dir
|-> only module 3 slices

Comments and Ratings (6)


Adam (view profile)

Hi everz body,

ist possible to calculte the MTF from the slanted edge using this code? Thanks..




Azeez (view profile)


Saul (view profile)

Ball bearings and rings are neither needed nor desired for the MTF or NPS calculations. The "mask" to exclude these portions was simply a means to work around these undesired regions when calculating the MTF. If your phantom does not have them, then the mask is not necessary. With that in mind, I do not yet see where the code may need to be modified.

I think the first questions to tackle are what are your "expected" MTF and NPS, and how do you know they are accurate? Both will be greatly affected by the system you use, the protocol chosen, and any post-processing algorithms your system may be using. If you wish to validate your phantom, it would be best to use the same system and protocol as tested in the referenced Med. Phys. article above, and compare your results with the published ones.


Azeez (view profile)

Yes Saul, the uniformity module is comparable to the ACR phantom however, the module doesn't have the ball bearing locations and rings as exempted when calculating the MTF's in the code. The phantom is about 20 cm wide also and relatively uniform.
Running the code without much modifications however, I wasn't obtaining MTF and NPS plot shapes as expected even when I included the excluded regions. Hence, I supposed I may need to make some modifications to get good data. Any suggestions?


Saul (view profile)

I'm not familiar with the phantom, however, when I tried to pull up the specs on it, it does appear to have an "Image Uniformity Module" that seems comparable to the ACR phantom. If this module is sufficiently uniform and wide enough, I would expect you to be able to use the code without any modifications and achieve comparable results. A comparison of the results from the two phantoms would be an interesting experiment.


Azeez (view profile)

I wanted to ask if this code need to be modified to use it on the Catphan500/600 phantoms?



Corrected spelling in title.

MATLAB Release
MATLAB 7.10 (R2010a)

Inspired by: 3D Slice Viewer

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video