I would like to introduce a new Fiji plug in that we just made a preprint of, with @sebherbert, Leo Valon and friends.
LocalZProjector is a Fiji plugin, using ImageJ2 structures, that aims at projecting 3D volumes on 2D planes. So the goal is that same as the Maximum Intensity Projection (MIP) but we try to only include the signal of interest in the projection, discarding the spurious signal coming from elsewhere.
It is based on a simple concept: a tunable pre-filter is used to ‘find’ the surface of interest using e.g. the local contrast (e.g. with std filter). We get a height map from it and we regularize it with a tunable median filter.
We developed it because with our samples there is a lot of spurious unwanted signal (auto-fluo, dead cells, …).
Good ol’ MIP generates ugly projections with little hope for subsequent analysis. Ideally you want to extract the signal only from around the surface of interest.
Several excellent tools exist that do that: PreMosa, FastSME, MinCostZSurface, SurfCutJ, etc… (reviewed and compared in the preprint).
But unfortunately we found out that some of our samples were challenging. And we also wanted to process large 3D stacks.
Here is the comparison of the MIP (left) vs LZP (right) on a 42 GB stack (acquired with a DiSPIM, deskwed and rotated):
This approach is common, but we did our best to have it in a useful package.
LZP can deal with large images, without any additional preprocessing step. Just open your large image with the ‘Open as Virtual stack’ of ImageJ and you are good.
Also it can deal with multi-C, time-lapses without efforts.
It relies on IJ2 structures, is multithreaded and fast.
And it is scriptable (scripts/ExecuteProjection.py · master · IAH public / LocalZProjector · GitLab).
There is a companion app in MATLAB called DeProj, to get accurate morphology measurements from these projections.
2D projections are great (easier to segment, to visualize and smaller disk space), but for curved samples they distort the geometry. And the distortion can be very strong.
So DeProj takes the cell segmentation (a B&W mask) generated from the projection (use Epyseg, TissueMiner, MorpholibJ etc to build it) and the height-map (the Z position of the reference surface, generated as second output of LocalZProjector) and correct for the distortion.
It does all the last step of analysis (get cells from mask, deproject, measure etc) and outputs results tables and visualizations:
The tools are made to be easy to use and are expected to work turnkey. They are open-source and we hope they will be useful for your projects:
To install LocalZProjector in Fiji: