Signal model fitting#
Since mdreg
implements model-driven registration, it is critical to choose
an appropriate model for any given data type. mdreg
has a library of
built-in models that can be be used, and that will grow over time, but also
offers the option to use a custom-built model.
The choice of model fit and the parameters to control the optimization can
be set by providing the fit_image dictionary to the mdreg.fit
function.
The fit_image dictionary has one required item func which specifies the
function to use for model fitting. The other dictionary entries are
keyword arguments specific to the function.
The func entry to fit_image be any function, but it must take the image
array as argument, and return the fit to the model and the fitted model
parameters. It can be custom built by the user of mdreg
, or it can be one
of the built-in fit functions listed under Fitting signal models. The functions
in the list can also be used as a template when building custom functions.
In most cases the signal fit will be performed pixel-by-pixel, meaning the
signal for each pixel is fitted independently. For such models a more
convenient alternative is to provide the fit_pixels dictionary in the call
to mdreg.fit
instead of fit_image.
fit_pixels has two required items, one is model which defines the
single-pixel forward model to fit; the other is p0, a set of initial values
of the free model parameters. Beyond that any keyword accepted by
mdreg.fit_pixels
can be provided to control the optimization. The function
will effectively call scipy.optimize.curve_fit
for pixel-based fitting,
but includes features such as automatic parallellization for pixel-based
fitting, sopport for zarrays etc.
A collection of default forward models is available in mdreg (Signal models) and can also be used as templates for building custom models.