<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">In the ITK Software Guide there is some general advice on how to approach adjusting the parameters of registration. The following is said regarding the Affine Transform:</span><div style="font-family:arial,sans-serif;font-size:13px">
<br></div><blockquote style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 0px 40px;border:none;padding:0px"><div>5)  The MOST critical values of the registration process are the</div><div>      scaling parameters that define the proportions between</div>
<div>       the parameters of the transform. In your case, for an Affine</div><div>       Transform in 2D, you have 6 parameters. The first four are</div><div>        the ones of the Matrix, and the last two are the translation.</div>
<div><br></div><div>        The rotation matrix value must be in the ranges of radians</div><div>         which is typically [ -1 to 1 ], while the translation values are</div><div>         in the ranges of millimeters (your image size units).</div>
<div><br></div><div>        You want to start by setting the scaling of the matrix</div><div>        parameters to 1.0, and the scaling of the Translation</div><div>        parameters to the holy esoteric values:</div><div>
<br></div><div>               1.0   /  (  10.0 * pixelspacing[0]  *  imagesize[0]  )</div><div>               1.0   /  (  10.0 * pixelspacing[1]  *  imagesize[1]  )</div><div><br></div><div>         This is telling the optimizer that you consider that rotating</div>
<div>         the image by 57 degrees is as "significant" as translating</div><div>         the image by half its physical extent.</div><div><br></div><div>        Note that esoteric value has included the arbitrary number</div>
<div>        10.0 in the denominator, for no other reason that we have</div><div>         been lucky when using that factor. This of course is just a</div><div>         supersticion, so you should feel free to experiment with</div>
<div>         different values of this number.</div><div><br></div><div>        Just keep in mind that what the optimizer will do is to</div><div>        "jump" in a paramteric space of 6 dimension, and that the</div>
<div>       component of the jump on every dimension will be proporitional</div><div>       to 1/scaling factor * OptimizerStepLenght.     Since you put</div><div>       the optimizer Step Length to 0.1, then the optimizer will start</div>
<div>       by exploring the rotations at jumps of about 5degrees, which</div><div>       is a conservative rotation for most medical applications.</div><div><br></div><div>       If you have reasons to think that your rotations are larger or</div>
<div>        smaller, then you should modify the scaling factor of the  matrix</div><div>        parameters accordingly.</div><div><br></div><div>        In the same way, if you thinkl that 1/10 of the image size is too</div>
<div>        large as the first step for exploring the translations, then you</div><div>        should modify the scaling of  translation parameters accordingly.</div><div><br></div></blockquote><span style="font-family:arial,sans-serif;font-size:13px">I would like to know if anyone has similar advice regarding the BSplineTransform. Any help is welcome!</span><br>
<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Stephen Parsons</span></div></div>