Ticket #878 (closed feature: fixed)

Opened 6 years ago

Last modified 3 years ago

Support "subtracting" ROIs

Reported by: dscho Owned by: dscho
Priority: critical Milestone: imagej2-b9-rois
Component: Core Version:
Severity: serious Keywords:
Cc: Blocked By: #1022, #1465, #1466
Blocking: #285, #1010

Description

In ImageJ 1.x, you can hold down the Alt key when selecting a region which will _subtract_ the selected part from the current selection.

This requires a substantial extension of our current ROI framework.

Change History

comment:1 Changed 6 years ago by curtis

  • Blocking 285, 1010 added

comment:2 Changed 6 years ago by curtis

  • Type changed from defect to feature

comment:3 Changed 6 years ago by dscho

  • Priority changed from major to blocker

comment:4 Changed 6 years ago by dscho

  • Status changed from new to accepted

comment:5 Changed 6 years ago by dscho

  • Blocking 1022 added

comment:5 Changed 6 years ago by dscho

Unfortunately, JHotDraw does not offer any functionality like that, so most likely I will have to write code to generate a JHotDraw figure from an AWT GeneralPath and use AWT for the geometry operations.

comment:6 Changed 6 years ago by dscho

Progress: I found out how to convert a Java AWT-type Shape object (given its PathIterator) into a JHotDraw-type BezierPath.

Since JHotDraw depends on AWT's geometry classes anyway, we can now rely on java.awt.geom.Area to do the constructive area geometry (such as subtraction). We will also be able to use this to flatten multiple selections into one single composite one.

As always, progress can be seen in the Git repository (in this case, the 'roi-subtract' branch).

comment:7 Changed 6 years ago by dscho

The real problem seems to be that we need to add support for multi-path bezier RegionOfInterests to ImgLib2...

comment:8 Changed 6 years ago by dscho

And related to the lack of multi-path bezier ROIs in ImgLib2: there is no support for such a beast in JHotDrawCanvas either. So I'll do that, too.

comment:9 Changed 6 years ago by curtis

  • Blocking 1022 removed

comment:10 Changed 6 years ago by curtis

  • Blocked By 1022 added

(In #1022) Selection tool is successfully eliminated. Alt key will not work until subtracting ROIs works (see ticket #878). But there is nothing left to do for this specific ticket.

comment:10 Changed 6 years ago by curtis

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

Finishing this work will have to wait till beta2, as we are too short on time.

comment:11 Changed 6 years ago by curtis

  • Blocking 1143 added; 285 removed

comment:12 Changed 5 years ago by curtis

  • Priority changed from blocker to critical

comment:13 Changed 5 years ago by curtis

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

comment:14 Changed 5 years ago by bdezonia

  • Blocking 285 added

comment:15 Changed 5 years ago by bdezonia

  • Blocking 1143 removed

comment:16 Changed 5 years ago by curtis

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

ROIs will be the focus of beta6.

comment:17 Changed 5 years ago by dscho

I worked quite a bit on this and am close to merging things. It requires a change in ImgLib that introduces a dependency on AWT again, but that will go away soon. It also adds our own ad-hoc JHotDraw tool for general paths (i.e. a list of Beziér paths combined with the even/odd winding rule), re-using the BezierTool. The progress can be seen in the 'roi-dscho' branch in imglib.git and the 'roi-subtract' branch in imagej.git.

comment:18 Changed 5 years ago by dscho

  • Blocked By 1465 added

comment:19 Changed 5 years ago by dscho

  • Blocked By 1466 added

comment:20 Changed 5 years ago by dscho

  • Blocked By 1470 added

comment:21 Changed 5 years ago by bdezonia

  • Blocked By 1470 removed

comment:22 Changed 3 years ago by curtis

  • Status changed from accepted to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.