4D registration, possible?



Hi, I have been trying this for some time now, but can’t really get it to work.

At our lab, we produce confocal 4D data, i.e., stacks collected over time. Since this is in vivo data we get a lot of movement while acquiring it, both within stacks and drift over time. Using FIJI/ImageJ, I can correct movements in a stack. I can also (if i flatten the stacks) correct for movements over time. I have multi channel images and use the plugin multistackreg. The algorithms this plugin uses works very nicely for correcting the movements in our data!

What I want to be able to do is to correct for movements first in the stack at each timepoint, and then correct the stacks over time (i.e. in 3D).

Is this possible? To me (who can’t program) it feels like the functionality is there but just not setup up in a way that makes this possible to do at the moment.

Is anyone else doing this, or know of anyone that does?


Hi David,

I’m afraid I don’t have any useful suggestions, but I thought I’d post to add that I have the same problem, and would also be interested in any solutions others here might be able to provide.


Multistackreg macro

There was a similar question on fiji-devel yesterday.

Albert Cardona replied with a video link: “Sample Drift Correction Following 4D Confocal Time-lapse Imaging” by Adam Parslow, Albert Cardona, Robert J. Bryson-Richardson.

Unfortunately, it looks like you have to have an institutional subscription to JoVE in order to watch it.

Anyway, I am not an expert on the available ImageJ and Fiji registration tools, but I agree that it is surely possible to do what you want. Maybe @axtimwalde or @iarganda could recommend an approach?


Thanks for the replies! Seems like I’m not alone having this problem.


I know there is a lot of relevant research published in the area of motion correction in medical imaging, but I am not aware of any imageJ specific plugins.


yesterday somebody was asking me the same question. To stabilize objects over time there is
Image Stabilizer
Doesn’t do stacks though.


I’ve realized that the first part, aligning within each stack is possible. It’s the second step, aligning all the stacks to each other over time that is problematic. There is the “Correct 3D drift” plugin that is referenced earlier in this thread, but it is rather “blind”, i.e. there is not much you can configure with this plugin (only which channel to use for correcting the drift).

When I run it on my datasets, it most of the time places the stacks all over the place, creating a several times larger dataset just because the “actual” data is jumping around in a larger volume instead of being aligned. These datasets don’t look that bad to the human eye before correcting, you clearly see the structures and you would think that this would be reather easy to stabilize. But I guess this is a rather complex thing to program (although I’m a complete novice in this area). As I said, the registration plugins that does this on 2D-data works extremely well but 3D is probably a different beast.

Anyway, thanks for your input and please let me know if you know of anyone within the ImageJ community that actually can program these kind of algorithms.


Hi @David,

I just found this PoorMan3DReg plugin for 4D at different time series by @mlg, author of this plugin for stack of images taken at same position for varying time points.
This works quite well but only in ImageJ not in Fiji and don’t forget to install the TurboReg and Grouped ZProjector plugins :smiley:
Hope this would be helpful
Have a good day :slight_smile: