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 #285 (assigned feature)

Opened 2010-11-29T08:39:15-06:00

Last modified 2013-08-19T15:39:04-05:00

Improve support for ROIs, segmentation and labeling [rois]

Reported by: leek Owned by: curtis
Priority: major Milestone: imagej2-b9-rois
Component: Data Model Version:
Severity: major Keywords:
Cc: Blocked By: #352, #536, #693, #772, #878, #984, #1048, #1114, #1131, #1152, #1165, #1166, #1174, #1175, #1196, #1259, #1265, #1268, #1281, #1308, #1309, #1462, #1478, #1581, #1936
Blocking:

Description

Propose and refine a mechanism to represent segmentation and labeling in ImageJ.

Attachments

Segmentation and labeling in ImageJ.doc (52.5 KB) - added by leek 2010-11-29T08:40:05-06:00.
Segmentation proposal

Change History

Changed 2010-11-29T08:40:05-06:00 by leek

Segmentation proposal

comment:1 Changed 2010-11-29T08:58:19-06:00 by leek

  • Status changed from new to accepted

I've posted the whitepaper to the imagej dev mailing list and have received some useful feedback:

  • Discussed use of existing shape cursors in imagelib to represent labels and agreed that the overhead they would entail is risky.
  • Discussed adding cursors that iterate over the pixels in the perimeter of labeled objects - there are a number of measurements that only rely on the perimeter pixels. There are compact representations of labelings based on just the perimeter pixels (at least, for blobby objects).

I'm starting to code a reference implementation to prove out the concepts.

comment:2 Changed 2010-12-13T10:25:06-06:00 by leek

  • Status changed from accepted to closed
  • Resolution set to fixed
  • Milestone changed from biweekly-2010: Nov-29 to Dec-10 to biweekly-2010: Dec-13 to Dec-23

I have implemented a preliminary version of labeling. I have also implemented the "All connected components" algorithm for labeling connected regions of a binary image and for labeling an intensity image using the watershed algorithm.

I'll wait for comments before resolving as fixed; I might work on the algorithms to bring them more into line with the others in imglib.algorithms.

comment:3 Changed 2010-12-13T10:28:32-06:00 by leek

  • Status changed from closed to reopened
  • Resolution fixed deleted

comment:4 Changed 2011-01-18T09:31:16-06:00 by leek

  • Status changed from reopened to accepted
  • Milestone changed from biweekly-2010: Dec-13 to Dec-23 to biweekly-2011: Jan-17 to Jan-28

comment:5 Changed 2011-01-18T11:13:37-06:00 by leek

I will present my segmentation code during the Hackathon - slide deck and talk preparation.

comment:6 Changed 2011-04-11T10:11:56-05:00 by leek

  • Milestone changed from biweekly-2011: Mar-28 to Apr-08 to imagej-2.0-alpha2

I have updated the labeling code in the imglib2-roi branch to work with the rest of imglib2 with the exception of the gradient watershed method. This is waiting on completion of FFT code in imglib2.

comment:7 Changed 2011-07-27T15:10:31-05:00 by curtis

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

comment:8 Changed 2011-09-12T10:57:59-05:00 by leek

  • Milestone changed from imagej-2.0-alpha5 to imagej-2.0-beta3

comment:9 Changed 2012-02-24T15:17:33-06:00 by curtis

  • Type changed from task to feature
  • Summary changed from Segmentation representation in ImageJ to Improve support for ROIs, segmentation and labeling

comment:10 Changed 2012-02-24T15:17:44-06:00 by curtis

  • Component changed from ij-core to ij-data-model

comment:11 Changed 2012-02-24T15:18:01-06:00 by curtis

  • Owner changed from leek to curtis
  • Status changed from accepted to assigned

comment:12 Changed 2012-02-26T23:00:41-06:00 by curtis

  • Blocked By 878 added

comment:13 Changed 2012-02-27T10:55:22-06:00 by curtis

  • Blocked By 582 added

comment:14 Changed 2012-03-05T11:31:28-06:00 by curtis

  • Blocked By 1048 added

comment:15 Changed 2012-05-14T13:10:28-05:00 by curtis

  • Summary changed from Improve support for ROIs, segmentation and labeling to Improve support for ROIs, segmentation and labeling (beta4)

comment:16 Changed 2012-05-15T10:34:49-05:00 by curtis

  • Blocked By 878 removed

comment:16 Changed 2012-05-15T13:13:53-05:00 by curtis

  • Summary changed from Improve support for ROIs, segmentation and labeling (beta4) to Improve support for ROIs, segmentation and labeling (2.0.0-beta4)

comment:17 Changed 2012-07-03T13:26:11-05:00 by bdezonia

  • Blocked By 536, 878, 1103, 1114, 1131, 1152, 1165, 1166, 1174, 1175, 1189, 1196 added

