How can I register/align shifted image stacks?

@tim.holy Could you possibly point me to a description of the syntax or a tutorial of RegisterQD.jl?

Using Atom/Juno I found a documentation of the commands, like this one:
tform, mm = qd_rigid(fixed, moving, mxshift, mxrot; SD=I, minwidth_rot=default_minwidth_rot(fixed, SD), thresh=thresh, initial_tfm=IdentityTransformation(), kwargs...)

However, this is quite confusing to me.

  1. Which of the options or variables is the input image stack and which format is expected?
    (EDIT: O.K., I think fixed is the reference image and moving the one I want to align with the reference.)
  2. Can I directly asign an image (tiff) file to fixed and moving?
  3. tform is possibly the transformed result, but what is mm?
  4. I need to run through the stack slice by slice, correct?

Do you by any chance have some sample/demo code you could share?

For you and others: My current workflow in Fiji/ImageJ looks like this:

  1. I have two timelapse stacks, representing two channels.
  2. I align the brighter stack with MultiStackReg (a plugin that basically calls StackReg, but is able to save the transformation matrix) using RigidBody.
  3. I apply the transformation matrix saved in step 2 two the second channel stack. This is necessary, because the lower signal/noise ratio of this channel usually results in completely different alignments, if I call the StackReg plugin for this stack.

I would like to transfer this to Julia for some additional analysis.