mrpro.phantoms.EllipsePhantom

class mrpro.phantoms.EllipsePhantom(ellipses: Sequence[EllipseParameters] | None = None)[source]

Bases: object

Numerical phantom as the sum of different ellipses.

Parameters:

ellipses – ellipses defined by their center, radii and intensity. if None, defaults to three ellipses

__init__(ellipses: Sequence[EllipseParameters] | None = None)[source]

Initialize ellipse phantom.

Parameters:

ellipses – Sequence of EllipseParameters defining the ellipses. if None, defaults to three ellipses with different parameters.

image_space(image_dimensions: SpatialDimension[int]) Tensor[source]

Create image representation of phantom.

Parameters:

image_dimensions – number of voxels in the image This is a 2D simulation so the output will be (1 1 1 image_dimensions.y image_dimensions.x)

kspace(ky: Tensor, kx: Tensor) Tensor[source]

Create 2D analytic kspace data based on given k-space locations.

For a corresponding image with 256 x 256 voxel, the k-space locations should be defined within [-128, 127]

The Fourier representation of ellipses can be analytically described by Bessel functions [KOA2007].

Parameters:
  • ky – k-space locations in ky

  • kx – k-space locations in kx (frequency encoding direction). Same shape as ky.

References

[KOA2007]

Koay C, Sarlls J, Oezarslan E (2007) Three-dimensional analytical magnetic resonance imaging phantom in the Fourier domain. MRM 58(2) https://doi.org/10.1002/mrm.21292