Ticket #1482 (closed defect: fixed)
Opened 2012-09-14T10:10:03-05:00
Last modified 2012-10-10T15:14:23-05:00
PointSet anchors are inconsistent in OPS
Reported by: | bdezonia | Owned by: | bdezonia |
---|---|---|---|
Priority: | major | Milestone: |
|
Component: | ImgLib2 OPS | Version: | |
Severity: | serious | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | #1511 |
Description
In OPS each PointSet has an anchor (or origin) about which other points are defined. This point is used when one wants to slide a neighborhood across another set of points.
Right now the handling of moving the anchor points is inconsistent in the pointset package. Some PointSets take the given point and use it as a direct reference. Other PointSets copy data from the anchor and in no way use the reference. They should be made more consistent.
One issue of consistency is that you can combine PointSets that have different origins. Maybe this is bad and we should require that when combining sets they must have the same origin. Or maybe the points within the child sets should get translated such that their relative position does not change but their origins coincide at a shared point. (This presents its own problems when PointSets are mathematical (like an Or set) and they may have no members to move.)
Note that this issue can cause problems. For instance there was an AdaptiveMedian example in IJ2 at one time and the function still exists in OPS. However when the ability to define a hyperspherical neighborhood was added this functionality was lost. This is because the hypersphere code relies on a Condition that refers to a single point. The nested neighborhoods of the adaptive median could not be made to share this point and thus the Condition would generally fail to evaluate correctly.
Change History
comment:2 Changed 2012-10-09T13:07:44-05:00 by bdezonia
With imglib commit 4b11d7266aa9efb9a11fff03bdb54a9fd8fc2147 the origin handling code was changed to not rely on references. Moving PointSets involves calling translate(long[] deltas). This slows the performance but makes the code more consistent. Now PointSets with different origins can get glued together and translate()'ed without inconsistency.
The new code should also allow the adaptive median code to be resurrected as its own plugin. That task remains.
comment:3 Changed 2012-10-09T14:15:18-05:00 by bdezonia
- Status changed from new to closed
- Resolution set to fixed
The adpative median issue has its own (now closed) ticket. Closing this ticket.
comment:4 Changed 2012-10-10T13:27:49-05:00 by curtis
- Milestone changed from imagej-2.0.0-beta6 to imagej-2.0.0-beta5-new