Skip to content

Commit 79db61f

Browse files
author
Ivo Maatman
committed
Add wrapper for 4D array with FFTNormalOp
1 parent ddaa6ca commit 79db61f

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

src/FFTNormalOp.jl

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,18 @@ Differentiate between functions exploiting a pre-calculated kernel basis `Λ` an
2525
1. Tamir JI, et al. “T2 shuffling: Sharp, multicontrast, volumetric fast spin-echo imaging”. Magn Reson Med. 77.1 (2017), pp. 180–195. https://doi.org/10.1002/mrm.26102
2626
2. Assländer J, et al. “Low rank alternating direction method of multipliers reconstruction for MR fingerprinting”. Magn Reson Med 79.1 (2018), pp. 83–96. https://doi.org/10.1002/mrm.26639
2727
"""
28-
function FFTNormalOp(img_shape, trj, U; cmaps=(1,), sample_mask=trues(size(trj)[2:end]), num_fft_threads=round(Int, Threads.nthreads()/size(U, 2)))
28+
function FFTNormalOp(img_shape, trj::AbstractArray{<:Integer, 3}, U::AbstractArray{Tc,2}; cmaps=(1,), sample_mask=trues(size(trj)[2:end]), num_fft_threads=round(Int, Threads.nthreads()/size(U, 2))) where {Tc <: Union{<:AbstractFloat, Complex{<:AbstractFloat}}}
2929
Λ = calculate_kernel_cartesian(img_shape, trj, U; sample_mask)
3030
return FFTNormalOp(Λ; cmaps, num_fft_threads)
3131
end
3232

33+
# Wrapper for 4D data arrays
34+
function FFTNormalOp(img_shape, trj::AbstractArray{<:Integer,4}, U::AbstractArray{Tc,2}; sample_mask=trues(size(trj)[2:end]), kwargs...) where {Tc <: Union{<:AbstractFloat, Complex{<:AbstractFloat}}}
35+
trj = reshape(trj, size(trj, 1), :, size(trj,4))
36+
sample_mask = reshape(sample_mask, :, size(sample_mask,3))
37+
return FFTNormalOp(img_shape, trj, U; sample_mask, kwargs...)
38+
end
39+
3340
function FFTNormalOp(M, U; cmaps=(1,), num_fft_threads=round(Int, Threads.nthreads()/size(U, 2)))
3441
Λ = calculate_kernel_cartesian(M, U)
3542
return FFTNormalOp(Λ; cmaps, num_fft_threads )

0 commit comments

Comments
 (0)