Ticket #878 (closed feature: fixed)
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:5 Changed 8 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 8 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 8 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 8 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:10 Changed 8 years ago by curtis
- Blocked By 1022 added
comment:10 Changed 8 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:13 Changed 7 years ago by curtis
- Milestone changed from imagej-2.0.0-beta3 to imagej-2.0.0-beta4
comment:16 Changed 7 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 7 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:22 Changed 5 years ago by curtis
- Status changed from accepted to closed
- Resolution set to fixed
Johannes completed this work a long time ago: https://github.com/imagej/imagej/commit/adf307d1ec6072d966c147f5c162d042ecd3662e