code for Partial Volume Correction in PET
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

PETPVC Build Status Build status Codacy Badge DOI

PETPVC: toolbox for partial volume correction (PVC) in positron emission tomography (PET)


When using this toolbox, please include a reference to the paper:

  • PETPVC: a toolbox for performing partial volume correction techniques in positron emission tomography
    BA Thomas, V Cuplov, A Bousse, A Mendes, K Thielemans, BF Hutton, K Erlandsson
    Physics in Medicine and Biology 61 (22), 7975. DOI

Pre-built binaries

Binaries for Linux, Mac and Windows are provided in the 'Release' section on Github. When running the Windows version, you must have installed the Visual C++ Redistributable Packages for Visual Studio 2013 (link). For 64-bit Win7 it is necessary to install both vcredist_x86.exe and vcredist_x64.exe.

Installation from source instructions

The following are required to build this software:

Building and installing

  • Ensure that ITK has been built successfully, with the ITKReview module (Module_ITKReview in CMake) enabled.
  • Clone this repository
git clone
  • Create a build directory
mkdir BUILD
  • Change to the build directory
  • Run CMake
cmake /path/to/repository
  • Build and install
make test
make install


An example of running iterative Yang with a 6mm PSF:

	petpvc -i <PET> -m <MASK> -o <OUTPUT> --pvc IY -x 6.0 -y 6.0 -z 6.0 [--debug]

where <PET> is the PET image file, <MASK> is the 4-D mask image file and <OUTPUT> is the destination file for the PV-corrected image.

Notes on input and output files

The applications in this toolbox use ITK image readers and writers and can therefore accept common medical imaging formats such as Nifti, ANALYZE and Nrrd, and raw data with an associated meta-data header (mhd) file.

The tissue classification maps (referred to as mask files) can either be binary or probabilistic. All voxel values in a 3-D volume must be 0 <= x <= 1. The PVC applications expect the mask file to be input as a single 4-D volume, where each 3-D volume consists of a single segmented region.

The use of 4-D volumes facilitates the use of probabilistic segmentations during the PVC. In addition to the constraint that all voxels must be <= 1, The sum of a voxel location across the fourth dimension should be <= 1. Ideally it should be 1, which requires the background to be included as a segmented region.

Special cases where the inputs/outputs are different

Muller-Gartner (MG):

The Muller-Gartner correction requires only the grey matter and white matter masks. Technically, the CSF space should be included as a third region, but the contribution of this region is assumed to be zero. The MG application still requires a 4-D mask volume, where the first volume is grey matter and the second is white matter. The order is important. The 4-D mask file can contain more than two 3-D volumes, but these will be ignored by the MG PVC.

Geometric Transfer Matrix (GTM) method:

GTM cannot produce an image. The output of the GTM is a comma-separated value (CSV) file of regional mean values. The order of the mean values for each region is written in the same order as they appear in the fourth dimension of the mask file.

Single Target Correction (STC) method:

The STC method corrects a single region. The mask image should be a 3-D volume, where each voxel in the target region should be 1. All other voxels should be 0.