<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>