MagneticResonanceImaging/MRIReco.jl

Multiple regularizers

Open

#263 opened on Oct 16, 2025

 (4 comments) (0 reactions) (1 assignee)Julia (24 forks)auto 404
enhancementgood first issue

Repository metrics

Stars
 (97 stars)
PR merge metrics
 (Avg merge 65d 23h) (1 merged PR in 30d)

Description

Hi, I wanted to try multiple regularizers, but I couldn't manage to get it to work. I checked the source code, and it seemed to support this feature. I tried with the following (among many other variations, but this seemed to most logical way based on the code):

nx, ny = 10, 10
traj = MRIReco.CartesianTrajectory(Float32, ny, nx)
acq = MRIReco.AcquisitionData(traj, reshape([ones(ComplexF32, nx*ny, 1)], 1, 1, 1))
params = Dict{Symbol,Any}()
params[:reco] = "standard"
params[:reconSize] = (nx, ny)
params[:reg] = [MRIReco.L1Regularization(0.05), MRIReco.TVRegularization(0.2, shape = (nx, ny))]
params[:sparseTrafo] = ["Wavelet", nothing]
reconstruction(acq, params);

I always get this error: AssertionError: reg and regTrafo must have the same length Does MRIReco support this (assuming ADMM as the algorithm)?

Contributor guide