08.06.2015 Views

Volume 2, Algorithms - mipav - National Institutes of Health

Volume 2, Algorithms - mipav - National Institutes of Health

Volume 2, Algorithms - mipav - National Institutes of Health

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

M I P A V<br />

M e d i c a l I m a g e P r o c e s s i n g, A n a l y s i s, & V i s u a l i z a t i o n<br />

Chapter 2, Using MIPAV <strong>Algorithms</strong>: B-Spline Automatic Registration<br />

HX ( ) = ⎛–---<br />

1⎞ ⎝ N⎠∑n k<br />

⋅ ( logn k<br />

– logN)<br />

k<br />

where log n k can be a precomputed lookup table <strong>of</strong> logarithms <strong>of</strong> integer<br />

values.<br />

The range <strong>of</strong> values for this measure is [0,1].<br />

Improving performance<br />

The gradient descent applied to a control point at a time can be quite slow.<br />

Performance can be improved by taking advantage <strong>of</strong> the local control<br />

aspect <strong>of</strong> using B-splines. Since only one control point is being moved at a<br />

time, the local control aspect <strong>of</strong> using B-splines means that only some <strong>of</strong> the<br />

registered source image values will be different. Note that for an image <strong>of</strong> a<br />

given size, the number <strong>of</strong> image values, under local control, affected by<br />

moving a control point decreases as the number <strong>of</strong> control points increases.<br />

One performance improvement can be achieved by precomputing the B-<br />

spline basis function values once for each possible sample for each dimension.<br />

Since the registration occurs by transforming the source image into<br />

the space <strong>of</strong> the target image, all samples for B-spline basis function evaluation<br />

always occur at the discrete sample coordinates for the target image.<br />

Since the number <strong>of</strong> target images samples for a dimension is xed, the B-<br />

spline basis function will be evaluated on the [0, 1] interval at equally<br />

spaced intervals (we are using open, uniform B-splines). For each dimension,<br />

a 2D array is created which stores B-splines basis function evaluations<br />

for each sample with the weight associated with each control point. Because<br />

<strong>of</strong> local control, many <strong>of</strong> these weights will be zero indicating that a sample<br />

is not affected by a particular control point. In the process <strong>of</strong> creating this<br />

2D array <strong>of</strong> precomputed basis function evaluations, the index range <strong>of</strong><br />

samples affected by each control point can be determined. The algorithm to<br />

determine this range does not examine the weights as they are computed;<br />

instead, the range <strong>of</strong> control points affecting a single sample are determined<br />

from the computed knot index and the known B-spline degree.<br />

Another performance improvement involves maintaining intermediate<br />

error measure calculations. For example, in the case <strong>of</strong> the least squares<br />

error measure, an image is maintained <strong>of</strong> the current error calculations,<br />

that is, the target image subtracted from the current registered source<br />

MIPAV User’s Guide, <strong>Volume</strong> 2, <strong>Algorithms</strong> 105<br />

12/5/08

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!