imagej / imagej/imagej-ops

Separate OPS framework from built-in operations

Open
#109 2 comments 0 reactions 1 assignee Claimed by @ctrueden View on GitHub
Dominant language
Java
Stars
94
Forks
44
PR merge metrics
No merged PRs in 30d

Description

I know exactly how we can achieve a separation of concerns without burdening downstream consumers too much!
1. Create (again) `scijava-ops` with the core OPS framework.
- No dependencies on image-specific things (e.g., `imagej-common` or `imglib2`) of course.
- Remove the image-specific built-in op signatures from the `OpService` interface.
- Put the code generation layer and arithmetic operations, expression parser, etc., which are not specific to images, all in the `scijava-ops` component.
2. Keep `imagej-ops` as the place for all the image processing goodies.
- Provide a subinterface called `ImageOpService` which extends `OpService` and adds all the built-ins we want to have.
- Narrow the return type of the `ImageJ` gateway's `op()` method (in the `net.imagej:imagej` component) to return an `ImageOpService` instead of just an `OpService`. So anyone using an ImageJ gateway will have access to these image processing routines.

In this way, we will have the powerful SciJava OPS framework available to the world, including an awesome, extensible expression parser and evaluator. And the ImageJ OPS project as the flagship image processing routines built on top of it!

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.