OOF2: The Manual

Name

TransitionPoints (TransitionPoints) — Divide segments at the intersections with pixel boundaries.

Synopsis

TransitionPoints(minlength)

Details

  • Base class: SegmentDivider
  • Parameters:

    minlength
    Minimum refined segment length in pixel units. A length of at least 2 is suggested. Type: A non-negative real number.

Description

Refining Skeleton Elements with divider set to TransitionPoints divides each marked edge into up to three Segments at the points where the original Segment crosses a boundary between two types of pixels. The parameter minlength sets a minimum size (in pixel units) for the subdivided segments.

The computation of these transition points involves the same subtleties that occur in the calculation of segment homogeneiety. The green circles in Figure 6.117 mark where an element's edges cross pixel boundaries. The top boundary has two transition points, and the right boundary has one. The left boundary appears to have six. However, in a discretized image an diagonal pixel boundary will always have the form of a staircase, and a segment following the staircase will intersect the boundary multiple times. These intersections are not true transition points. OOF2 recognizes this and will ignore the step intersections.

Figure 6.117. Transition Points

Transition Points

An element overlying three types of pixels. The green circles mark transition points on the edges. The red arrows mark points which look like transition points, but aren't, because they're (probably) an artifact of the discretization of the image.


As shown in Figure 2.8, the transition points can be different on the two sides of a segment. If the Elements on both sides of the Segment are both being refined, the lists of transition points from both sides are merged. Points from different sides that are less than minlength apart are replaced by one point halfway between them. Any remaining sections of the Segment that are shorter than minlength are absorbed into their neighbors.

Finally, because the refinement RuleSets only handle bisection and trisection, if a Segment has more than two transition points, OOF2 ignores all but the two most evenly spaced ones.