Ticket #1978 (closed defect: moved)
Opened 2013-08-08T16:51:17-05:00
Last modified 2014-12-09T17:02:39-06:00
Create a measurement service
Reported by: | bdezonia | Owned by: | bdezonia |
---|---|---|---|
Priority: | major | Milestone: | imagej2-b8-analysis |
Component: | ImgLib2 | Version: | |
Severity: | serious | Keywords: | |
Cc: | christian.dietz@…, leek | Blocked By: | |
Blocking: | #1519 |
Description
We could use a service in Imglib that facilitates the creation and reuse of measurements of data sources. For example the mean value of an Img, or the convex hull of a RegionOfInterest. The service should cache some commonly used measures, recalc measures when underlying data changes (optional), allow one to name and retrieve and forget measures, etc. It should also define a protocol for other developers to create new measures that can be easily slotted in. Ideally it would pass over input data a minimum number of times in calcing values.
The Knime developers want to see this also and have contributed their feature measurement code (in the knip_features branch of imglib) as example code to support in some fashion and to inform the design of this service.
Barry played with some ideas on the measure-engine branch too some time ago. There were related fiji-devel emails too. And there was the creation of the measure2-experiments branch to begin fleshing out something going forward.
For a partial history see ticket #1384.
Change History
comment:1 Changed 2013-08-09T09:37:02-05:00 by bdezonia
comment:3 Changed 2014-12-09T17:02:39-06:00 by curtis
- Status changed from new to closed
- Resolution set to moved
Migrated to https://github.com/imagej/imagej-ops/issues/67
In a private email with Christian Dietz I asked what he is looking for in a measurement facility. Below is his response.
For us a feature measurement service is the following:
Compute on a certain IterableInterval/RandomAccessibleInterval (which may result from a labeling, segmentation, certain roi definition, overlay) a set of numerical features:
If you for example take a labeling and calculate these feature for each region of interest (or the resulting iterableinterval), you in the end get a table, each row containing all features (or measurements) for a certain region of interest (see Image Segment Features in KNIME, e.g. example flow HCS on tech.knime.org/community/image-processing).
What would be cool (dreaming):
@Feature(Name="Mean", Dependency="none")
double mean = 0.0;
We use these features (as well as CellProfiler for example) for classification/clustering/measurements/statistic issues afterwards.
I think how we define such FeatureFactories/MeasurementServices also heavily depend on the definition of ROIs in ImgLib2 (e.g. RandomAccessibleInterval vs. IterableInterval).