[ImageJ-devel] ImageJ OPS hackathon results

Curtis Rueden ctrueden at wisc.edu
Thu Oct 2 12:35:49 CDT 2014


Hi Jay,

> Am I right that Ops sort of occupies the niche between ImgLib2 and
> ImageJ Plugins... something that makes it easier to do the image
> manipulations but can be reused a bit more easily given they don't
> require many of the Service parameters and preprocessors that many of
> the plugins take/need?

Yes, OPS is intended for pure image processing operations and functions.
The rule of thumb is that they be deterministic, and have no side effects.
So you give same inputs, you get same outputs, every time. Many of them are
also multithreadable, though that is not a requirement. And OPS are also
supposed to be "static" rather than dynamic -- i.e., they shouldn't have a
variable number of input or output parameters, unlike commands in general.

That said, OPS are still allowed to depend on services, but it is expected
that the service methods you call will not compromise the determinism of
the op -- i.e., only utility methods of services should really be used.
Perhaps in the future we could add annotations to each service method
indicating what sort of method it is, and hence where it is "safe" to use.

I want to thank you for your feedback and discussion from a few months ago,
regarding reuse of ImageJ2 commands in JEX. Your perspective provided some
of the inspiration for the design of OPS, because it became clear that we
need a "pure functional" layer for image processing that does not rely on
side effects from services, etc. The idea is that KNIME Image Processing,
CellProfiler, OMERO, JEX, etc., can all consume and expose the ops with the
assumption that they will behave well (work headless, etc.).

Regards,
Curtis


On Thu, Oct 2, 2014 at 12:08 PM, Jay Warrick <warrick at wisc.edu> wrote:

> Looks promising. Am I right that Ops sort of occupies the niche between
> ImgLib2 and ImageJ Plugins... something that makes it easier to do the
> image manipulations but can be reused a bit more easily given they don't
> require many of the Service parameters and preprocessors that many of the
> plugins take/need?
>
> On Oct 1, 2014, at 4:58 PM, Curtis Rueden <ctrueden at wisc.edu> wrote:
>
> Hi everyone,
>
> The ImageJ2 and KNIME Image Processing teams met in Madison during the
> week of September 15 - 19, to work on ImageJ OPS, which seeks to be a
> unifying library for scientific image processing.
>
> On behalf of the OPS development team, I am pleased to announce the
> results of that hackathon, including accomplishments, project goals and
> milestones. See the news post for full details:
>
> http://imagej.net/2014-10-01_-_ImageJ_OPS_Hackathon
>
> Regards,
> Curtis Rueden
> ImageJ2 project lead
> _______________________________________________
> ImageJ-devel mailing list
> ImageJ-devel at imagej.net
> http://imagej.net/mailman/listinfo/imagej-devel
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://imagej.net/pipermail/imagej-devel/attachments/20141002/6bbcba10/attachment.html>


More information about the ImageJ-devel mailing list