<div>Hi Jonathan,</div>
<div>&nbsp;</div>
<div>One thing you should keep in mind when modifying the code is that the transform parameters you are optimizing&nbsp;are the four components of a quaternion and three translation components.</div>
<div>&nbsp;</div>
<div>A quaternion is only purely rigid if the magnitude is one. One of the feature of the QuaternionRigidTransformGradientDescentOptimizer is that this normalization is done at each step.</div>
<div>&nbsp;</div>
<div>If you swap out the optimizer and unless you do something special (e.g. you have set up and observer to the optimizer and is doing the normalization yourself), the magnitude of the quaternion might drift and you will no longer have a rigid transform.
</div>
<div>&nbsp;</div>
<div>To ensure you end up with a purely rigid transform you will either have to do the normalization at each step or use another type of rigid transform such as Euler3DTransform.</div>
<div>&nbsp;</div>
<div>- Lydia</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div><span class="gmail_quote">On 6/14/06, <b class="gmail_sendername">Jonathan Wong</b> &lt;<a href="mailto:jon.the.wong@gmail.com">jon.the.wong@gmail.com</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div>Hi<br><br>I currently modified my the MultiResMIRRegistration example and have gotten it to compile by simply changing the optimizer from Quaternion to the OnePlusOneEvolutionary optimizer.<br><br>I used the default settings everyone seems to be using. 
<br><br>&nbsp; m_Optimizer-&gt;Initialize( 10,1,-1 );<br>&nbsp; m_Optimizer-&gt;SetEpsilon( 1.0 );<br>&nbsp; m_Optimizer-&gt;SetMaximumIteration( 4000 );<br><br><br>and i checked my scales, where the translation scale is 16mm, since my image is 263 with a pixel size of 
0.062 mm.<br><br>I keep on getting the famous &quot;all the sampled point mapped to the outside o the moving image&quot; error. <br><br>I've been reading similar posts on the mailing list, and they always talk about setting the radius, shrink, and grow parameters as well as scaling. 
<br><br>However, I wanted to know what Epislon is for? Thanks.<br>&nbsp;</div>
<div><span class="sg"><br>Jonathan Wong<br></span></div><br>_______________________________________________<br>Insight-users mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Insight-users@itk.org">
Insight-users@itk.org</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br><br>
<br></blockquote></div><br>