comment:18 Changed 2012-07-03T13:29:33-05:00 by bdezonia

  • Blocked By 984 added

comment:19 Changed 2012-07-03T14:07:41-05:00 by curtis

  • Blocked By 1265 added

comment:20 Changed 2012-07-12T17:07:18-05:00 by curtis

  • Blocked By 693 added

comment:21 Changed 2012-07-13T22:06:25-05:00 by curtis

  • Blocked By 772 added

comment:22 Changed 2012-07-13T22:41:43-05:00 by curtis

  • Blocked By 1122 added

comment:23 Changed 2012-07-13T22:42:48-05:00 by curtis

  • Blocked By 1259 added

comment:24 Changed 2012-07-16T15:24:00-05:00 by bdezonia

  • Blocked By 1268 added

comment:25 Changed 2012-07-19T21:20:29-05:00 by dscho

  • Blocked By 352 added

comment:26 Changed 2012-08-03T13:45:28-05:00 by curtis

  • Blocked By 1122 removed

comment:27 Changed 2012-08-14T10:31:12-05:00 by curtis

  • Summary changed from Improve support for ROIs, segmentation and labeling (2.0.0-beta4) to Improve support for ROIs, segmentation and labeling (2.0.0-beta6)
  • Milestone changed from imagej-2.0.0-beta4 to imagej-2.0.0-beta6

ROIs will be the focus of beta6.

comment:28 Changed 2012-08-24T12:10:09-05:00 by bdezonia

  • Blocked By 1434 added

comment:29 Changed 2012-08-29T15:57:25-05:00 by bdezonia

  • Blocked By 1308 added

comment:30 Changed 2012-08-29T16:45:52-05:00 by bdezonia

  • Blocked By 1281 added

(In #1281) It seems that in IJ1 an ImageRoi is made. And it is a rectangle with internal image values. You can place it in image and drag it around. I think there might be a way to explode it so that pixels are draw into image.

Anyhow the legacy layer simply detects it as a Rectangle roi and makes a corresponding rectangle. The legacy layer needs to determine that the roi has an image associated with it and make an (as yet unwritten) ImageOverlay that can contain and draw the data.

comment:31 Changed 2012-09-07T11:47:22-05:00 by dscho

  • Blocked By 1462 added

comment:32 Changed 2012-09-14T15:30:22-05:00 by bdezonia

  • Blocked By 1478 added

comment:33 Changed 2012-10-10T13:14:31-05:00 by curtis

  • Summary changed from Improve support for ROIs, segmentation and labeling (2.0.0-beta6) to Improve support for ROIs, segmentation and labeling (2.0.0-beta8)

comment:34 Changed 2012-11-21T10:24:08-06:00 by bdezonia

  • Summary changed from Improve support for ROIs, segmentation and labeling (2.0.0-beta8) to Improve support for ROIs, segmentation and labeling (2.0.0-beta9)

comment:35 Changed 2012-12-06T10:14:20-06:00 by bdezonia

  • Blocked By 1309 added

comment:36 Changed 2012-12-06T10:17:56-06:00 by bdezonia

  • Blocked By 1433 added

comment:37 Changed 2012-12-06T10:20:23-06:00 by bdezonia

  • Blocked By 1433 removed

comment:38 Changed 2012-12-06T12:45:50-06:00 by curtis

  • Summary changed from Improve support for ROIs, segmentation and labeling (2.0.0-beta9) to Improve support for ROIs, segmentation and labeling [rois]

comment:39 Changed 2012-12-11T15:32:49-06:00 by bdezonia

  • Blocked By 1434 removed

(In #1434) This issue was fixed by the code that was put in place to translate the current Overlay as the ImagePlus' Roi and the other Overlays as the ImagePlus' Overlay.

comment:40 Changed 2012-12-12T09:18:11-06:00 by bdezonia

  • Blocked By 582 removed

(In #582) The math plugins rely on a class called InplaceUnaryTransfrom that can be used to transform data in a dataset. One passes the transformation function. It iterates a region and changes pixels. The region defaults to the whole image (or the current plane of the image in a slightly different incarnation). If a user provides an Overlay as an argument it only changes pixels whose coordinate is contained in the Overlay's region of interest.

I think everything this ticket was about is satisified. Closing.

comment:41 Changed 2012-12-18T15:30:28-06:00 by bdezonia

  • Blocked By 1103 removed

comment:42 Changed 2013-01-23T09:07:52-06:00 by bdezonia

  • Blocked By 1189 removed

comment:43 Changed 2013-07-08T10:24:24-05:00 by bdezonia

  • Blocked By 1936 added

comment:44 Changed 2013-08-19T15:39:04-05:00 by bdezonia

  • Blocked By 1581 added