Femur Segmentation

Stradwin can estimate the thickness of the cortex of a bone surface and display this as a colour wash mapped to the surface in 3D, using the technique described here. A prerequisite is a segmentation of the bone surface. For human femurs, Stradwin offers semi-automatic segmentation using a model of the femur. This may speed up the segmentation process, especially when the CT data is noisy.

Initial threshold-based segmentation

The first step in the process is to segment the femur as well as possible using a simple threshold on the CT value. Use the standard thresholding options in the draw task page to do this. You will be left with a set of contours defining the femoral surface, probably quite accurate lower down the femoral shaft, but very inaccurate higher up near the acetabulum.

Model initialization

Now switch to the "Fit femur" task. The first step is to fit the model very roughly using four landmarks. Select the "mark" tool and click in the review canvas, in the following order, on (a) the top of the femoral head, (b) the top of the greater trochanter, (c) the tip of the lesser trochanter and (d) the shoulder of the femoral shaft (in the same slice as (c), the ridge around 90 degrees round from the lesser trochanter). A prompt at the top of the task page reminds you which landmark to define next. After all four landmarks have been defined, click "Fit to landmarks". You will see the red femoral surface moving to approximately the right position.

The rest of the process involves refining the fit using the contours defined in the first step. Select the appropriate object in the "Points from" menu and then click "Map points". You will see in the review canvas a lot of red points derived from the contours. We are going to refine the position of the femoral surface so that it aligns as well as possible with the closest red points, using an iterative registration algorithm. Points that are currently closest to the surface are shown in bright red, other points in dark red.

Iterative registration

Scroll through the segmented frames and edit the red points manually. You will need to add some points (use the "mark" tool) where the thresholded contours did not capture the surface correctly, and perhaps also delete some points (use the "erase" tool) where there are confusing red points on the wrong surface. The "display compounding" slider allows you to see red points on nearby frames too, and delete them all with one sweep of the "erase" tool. At any point, you can refit the red femoral surface to the current set of red points by pressing the "start registration" button. For now, leave the "nonrigid flexibility" control at zero, and run 10 registration iterations at a time, before reviewing the result. With no nonrigid flexibility, the fit is affine (16 degrees of freedom).

The "Distance limit for matches" slider sets how far away from the surface Stradwin is prepared to look for a red point. Initially, when the fit is poor, you will need quite a large value so that the registration algorithm can discover the correct red points and converge on a good solution. Later, you can reduce the slider value so that only very nearby red points affect the registration process: all the other (dark red) points are ignored.

When you have a decent affine fit, and a decent set of bright red points to fit to (dark red points are less problematic), you can refine the fit by introducing some nonrigid flexibility. Start by setting the "nonrigid flexibility" control to a low value. You may then need to manually refine the red points before doing a final fit with a higher "nonrigid flexibility" setting. Note that the nonrigid part of the registration is reset every time you press the "start registration" button: this prevents the surface getting tangled as you edit the red points. For this reason, you may wish to perform more than 10 iterations, say 20, for the final fit.

Mapping back to contours

By now, the red femoral surface should be a good fit to the proximal femur, but it only covers the region down to the lesser trochanter. Scroll down to the last frame that is correctly segmented using the model. Use the "Contours to" menu to select the object which will receive the segmentation result (this could be the same one you selected in the "Points from" menu) and press "Map contours". This generates a new set of contours for this object. Contours on frames above the current frame are derived from the fitted model. Contours on frames below the current frame are derived from the original threshold contours.

If any further editing is required, this can be performed using the standard tools on the draw task page.