From Sunday, September 14, 2014 through Friday, September 19, 2014, LOCI in Madison hosted Christian Dietz and Brian Northan, two developers of ImageJ Ops, for an exciting hackathon. Christian Dietz is a PhD student in computer science at the University of Konstanz and the lead developer of the KNIME Image Processing project; Brian Northan is a freelance contract research and development engineer specializing in scientific image and signal processing.
ImageJ Ops is an extensible Java framework for algorithms, particularly image processing algorithms. Ops seeks to be a unifying library for scientific image processing. See the Motivation page on the Ops wiki for details.
KNIME is an open source data analytics, reporting and integration platform, which integrates various components for machine learning and data mining through its modular data pipelining concept. The KNIME Image Processing extension, KNIP, provides nodes for working with images, and is built on the ImageJ Ops library. Ops makes it possible to execute the image processing algorithm in many contexts, including from within ImageJ itself, from OMERO, KNIME, CellProfiler and beyond.
This hackathon focused on the ImageJ Ops library, adding support for key image processing operations, as well as improving the framework itself. Achievements from the hackathon include:
- Vastly improved thresholding code (#52)
- Improvements to the code generation mechanism (#42)
- Autogeneration of base op interfaces (e1e2d18f)
- Several miscellaneous design improvements (#36, 6cb8b083)
- See the SCM history for full details.
All thresholding algorithms from ImageJ 1.x have been ported to Ops. Available thresholding methods now include:
Progress and future directions
We also made great progress on several new lines of development:
- Type conversion (#47)
- Kernels (#48)
- Projection (#51)
- Conditions (#73)
- Features and descriptors (feature-service branch)
The Ops development plan and timeline is now codified on GitHub. Major milestones include:
- A near-term release later this fall: high-priority design issues, features and ops.
- An intermediate release before next spring: work to complete before coming out of incubation with 1.0.0, but less urgent than near-term items.
- A stable 1.0.0 release before the end of 2015: first release with a goal of future backwards compatibility according to SemVer.
Please direct questions about Ops to the ImageJ forum.
Thanks to everyone involved for all the hard work, patience and enthusiasm!