generate_nema_iec_phantom#

deepinv.utils.phantoms.generate_nema_iec_phantom(size, activities=None, background=0.25, lung=0.0, normalize=True)[source]#

Generate a 2D or 3D NEMA IEC body phantom for PET/SPECT.

The phantom contains six spheres of diameters 10, 13, 17, 22, 28 and 37 mm arranged on a circle inside a rounded body with uniform background activity Daube-Witherspoon et al.[1]. A central cylindrical insert represents the low-activity lung region. Sphere activities can be set independently to model hot or cold regions relative to the background.

Inspired by David Sarrut’s implementation in OpenGATE.


Example:

>>> import deepinv as dinv
>>> dinv.utils.generate_nema_iec_phantom(64).shape
torch.Size([64, 64])
>>> dinv.utils.generate_nema_iec_phantom((32, 64, 64)).shape
torch.Size([32, 64, 64])
Parameters:
  • size (int or tuple[int, int, int]) – Square slice size through the sphere centres, or volume shape (D, H, W).

  • activities (list[float]) – Six sphere activities, ordered by increasing diameter. Defaults to [1.0] * 6.

  • background (float) – Background activity.

  • lung (float) – Lung insert activity.

  • normalize (bool) – Rescale maximum activity to 1 if True.

Returns:

(torch.Tensor) Phantom of shape (size, size) or (D, H, W).

Return type:

Tensor


References: