API
This page contains documentation of the public API of MRIReco. In the Julia REPL one can access this documentation by entering the help mode with ? and then writing the function for which the documentation should be shown.
Operators
Operators are implemented as subtypes of AbstractLinearOperator, which is defined in the package LinearOperators.jl. Such operators must provide a function implementing the product and a function implementing the product with the adjoint. Furthermore, the number of rows and columns of the operator must be specified.
Missing docstring for MRIReco.encodingOps2d_simple. Check Documenter's build log for details.
Missing docstring for MRIReco.encodingOps3d_simple. Check Documenter's build log for details.
Missing docstring for MRIReco.encodingOps2d_parallel. Check Documenter's build log for details.
Missing docstring for MRIReco.encodingOps3d_parallel. Check Documenter's build log for details.
Missing docstring for MRIReco.encodingOp2d_multiEcho. Check Documenter's build log for details.
Missing docstring for MRIReco.encodingOp3d_multiEcho. Check Documenter's build log for details.
Missing docstring for MRIReco.encodingOp2d_multiEcho_parallel. Check Documenter's build log for details.
Missing docstring for MRIReco.encodingOp3d_multiEcho_parallel. Check Documenter's build log for details.
Missing docstring for MRIReco.fourierEncodingOp2d. Check Documenter's build log for details.
Missing docstring for MRIReco.fourierEncodingOp3d. Check Documenter's build log for details.
MRIReco.ExplicitOp — MethodExplicitOp(shape::NTuple{D,Int64}, tr::Trajectory, correctionmap::Array{ComplexF64,D}
; echoImage::Bool=false, kargs...) where Dgenerates a ExplicitOp which explicitely evaluates the MRI Fourier signal encoding operator.
Arguments:
shape::NTuple{D,Int64}- size of image to encode/reconstructtr::Trajectory- Trajectory with the kspace nodes to samplecorrectionmap::Array{ComplexF64,D}- fieldmap for the correction of off-resonance effectsechoImage::Bool=false- if true sampling times will only be considered relative to the echo time this results in complex valued image even for real-valued input.kargs- additional keyword arguments
Missing docstring for RegularizedLeastSquares.FFTOp(T::Type, shape::Tuple, shift=true). Check Documenter's build log for details.
Missing docstring for MRIReco.NFFTOp(shape::Tuple, tr::Trajectory; nodes=nothing, kargs...). Check Documenter's build log for details.
MRIReco.FieldmapNFFTOp — MethodFieldmapNFFTOp(shape::NTuple{D,Int64}, tr::Trajectory,
correctionmap::Array{ComplexF64,D};
method::String="nfft",
echoImage::Bool=true,
alpha::Float64=1.75,
m::Float64=3.0,
K=20,
kargs...) where Dgenerates a FieldmapNFFTOp which evaluates the MRI Fourier signal encoding operator, including B0-inhomogeneities using time-segmented NFFTs.
Arguments:
shape::NTuple{D,Int64}- size of image to encode/reconstructtr::Trajectory- Trajectory with the kspace nodes to samplecorrectionmap::Array{ComplexF64,D}- fieldmap for the correction of off-resonance effects- (
method::String="nfft") - method to use for time-segmentation when correctio field inhomogeneities - (
echoImage::Bool=false) - if true sampling times will only be considered relative to the echo time this results in complex valued image even for real-valued input. - (
alpha::Float64=1.75) - oversampling factor for interpolation - (
m::Float64=3.0) - truncation size of interpolation kernel - (
K=20) - number of translates for LeastSquares approaches (not NFFT-approach) to time-segmentation - (
kargs) - additional keyword arguments
MRIReco.SamplingOp — FunctionSamplingOp(pattern::Array{Int}, shape::Tuple)buildsa LinearOperator which only returns the vector elements at positions indicated by pattern.
Arguents
pattern::Array{Int}- indices to sampleshape::Tuple- size of the array to sample
MRIReco.SensitivityOp — FunctionSensitivityOp(sensMaps::Matrix{ComplexF64}, numEchoes::Int=1)builds a LinearOperator which performs multiplication of a given image with the coil sensitivities specified in sensMaps
Arguments
sensMaps::Matrix{ComplexF64}- sensitivity maps ( 1. dim -> voxels, 2. dim-> coils)numEchoes- number of contrasts to which the opetaor will be applied
SensitivityOp(sensMaps::Array{T,4}, numContr::Int=1) where Tbuilds a LinearOperator which performs multiplication of a given image with the coil sensitivities specified in sensMaps
Arguments
sensMaps::Array{T,4}- sensitivity maps ( 1.-3. dim -> voxels, 4. dim-> coils)numContr- number of contrasts to which the opetaor will be applied
MRIReco.SparseOp — FunctionSparseOp(name::AbstractString, shape::NTuple{N,Int64}; kargs...) where Ngenerates the sparsifying transform (<: AbstractLinearOperator) given its name.
Arguments
name::AbstractString- name of the sparsifying transformshape::NTuple{N,Int64}- size of the Array to be transformed- (
kargs) - additional keyword arguments
Missing docstring for MRIReco.RegularizedLeastSquares.WeightingOp. Check Documenter's build log for details.
Datatypes
Missing docstring for MRIReco.AcquisitionData. Check Documenter's build log for details.
Missing docstring for MRIReco.AcquisitionData(tr::T,kdata::Array{Matrix{ComplexF64},3} ; seqInfo=Dict{Symbol,Any}() , idx=nothing , encodingSize=Int64[0,0,0] , fov=Float64[0,0,0] , kargs...) where T <: Union{Trajectory,Vector{Trajectory}}. Check Documenter's build log for details.
Missing docstring for MRIReco.trajectory(acqData::AcquisitionData,i::Int64=1). Check Documenter's build log for details.
Missing docstring for MRIReco.numContrasts(acqData::AcquisitionData). Check Documenter's build log for details.
Missing docstring for MRIReco.numChannels. Check Documenter's build log for details.
Missing docstring for MRIReco.numSlices. Check Documenter's build log for details.
Missing docstring for MRIReco.numRepetitions. Check Documenter's build log for details.
Missing docstring for MRIReco.kData. Check Documenter's build log for details.
Missing docstring for MRIReco.multiEchoData. Check Documenter's build log for details.
Missing docstring for MRIReco.multiCoilData. Check Documenter's build log for details.
Missing docstring for MRIReco.multiCoilMultiEchoData. Check Documenter's build log for details.
Missing docstring for MRIReco.profileData. Check Documenter's build log for details.
Missing docstring for MRIReco.samplingDensity. Check Documenter's build log for details.
Missing docstring for MRIReco.changeEncodingSize2D. Check Documenter's build log for details.
Missing docstring for MRIReco.convert3dTo2d. Check Documenter's build log for details.
Missing docstring for MRIReco.RawAcquisitionData. Check Documenter's build log for details.
Missing docstring for MRIReco.trajectory(f::RawAcquisitionData; slice::Int=1, contrast::Int=1). Check Documenter's build log for details.
Missing docstring for MRIReco.rawdata(f::RawAcquisitionData). Check Documenter's build log for details.
Missing docstring for MRIReco.AcquisitionData(f::RawAcquisitionData). Check Documenter's build log for details.
Missing docstring for MRIReco.RawAcquisitionData(f::ISMRMRDFile, dataset="dataset"). Check Documenter's build log for details.
Missing docstring for MRIReco.AcquisitionData(f::ISMRMRDFile, dataset="dataset"). Check Documenter's build log for details.
Trajectories
Missing docstring for MRIReco.Trajectory. Check Documenter's build log for details.
Missing docstring for MRIReco.trajectory(trajName::AbstractString, numProfiles::Int, numSamplingPerProfile::Int; MRIReco.numSlices::Int64=1, TE::Float64=0.0, AQ::Float64=1.e-3, kargs...). Check Documenter's build log for details.
Missing docstring for MRIReco.string(tr::Trajectory). Check Documenter's build log for details.
Missing docstring for MRIReco.echoTime(tr::Trajectory). Check Documenter's build log for details.
Missing docstring for MRIReco.acqTimePerProfile(tr::Trajectory). Check Documenter's build log for details.
Missing docstring for MRIReco.numProfiles(tr::Trajectory). Check Documenter's build log for details.
Missing docstring for MRIReco.numSamplingPerProfile(tr::Trajectory). Check Documenter's build log for details.
Missing docstring for MRIReco.numSlices(tr::Trajectory). Check Documenter's build log for details.
Missing docstring for MRIReco.isCircular(tr::Trajectory). Check Documenter's build log for details.
Missing docstring for MRIReco.isCartesian(tr::Trajectory). Check Documenter's build log for details.
Missing docstring for MRIReco.dims(tr::Trajectory). Check Documenter's build log for details.
Missing docstring for MRIReco.kspaceNodes(tr::Trajectory). Check Documenter's build log for details.
Missing docstring for MRIReco.readoutTimes(tr::Trajectory). Check Documenter's build log for details.
Missing docstring for MRIReco.CartesianTrajectory. Check Documenter's build log for details.
Missing docstring for MRIReco.EPITrajectory. Check Documenter's build log for details.
Missing docstring for MRIReco.OneLine2dTrajectory. Check Documenter's build log for details.
Missing docstring for MRIReco.RadialTrajectory. Check Documenter's build log for details.
Missing docstring for MRIReco.SpiralTrajectory. Check Documenter's build log for details.
Missing docstring for MRIReco.SpiralTrajectoryVarDens. Check Documenter's build log for details.
Missing docstring for MRIReco.CartesianTrajectory3D. Check Documenter's build log for details.
Missing docstring for MRIReco.KooshballTrajectory. Check Documenter's build log for details.
Missing docstring for MRIReco.StackOfStarsTrajectory. Check Documenter's build log for details.
Sequences
Missing docstring for MRIReco.MESequence. Check Documenter's build log for details.
Missing docstring for MRIReco.numContrasts(seq::MESequence). Check Documenter's build log for details.
Missing docstring for MRIReco.echoTimes(seq::MESequence). Check Documenter's build log for details.
Missing docstring for MRIReco.flipAngles(seq::MESequence). Check Documenter's build log for details.
Missing docstring for MRIReco.echoAmplitudes(seq::MESequence, R1::Float64, R2::Float64, numStates=nothing). Check Documenter's build log for details.
Missing docstring for MRIReco.epgAmplitudes(seq::MESequence, R1::Real, R2::Real, numStates=nothing). Check Documenter's build log for details.
Missing docstring for MRIReco.epgRotation. Check Documenter's build log for details.
Missing docstring for MRIReco.epgRelaxation. Check Documenter's build log for details.
Missing docstring for MRIReco.epgDephasing. Check Documenter's build log for details.
Missing docstring for MRIReco.rfRotation. Check Documenter's build log for details.
Sampling
MRIReco.sample — Functionsample(shape::NTuple{N,Int64}, redFac::Float64, patFunc::String; kargs...)generates a Vector{Int64} of indices to sample an Array of of size shape with a reduction factor redFac.
Arguments
shape::NTuple{N,Int64}- size of the Array to be sampledredFac::Float64- subsampling factorpatFunc::String- name of the sampling function ("random, "regular", "lines", "poisson" or "vdPoisson")
MRIReco.sample_kspace — Methodsample_kspace(data::AbstractArray, redFac::Float64, patFunc::String; kargs...)subsamples the Array data with a reduction factor redFac and returns both the subsampled Array (as a vector) and the sampled indices (as a vector)
Arguments
data::AbstractArray- array to be sampledredFac::Float64- subsampling factorpatFunc::String- name of the sampling function ("random, "regular", "lines", "poisson" or "vdPoisson")kargs...- addional keyword arguments
MRIReco.sample_kspace — Methodsample_kspace(acqData::AcquisitionData,redFac::Float64,
patFunc::AbstractString; rand=true, profiles=true,
seed = 1234, kargs...)subsamples the data in acqData with reduction factor redFac and returns a new AcquisitionData object.
Arguments
acqData::AcquisitionDatay- AcquisitionData to be sampledredFac::Float64- subsampling factorpatFunc::String- name of the sampling function ("random, "regular", "lines", "poisson" or "vdPoisson")- (
rand=true) - use different patterns for the different contrasts - (
profiles=true) - sample complete profiles - (
seed=1234) - seed for the random number generator kargs...- addional keyword arguments
MRIReco.sample_regular — Methodsample_regular(shape::Tuple{Int64,Int64},redFac::Float64;kargs...)generates a regular sampling pattern for an Array of size shape with a subsampling factor redFac.
Arguments
shape::NTuple{N,Int64}- size of the Array to be sampledredFac::Float64- subsampling factor
MRIReco.sample_random — Methodsample_random(shape::Tuple{Int64,Int64},redFac::Float64;calsize::Int64=0,kargs...)generates a random sampling pattern for an Array of size shape with a subsampling factor redFac.
Arguments
shape::NTuple{N,Int64}- size of the Array to be sampledredFac::Float64- subsampling factor- (
calsize::Int64=0) - size of the fully sampled calibration area
MRIReco.sample_poissondisk — Methodsample_poissondisk(shape::Tuple{Int64,Int64},redFac::Float64;calsize::Int64=0, seed::Int64=1234,kargs...)generates a Poisson disk sampling pattern for an Array of size shape with a subsampling factor redFac.
Arguments
shape::NTuple{2,Int64}- size of the Array to be sampledredFac::Float64- subsampling factor- (
calsize::Int64=0) - size of the fully sampled calibration area - (
seed=1234) - seed for the random number generator
MRIReco.sample_vdpoisson — Methodsample_vdpoisson(shape::Tuple{Int64,Int64},redFac::Float64; seed::Int64=1234,kargs...)generates a variable density Poisson disk sampling pattern for an Array of size shape with a subsampling factor redFac.
Arguments
shape::NTuple{2,Int64}- size of the Array to be sampledredFac::Float64- subsampling factor- (
seed=1234) - seed for the random number generator
MRIReco.sample_lines — Methodsample_lines(shape::Tuple{Int64,Int64},redFac::Float64;sampleFunc="random",kargs...)generates a pattern to sample complete lines of an Array of size shape with a subsampling factor redFac.
Arguments
shape::NTuple{N,Int64}- size of the Array to be sampledredFac::Float64- subsampling factorsampleFunc="random"- name of the sampling function ("random, "regular", "lines", "poisson" or "vdPoisson")kargs...- addional keyword arguments
MRIReco.calculateIncoherence — FunctioncalculateIncoherence(acqData::AcquisitionData, recoParams::Dict, slice=1)calculates the incoherence of the sampling pattern contained in acqData
Arguments
acqData::AcquisitionData- AcquisitionData containing the sampling patternrecoParams::Dict- Dict containing reconstruction parameters- (
slice=1) - slice for which to calculate the incoherence
Simulation
Missing docstring for MRIReco.simulation(image::Array{T,3}, simParams::Dict) where T<:Union{ComplexF64,Float64}. Check Documenter's build log for details.
MRIReco.simulation — Methodsimulation(image::Array{T,3}, simParams::Dict, filename::String) where T<:Union{Complex{<:AbstractFloat},AbstractFloat}Performs the same simulation as simulation(image, simParams) and saves the result in a file with name filename
MRIReco.simulation — Methodsimulation(image::Array{T,2}, simParams::Dict) where T<:Union{Complex{<:AbstractFloat},AbstractFloat}Simulate MRI raw data from given image data. All simulation parameters are passed to the function in the form of a dictionary.
Missing docstring for MRIReco.simulation(tr::Trajectory , image::Array{ComplexF64} , correctionMap = [] ; opName="fast" , senseMaps=[] , verbose=true , kargs...). Check Documenter's build log for details.
Missing docstring for MRIReco.simulation(seq::AbstractSequence, tr::Vector{Trajectory} , image::Array{ComplexF64,3} ; opName="fast" , r1map=[] , r2map=[] , fmap=[] , senseMaps=[] , verbose=true , kargs...). Check Documenter's build log for details.
MRIReco.addNoise — FunctionAdds average white gaussian noise to the signal x
Arguments
x::Vector- signal vector- 'snr::Float64' - target SNR
MRIReco.addNoise — Methodreturn AcquisitionData with white gaussian noise
Arguments
acqData::AcquisitionData- AcquisitionData- 'snr::Float64' - target SNR
MRIReco.addNoise! — Methodadd white gaussian noise to AcquisitionData with (in-place)
Arguments
acqData::AcquisitionData- AcquisitionData- 'snr::Float64' - target SNR
MRIReco.birdcageSensitivity — FunctionbirdcageSensitivity(N::Int64, ncoils::Int64, relative_radius::Float64)Computes the sensitivity maps for each coils that are arranged in a birdcage manner.
MRIReco.quadraticFieldmap — FunctionquadraticFieldmap(Nx::Int64, Ny::Int64, maxOffresonance::Float64=125.0)Computes a parabolic fieldmap.
Reconstruction
MRIReco.reconstruction — Methodreconstruction(acqData::AcquisitionData, recoParams::Dict)Performs image reconstruction of an AcquisitionData object. Parameters are specified in a dictionary.
Reconstruction types are specified by the symbol :reco. Valid reconstruction names are:
- :direct - direct Fourier reconstruction
- :standard - iterative reconstruction for all contrasts, coils & slices independently
- :multiEcho - iterative joint reconstruction of all echo images
- :multiCoil - SENSE-type iterative reconstruction
- :multiCoilMultiEcho - SENSE-type iterative reconstruction of all echo images
MRIReco.reconstruction — Methodreconstruction(acqData::AcquisitionData, recoParams::Dict,filename::String; force=false)performs the same image reconstrucion as reconstruction(acqData::AcquisitionData, recoParams::Dict) and saves the image in a file with name filename. If force=false, the reconstructed image is loaded from the the file filename if the latter is present.
MRIReco.setupIterativeReco — FunctionsetupIterativeReco(acqData::AcquisitionData, recoParams::Dict)builds relevant parameters and operators from the entries in recoParams
relevant parameters
reconSize::NTuple{2,Int64}- size of image to reconstructweights::Vector{Vector{Complex{<:AbstractFloat}}}- sampling density of the trajectories in acqDatasparseTrafo::AbstractLinearOperator- sparsifying transformationreg::Regularization- Regularization to be usednormalize::Bool- adjust regularization parameter according to the size of k-space datasolvername::String- name of the solver to usesenseMaps::Array{Complex{<:AbstractFloat}}- coil sensitivitiescorrectionMap::Array{Complex{<:AbstractFloat}}- fieldmap for the correction of off-resonance effectsmethod::String="nfft"- method to use for time-segmentation when correctio field inhomogeneities
sparseTrafo and reg can also be speficied using their names in form of a string.
Missing docstring for MRIReco.reconstruction_direct_2d. Check Documenter's build log for details.
Missing docstring for MRIReco.reconstruction_direct_3d. Check Documenter's build log for details.
MRIReco.reconstruction_simple — FunctionPerforms iterative image reconstruction independently for the data of all coils, contrasts and slices
Arguments
acqData::AcquisitionData- AcquisitionData objectreconSize::NTuple{2,Int64}- size of image to reconstructreg::Regularization- Regularization to be usedsparseTrafo::AbstractLinearOperator- sparsifying transformationweights::Vector{Vector{Complex{<:AbstractFloat}}}- sampling density of the trajectories in acqDatasolvername::String- name of the solver to use- (
normalize::Bool=false) - adjust regularization parameter according to the size of k-space data - (
params::Dict{Symbol,Any}) - Dict with additional parameters
MRIReco.reconstruction_multiEcho — FunctionPerforms a iterative image reconstruction jointly for all contrasts. Different slices and coil images are reconstructed independently.
Arguments
acqData::AcquisitionData- AcquisitionData objectreconSize::NTuple{2,Int64}- size of image to reconstructreg::Regularization- Regularization to be usedsparseTrafo::AbstractLinearOperator- sparsifying transformationweights::Vector{Vector{Complex{<:AbstractFloat}}}- sampling density of the trajectories in acqDatasolvername::String- name of the solver to use- (
normalize::Bool=false) - adjust regularization parameter according to the size of k-space data - (
params::Dict{Symbol,Any}) - Dict with additional parameters
MRIReco.reconstruction_multiCoil — FunctionPerforms a SENSE-type iterative image reconstruction. Different slices and contrasts images are reconstructed independently.
Arguments
acqData::AcquisitionData- AcquisitionData objectreconSize::NTuple{2,Int64}- size of image to reconstructreg::Regularization- Regularization to be usedsparseTrafo::AbstractLinearOperator- sparsifying transformationweights::Vector{Vector{Complex{<:AbstractFloat}}}- sampling density of the trajectories in acqDatasolvername::String- name of the solver to usesenseMaps::Array{Complex{<:AbstractFloat}}- coil sensitivities- (
normalize::Bool=false) - adjust regularization parameter according to the size of k-space data - (
params::Dict{Symbol,Any}) - Dict with additional parameters
MRIReco.reconstruction_multiCoilMultiEcho — FunctionPerforms a SENSE-type iterative image reconstruction which reconstructs all contrasts jointly. Different slices are reconstructed independently.
Arguments
acqData::AcquisitionData- AcquisitionData objectreconSize::NTuple{2,Int64}- size of image to reconstructreg::Regularization- Regularization to be usedsparseTrafo::AbstractLinearOperator- sparsifying transformationweights::Vector{Vector{Complex{<:AbstractFloat}}}- sampling density of the trajectories in acqDatasolvername::String- name of the solver to usesenseMaps::Array{Complex{<:AbstractFloat}}- coil sensitivities- (
normalize::Bool=false) - adjust regularization parameter according to the size of k-space data - (
params::Dict{Symbol,Any}) - Dict with additional parameters
MRIReco.espirit — Functionespirit(acqData::AcquisitionData, ksize::NTuple{2,Int} = (6,6), ncalib::Int = 24
; eigThresh_1::Number=0.02, eigThresh_2::Number=0.95, nmaps = 1)
espirit(calibData::Array{T}, imsize::NTuple{N,Int}, ksize::NTuple{N,Int} = (6,6[,6])
; eigThresh_1::Number = 0.02, eigThresh_2::Number = 0.95, nmaps = 1)Obtains coil sensitivities from a calibration area using ESPIRiT. The code is adapted from the MATLAB code by Uecker et al. (cf. Uecker et al. "ESPIRiT—an eigenvalue approach to autocalibrating parallel MRI: Where SENSE meets GRAPPA"). The matlab code can be found at: [http://people.eecs.berkeley.edu/~mlustig/Software.html]
Method 1
The first method of this function works with 2D/multi-slice data in the MRIReco.jl data format:
espirit(acqData::AcquisitionData, ksize::NTuple{2,Int} = (6,6), ncalib::Int = 24
; eigThresh_1::Number=0.02, eigThresh_2::Number=0.95)Required Arguments
acqData::AcquisitionData- AcquisitionData
Optional Arguments
ksize::NTuple{2,Int64}- size of the k-space kernel;default = (6,6)ncalib::Int64- number of calibration points in each dimension;default = 30
Keyword Arguments
eigThresh_1::Number=0.02- threshold for the singular values of the calibration matrix (relative to the largest value); reduce for more accuracy, increase for saving memory and computation time.eigThresh_2::Number=0.95- threshold to mask the final maps: for each voxel, the map will be set to 0, if, for this voxel, no singular value >eigThresh_2exists.nmaps = 1- Number of maps that are calcualted. Set to 1 for regular SENSE; set to 2 for soft-SENSE (cf. Uecker et al. "ESPIRiT—an eigenvalue approach to autocalibrating parallel MRI: Where SENSE meets GRAPPA").
Method 2
The second method of this function works with single slice 2D or 3D data; the first argument is the calibration data, i.e. the cropped center of k-space:
espirit(calibData::Array{T}, imsize::NTuple{N,Int}, ksize::NTuple{N,Int} = (6,6[,6])
; eigThresh_1::Number = 0.02, eigThresh_2::Number = 0.95, nmaps = 1)Required Arguments
calibData::Array{T}- Center of k-space in the formatkx × ky [× kz] × coils, where the kz dimension is optional. The typeTof the input data determines the type of the calculated maps. Reasonable choises are in the range ofNx = Ny [= Nz] = 24.imsize::NTuple{N,Int}- matrix size of the final maps
Optional Arguments
ksize::NTuple{N,Int}- number of calibration points in each dimension; the default is(6,6)for 2D and(6,6,6)for 3D.
Keyword Arguments
eigThresh_1::Number=0.02- threshold for the singular values of the calibration matrix (relative to the largest value); reduce for more accuracy, increase for saving memory and computation time.eigThresh_2::Number=0.95- threshold to mask the final maps: for each voxel, the map will be set to 0, if, for this voxel, no singular value >eigThresh_2exists.nmaps = 1- Number of maps that are calcualted. Set to 1 for regular SENSE; set to 2 for soft-SENSE (cf. Uecker et al. "ESPIRiT—an eigenvalue approach to autocalibrating parallel MRI: Where SENSE meets GRAPPA").use_poweriterations = true- flag to determine if power iterations are used; power iterations are only used ifnmaps == 1. They provide speed benefits over the full eigen decomposition, but are an approximation.
MRIReco.nrmsd — Functionnrmsd(I,Ireco)computes the normalized root mean squared error of the image Ireco with respect to the image I.