Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Fully sampled direct reconstruction does not handle specific acquisition ordering #235

Open
aTrotier opened this issue Feb 19, 2025 · 1 comment

Comments

@aTrotier
Copy link
Contributor

However, I think their is an issue here :

      if !MRIBase.isUndersampledCartTrajectory(shape,tr)
        ftOp = FFTOp(Complex{T}; shape, unitary=false, S = S, fftParams(S)...)

The FFTOp expects rawdata(acq) to be in the right order. I think we should remove the first part of the if/else and always use

idx = MRIBase.cartesianSubsamplingIdx(shape,tr)
ftOp = SamplingOp(Complex{T}; pattern=idx, shape, S = S)  FFTOp(Complex{T}; shape, unitary=false, S = S, fftParams(S)...)

The SamplingOp will put the profiles at the right position to perform the fft even for fully sampled with specific ordering acquisition. Are you ok if with that @tknopp @nHackel ?

Originally posted by @aTrotier in #215

I need to create an example to show the issue before going further

@aTrotier
Copy link
Contributor Author

Ok, I have added a test #238 and it passes because we create a sampling operators at the bottom of the file.

# subsampling
  if !isempty(subsampleIdx) && (subsampleIdx != collect(1:size(tr,2))) && isCartesian(tr)
    β = (D==2) ? (tr.numSamplingPerProfile, tr.numProfiles) : (tr.numSamplingPerProfile, tr.numProfiles, tr.numSlices)
    S = SamplingOp(Complex{T}; pattern = subsampleIdx, shape=β, S = S)
    return S  ftOp
  else
    return ftOp
  end

If I remove the previous lines in the if/else :

idx = MRIBase.cartesianSubsamplingIdx(shape,tr)
ftOp = SamplingOp(Complex{T}; pattern=idx, shape, S = S) ∘ FFTOp(Complex{T}; shape, unitary=false, S = S, fftParams(S)...)

The test are working except for the SENSE simulation test (MRISimulation.jl -> line 138)

Image

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant