Hi fans of GPU-accelerated image processing,
this is a call for feedback. After the clij-paper is out, it’s time to think towards clij2 and I’m wondering about users opinions.
The schedule is basically fixed:
- CLIJ2 will release in June 2020
- There will be fully functional beta-test versions in May 2020
- I expect the first functional prototype in January 2020
What new functionality will be in?
There are new features which will come very likely:
- More Filters: Laplace (Thanks to Alexandr Dibrov), Sobel (Thanks to Ruth Whelan-Jeans!), TopHat, Difference-of-Gaussian, Background-Subtraction
- Logarithm and Exponential (Thanks to Peter Haup!)
- Median-Z and Standard-Deviation-Z projections (Thanks to @Wilson_Adams for suggesting)
- Connected components analysis (also known as Particle Analyser)
- Copy/Pasting images
- Working with label maps, e.g. for excluding labels on image edges
- More sophisticated measurements.
- Binary Watershed
- Methods for analysing and visualising touching objects.
- A new OpenCL-dialect in the backend offering faster compilation and execution times.
- Advanced memory management for Jython/Groovy/Java developers, similar to the Macro-way of cleaning memory
- Drawing lines, rectangles/cuboids, ellipsoids
- Auto-completion for Jython and Groovy
- Compatibility bridges towards Icy, Matlab and Python via pyimagej
There are things which could be in but it depends if people really would use it:
- Simplified integration of the ROI Manager
- Basic colocalisation methods such as Jaccard/Sorensen/Dice coefficient.
- Bleaching correction
- Processing tables on the GPU
- Classical matrix operations such as Gauss-Jordan
- cross correleation analysis enabling particle image velocimetry and image registration
- Inplace-versions of filters
- A clij version free of ImageJ-dependencies. Useful for Java-developers out of the ImageJ-universe, but with limited functionality.
Furthermore user suggestions:
- ImageJ-like rolling ball based background subtraction (thanks to @romainGuiet and @Wilson_Adams for suggesting!
- Enable the
withstatement in Jython (thanks to @albertcardona for suggesting)
- CLIJ should implement auto-closable interface to simplify memory management from Java. (Thanks to @imagejan for suggesting! )
- Filters and segmentation algorithms from MorpholibJ (Thanks @Wilson_Adams )
- Opening/Closing (Another thank to @Wilson_Adams )
- Custom kernels (@Wilson_Adams)
- Marker based Watershed (@Wilson_Adams)
- FFT / iFFT (Suggested by Graham Dellaire and @bnorthan )
What does the community think? Is there something decisive missing in CLIJ what I haven’t mentioned yet? Please keep in mind, CLIJ is basically a collection of atomic functions. So, there will likely never come a “TrackMate” or “DeepLearning” operation to CLIJ
Thanks for your feedback in advance! You’re great guides