An adaptive directional second derivative is applied at each voxel based on its corresponding moving frame. The directional derivative is taken along the perpendicular from the voxel to the medial axis or surface. The zero-crossing points of the directional second derivatives are localized at subvoxel resolution to determine the precise region boundaries and quantitate the widths.

At every voxel within the candidate regions, the directional second derivative is calculated depending on its corresponding moving frame. This spatially variable directional derivative is written as

where r(x) is the unit vector whose direction is parallel to the perpendicular from the voxel position x to the straight line defined by the origin and the medial axis direction of the moving frame. The foot of the perpendicular can be regarded as the corresponding axis position. The origin is given by the voxel position of the medial axis point and the offset vector p. ae is the filter scale used in the edge localization; it is desirable that ae be small compared to the line width for accurate edge localization.

After the adaptive derivatives have been calculated at all the voxels, subvoxel edge localization is carried out at every voxel in the candidate regions. Let oa be the foot of the perpendicular on the axis. Let ra be the direction from oa to the voxel position xa. For each voxel, we reconstruct the profiles originating from oa in the directions ra and — ra for fl'ine(x; ae) and the initial regions (which we specify as bline(x)) obtained in Step 1. The edges are then localized in both directions and the width is calculated as the distance between the two edge locations. The profile is reconstructed at subvoxel resolution by using a trilinear interpolation for fHne{xt; ae) and a nearest-neighbor interpolation for bline(x).

Let f"(s) be the profiles of fl'ine(x; ae) along the directions ra from oa. Let b(s) be the profiles of bline(x). Here, r denotes the position from the foot of the perpendicular on the axis. The localization of edges consists of two steps; finding the initial point for the subsequent search using b(s), and then searching for the zero-crossing of f"(s). The initial point, p0, is given by s of the first encountered point satisfying b(s) = 0, starting the search from s = 0, that is, the axis point, to the direction ra. Given the initial point of the search, if f"(p0) < 0, search outbound from the axis point along the profile for the zero-crossing position p; otherwise, search inbound. After the zero-crossing position q in the opposite direction — ra is similarly determined, the width (diameter) is given by |p — q |.

At every voxel within the candidate regions, the directional second derivative is taken orthogonal to both e1 and e2, that is, along e3, in its corresponding moving frame. This spatially variable directional derivative is written as fsheet(X; ae) = ?(X)T'V2 f (X; ae)KX), (10.40)

where r(X) is the unit vector whose direction is parallel to the medial surface normal of the moving frame. Using a method analogous to that employed in the line case, the profiles f"(s) and b(s) of fs'heet(X; ae) and bsheet(X) are reconstructed for the directions r, respectively. These profiles are then used to determine the edge locations p and q in the two directions r and —r, respectively, and finally the width (thickness) is obtained as | p — q |.

Was this article helpful?

## Post a comment