Source code for mr_utils.utils.mi_ssfp

'''Simple maximum intensity recon for banding minimization.'''

import numpy as np

[docs]def mi_ssfp(images, pc_axis=0, complex=False): '''Compute maximum intensity SSFP. Parameters ---------- images : array_like Array of phase-cycled images. pc_axis : int, optional Which dimension is the phase-cycle dimension. complex : bool, optional Whether returned data should be complex or magnitude. Returns ------- array_like MI image. Notes ----- Implements Equation [5] from [1]_. References ---------- .. [1] Bangerter, Neal K., et al. "Analysis of multiple‐acquisition SSFP." Magnetic Resonance in Medicine: An Official Journal of the International Society for Magnetic Resonance in Medicine 51.5 (2004): 1038-1047. ''' if not complex: return np.max(np.abs(images), axis=pc_axis) # Get complex MI: images = np.moveaxis(images, pc_axis, 0) idx = np.argmax(np.abs(images), axis=0) return np.take_along_axis(images, idx[None, ...], axis=0)