Skip to main content

Crate openkspace_recon

Crate openkspace_recon 

Source
Expand description

OpenKSpace-Recon: K-space -> image reconstruction math.

Core pipeline:

  1. (optional) noise pre-whitening – prewhiten
  2. (optional) navigator phase correction – phasecorr
  3. fftshift -> IFFT -> fftshift – fft + shift
  4. RSS coil combine – coil
  5. (optional) centre crop to recon matrix – crop

Reconstructions are composed behind the ReconStrategy trait so that future parallel-imaging / compressed-sensing back-ends can slot in without touching this crate’s public shape.

§Quick start

use openkspace_recon::{IfftRss, ReconStrategy};
use openkspace_io::ismrmrd::IsmrmrdFile;

let file = IsmrmrdFile::open("scan.h5").unwrap();
let mut strategy = IfftRss::default();
strategy.prewhiten = true;
strategy.phase_correct = true;
let volume = strategy.reconstruct(&file).unwrap();
println!("Reconstructed {} slices", volume.data.shape()[0]);

Re-exports§

pub use coil::rss_combine;
pub use coil::rss_combine_4d;
pub use crop::center_crop_3d;
pub use cs::fista_cs_single_coil;
pub use cs::CsError;
pub use espirit::espirit_sensitivity_maps;
pub use fft::ifft1_inplace;
pub use fft::ifft2_inplace;
pub use fft::ifft3_inplace;
pub use grappa::GrappaError;
pub use grappa::GrappaKernel;
pub use grappa::SamplingPattern;
pub use oversampling::OversamplingRemover;
pub use partial_fourier::homodyne_reconstruct;
pub use partial_fourier::PartialFourierPlan;
pub use phasecorr::PhaseCorrector;
pub use prewhiten::NoisePrewhitener;
pub use sense::sense_gfactor_1d;
pub use sense::sense_unfold_1d;
pub use sense::SenseError;
pub use sensitivity::walsh_sensitivity_maps;
pub use shift::fftshift_axis;
pub use shift::ifftshift_axis;
pub use strategy::CsRss;
pub use strategy::FftMode;
pub use strategy::GrappaRss;
pub use strategy::IfftRss;
pub use strategy::ImageVolume;
pub use strategy::ReconStrategy;
pub use strategy::SenseMapSource;
pub use strategy::SenseRss;

Modules§

coil
Coil combination strategies.
crop
Crop a reconstructed image volume to the recon FOV, removing the vendor-added readout oversampling (commonly 2x along kx).
cs
Compressed-sensing reconstruction with an L1 wavelet prior.
espirit
ESPIRiT coil sensitivity estimation.
fft
Multi-dimensional IFFTs on ndarray tensors, using rustfft.
grappa
GRAPPA parallel-imaging reconstruction (2-D Cartesian).
oversampling
Readout oversampling removal.
partial_fourier
Partial Fourier (half-echo / half-ky) reconstruction via homodyne detection.
phasecorr
Navigator phase correction for TSE / EPI readouts.
prewhiten
Noise pre-whitening from ISMRMRD noise-adjust scans.
sense
Image-domain SENSE (SENSitivity Encoding) unfolding for regular 1-D Cartesian undersampling along ky.
sensitivity
Coil sensitivity estimation via the Walsh adaptive method.
shift
fftshift / ifftshift along a single axis, for any ndarray dimension.
strategy
Reconstruction-strategy abstraction.
wavelet
Single-level 2-D Haar wavelet transform (complex-valued).