Ticket #1482 (closed defect: fixed)

Opened 7 years ago

Last modified 6 years ago

PointSet anchors are inconsistent in OPS

Reported by: bdezonia Owned by: bdezonia
Priority: major Milestone: imagej2-b5-scripting
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:1 Changed 7 years ago by bdezonia

  • Blocking 1467 added

comment:2 Changed 6 years ago 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 6 years ago 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 6 years ago by curtis

  • Milestone changed from imagej-2.0.0-beta6 to imagej-2.0.0-beta5-new

comment:5 Changed 6 years ago by bdezonia

  • Blocking 1511 added; 1467 removed
Note: See TracTickets for help on using tickets.