Skip to content

How to handle the reconstructed FOV when remove_oversampling is used. #239

@aTrotier

Description

@aTrotier

I am reconstructing a siemens MPRAGE acquisition with readout and phase oversampling
The readout oversampling is now handle by the function remove_oversampling which does not edit the encodedFOV / reconFOV.

After performing the reconstruction with MRIReco I get an image with correct FOV along the readout but the oversampling is still present in the phase direction.

If I write a nifti in order to get the correct pixel spacing I need to take the reconFOV for the first dimension and the encodedFOV for the y and z direction.

Multiple possibilities :

  1. After removing the oversample I change the encodedFOV[1] to the reconFOV[1] and we used that to create the pixel spacing for nifti
  2. We should apply the remove_oversampling along the y/z direction after reconstruction and in that case the reconFOV should be used

The 2nd option seems better but we need to pass the encodedFOV/reconFOV which are not stored in the acq struct.

Should we automatically store raw.params in acq.sequenceInfo in order to keep thus informations ?

  acq = AcquisitionData(tr, kdata,
                          idx = subsampleIdx,
                          encodingSize = ntuple(d->f.params["encodedSize"][d], ndims(tr[1])),
                          fov = Float64.(ntuple(d->f.params["encodedFOV"][d], 3)))

In that case the second step of remove_oversampling will be something like :

remove_oversampling!(image, acq ;readout=false, phase = true, partition = true) 

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingenhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions