NOTICE! This is a static HTML version of a legacy ImageJ Trac ticket.

The ImageJ project now uses GitHub Issues for issue tracking.

Please file all new issues there.

Ticket #516 (closed task: fixed)

Opened 2011-05-17T09:09:55-05:00

Last modified 2014-03-21T17:32:39-05:00

Add arbitrary properties to Metadata

Reported by: gharris Owned by: curtis
Priority: major Milestone: imagej2-b8-analysis
Component: Data Model Version:
Severity: serious Keywords:
Cc: Blocked By:
Blocking: #1920, #1923


Wondering if we want to add something like properties to the ImgPlus Metadata, for storing arbitrary metadata with ImgPlus.

ij.ImagePlus had a private Properties field, properties (a HashTable), and accessors, get/setProperty, getProperties.

Specific uses include "Label", "Info", and "FHT".

And what of FileInfo?
Are there things from this that we want to retain, perhaps in our metadata?

Change History

comment:1 Changed 2011-05-17T09:13:14-05:00 by gharris

  • Owner changed from bdezonia to gharris
  • Status changed from new to assigned

comment:2 Changed 2011-05-23T10:57:37-05:00 by gharris

  • Milestone changed from biweekly-2011: May-23 to Jun-03 to biweekly-2011: Jun-06 to Jun-17

comment:3 Changed 2011-06-06T12:47:02-05:00 by bdezonia

I had written up some similar material in ticket #508.

An example issue includes IJ1's reliance on slice labels sometimes. Run the legacy Image::Type plugins (HSB Stack and RGB stack). In IJ1 each slice is labeled with Hue/Saturation/Brightness or Red/Green/Blue. That info is lost to IJ2. Those labels are used to create an RGB Image from a HSB or RGB stack.

All metadata may need to be preserved to IJ2 & back across the legacy layer. IJ1 has a image title, calibration values, units, file info, image stack title, image slice labels, and Properties. Anything else?

comment:4 Changed 2011-06-20T11:59:20-05:00 by gharris

  • Milestone changed from biweekly-2011: Jun-06 to Jun-17 to biweekly-2011: Jun-20 to Jul-01

comment:5 Changed 2011-07-31T13:22:47-05:00 by gharris

  • Priority changed from major to minor
  • Severity changed from major to minor
  • Milestone changed from biweekly-2011: Jul-18 to Jul-29 to imagej-2.0-alpha5

comment:6 Changed 2011-08-15T11:16:37-05:00 by curtis

  • Owner changed from gharris to curtis
  • Milestone changed from imagej-2.0-alpha5 to imagej-2.0-beta1

comment:7 Changed 2011-10-20T14:00:26-05:00 by curtis

  • Priority changed from minor to major
  • Severity changed from minor to serious

comment:8 Changed 2011-11-01T10:47:27-05:00 by curtis

  • Milestone changed from imagej-2.0-beta1 to imagej-2.0-beta2

comment:9 Changed 2011-11-29T17:49:42-06:00 by bdezonia

One thing to note: we should add the translation of arbitrary metadata across the legacy layer when we address this ticket.

comment:10 Changed 2012-02-26T22:35:29-06:00 by curtis

  • Blocking 564 added

comment:11 Changed 2012-05-14T15:57:01-05:00 by curtis

This should be doable for the beta3 release.

comment:12 Changed 2012-07-12T17:27:03-05:00 by curtis

  • Milestone changed from imagej-2.0.0-beta3 to imagej-2.0.0-beta4

comment:13 Changed 2012-08-22T15:07:35-05:00 by bdezonia

I had some thoughts on metadata in general.

It would be nice if metadata could be tied to a sample or an XY plane or a ZT plane or the whole image etc. Also to subregions of an image? Note that if we had this fine grain control then metadata could be maintained more easily when translating data or subsampling an image or reordering data within an image etc.

A data element would need a unique id (i.e. for a sample the (x,y,z,...) coord, for a plane the (axis, planeNum) coord, for an image the id is obvious.

It would be nice to tag data elements with metadata objects. For instance a plane could have a color table, one or more overlays, etc. A sample could have a textual comment of some sort.

I don't know a lot about metadata handling in general. These are just some random thoughts.

Last edited 2012-08-22T15:16:20-05:00 by bdezonia

comment:14 Changed 2012-09-06T14:29:48-05:00 by curtis

  • Blocking 9 added
  • Milestone changed from imagej-2.0.0-beta4 to imagej-2.0.0-beta5

comment:15 Changed 2013-06-05T15:13:36-05:00 by bdezonia

  • Milestone changed from imagej2-b7-ndim-data to imagej2-b8-analysis

comment:16 Changed 2013-06-07T15:34:00-05:00 by curtis

  • Blocking 1920 added

comment:17 Changed 2013-06-07T15:37:54-05:00 by curtis

  • Blocking 9 removed

(In #9) This ticket is really about improving the infrastructure if I/O for ImageJ2. With SCIFIO, we have now done that. The 2.0.0-beta-7 release is using SCIFIO 0.1.0—File Open and File Save are now extensible—so this ticket is complete.

Remaining tickets about improving the existing I/O mechanism have been migrated to ticket #1920.

comment:18 Changed 2013-06-13T13:34:40-05:00 by bdezonia

  • Blocking 1923 added

comment:19 Changed 2013-08-29T15:21:14-05:00 by bdezonia

  • Blocking 564 removed

(In #564) Fixed with commit 8d63e7ef9cbe902a0ad316c118b9b30a09c6f1d6

comment:20 Changed 2014-03-21T17:32:39-05:00 by curtis

  • Status changed from assigned to closed
  • Resolution set to fixed

Added ImgPlus.getProperties() API in  imglib/imglib:46feae1f.

Last edited 2014-03-21T17:32:49-05:00 by curtis