View License

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

» Watch video

Highlights from
Calculation of CT MTF and NPS using the ACR accreditation phantom

4.0 | 1 rating Rate this file 15 Downloads (last 30 days) File Size: 23.3 KB File ID: #41401 Version: 1.1

Calculation of CT MTF and NPS using the ACR accreditation phantom


Saul (view profile)


19 Apr 2013 (Updated )

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

| Watch this File

File Information

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


3 D Slice Viewer inspired this file.

Required Products Signal Processing Toolbox
MATLAB release MATLAB 7.10 (R2010a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (6)
11 Nov 2014 Adam

Adam (view profile)

Hi everz body,

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



Comment only
24 Oct 2013 Azeez

Azeez (view profile)

23 Jul 2013 Saul

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.

Comment only
22 Jul 2013 Azeez

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?

Comment only
21 Jul 2013 Saul

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.

Comment only
18 Jul 2013 Azeez

Azeez (view profile)

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

Comment only
25 Apr 2013 1.1

Corrected spelling in title.

Contact us