<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Jim,<br>
thank you very much.<br>
<font color="#000000">but I don't understand , if you <big><span
 class="264435118-19112004"><font face="Verdana" size="2"><big>want to
add the current displacement field value to the position,&nbsp;&nbsp; you could
only derive </big></font></span><span class="264435118-19112004"><font
 face="Verdana" size="2"><big>I1(i+u, j+v)</big></font></span></big><span
 class="264435118-19112004"><font face="Verdana" size="2"><big> rather
than I1(i-u, j-v) from here. <br>
<br>
Siwei</big><br>
<br>
</font></span></font><br>
<br>
Miller, James V (Research) wrote:
<blockquote
 cite="midD95313D68743304EA8BD26E7B44ACF8E1C5C9F@xmb04crdge.crd.ge.com"
 type="cite">
  <meta http-equiv="Content-Type" content="text/html; ">
  <title></title>
  <meta content="MSHTML 6.00.2800.1458" name="GENERATOR">
  <div><span class="264435118-19112004"><font color="#0000ff"
 face="Verdana" size="2">Siwei,</font></span></div>
  <div><span class="264435118-19112004"></span>&nbsp;</div>
  <div><span class="264435118-19112004"><font color="#0000ff"
 face="Verdana" size="2">The LevelSetMotionRegistrationFunction
calculates the speed value as</font></span></div>
  <div><span class="264435118-19112004"></span>&nbsp;</div>
  <div><span class="264435118-19112004"><font color="#0000ff"
 face="Verdana" size="2">&nbsp; double speedValue = fixedValue - movingValue;<br>
  </font></span></div>
  <div><span class="264435118-19112004"><font color="#0000ff"
 face="Verdana" size="2">where</font></span></div>
  <div><span class="264435118-19112004"></span>&nbsp;</div>
  <div><span class="264435118-19112004"><font color="#0000ff"
 face="Verdana" size="2">&nbsp; fixedValue = (double)
m_FixedImage-&gt;GetPixel( index );<br>
  </font></span></div>
  <div><span class="264435118-19112004"><font color="#0000ff"
 face="Verdana" size="2">and </font></span></div>
  <div><span class="264435118-19112004"></span>&nbsp;</div>
  <div><span class="264435118-19112004"><font color="#0000ff"
 face="Verdana" size="2">&nbsp; movingValue =
m_MovingImageInterpolator-&gt;Evaluate( mappedPoint );<br>
  </font></span></div>
  <div><span class="264435118-19112004"><font color="#0000ff"
 face="Verdana" size="2">where mappedPoint is calculated as</font></span></div>
  <div><span class="264435118-19112004"></span>&nbsp;</div>
  <div><span class="264435118-19112004"><font color="#0000ff"
 face="Verdana" size="2">&nbsp; for( j = 0; j &lt; ImageDimension; j++ )<br>
&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; mappedPoint[j] = double( index[j] ) * m_FixedImageSpacing[j] + <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_FixedImageOrigin[j];<br>
&nbsp;&nbsp;&nbsp; mappedPoint[j] += it.GetCenterPixel()[j];<br>
&nbsp;&nbsp;&nbsp; }<br>
  </font></span></div>
  <div><span class="264435118-19112004"></span>&nbsp;</div>
  <div><span class="264435118-19112004"><font color="#0000ff"
 face="Verdana" size="2">In the above loop, index[] is the index of the
pixel under consideration in the fixed image.&nbsp; By multiplying by the
spacing and adding the origin, the index[] is converted to a physical
position in the fixed image.&nbsp; By adding it.GetCenterPixel(), we are
adding the current displacement field value to the position, i.e.
(u,v). So we evaluate the moving image at a position that takes into
account the current displacement field.</font></span></div>
  <div><span class="264435118-19112004"></span>&nbsp;</div>
  <div><span class="264435118-19112004"><font color="#0000ff"
 face="Verdana" size="2">So the speed value is calculated as I1(i,j) -
I2(i-u, j-v)</font></span></div>
  <div><span class="264435118-19112004"></span>&nbsp;</div>
  <div><span class="264435118-19112004"><font color="#0000ff"
 face="Verdana" size="2">Does this clarify the code?</font></span></div>
  <div><span class="264435118-19112004"></span>&nbsp;</div>
  <div><span class="264435118-19112004"><font color="#0000ff"
 face="Verdana" size="2">Jim</font></span></div>
  <div><span class="264435118-19112004"><font color="#0000ff"
 face="Verdana" size="2">&nbsp;</font></span></div>
  <div><span class="264435118-19112004"></span>&nbsp;</div>
  <div><span class="264435118-19112004"><font color="#0000ff"
 face="Verdana" size="2">&nbsp;</font></span></div>
  <div><span class="264435118-19112004"><font color="#0000ff"
 face="Verdana" size="2">&nbsp;</font></span></div>
  <blockquote>
    <div class="OutlookMessageHeader" align="left" dir="ltr"><font
 face="Tahoma" size="2">-----Original Message-----<br>
    <b>From:</b> Siwei Yang [<a class="moz-txt-link-freetext" href="mailto:s.yang@dkfz-heidelberg.de">mailto:s.yang@dkfz-heidelberg.de</a>]<br>
    <b>Sent:</b> Friday, November 19, 2004 10:48 AM<br>
    <b>To:</b> <a class="moz-txt-link-abbreviated" href="mailto:insight-users@itk.org">insight-users@itk.org</a><br>
    <b>Subject:</b> [Insight-users] Problem about
LevelSetMotionRegistrationFunction<br>
    <br>
    </font></div>
Hello all, <br>
I want to use the Levelsetmotionregistrationfilter, but in the
ComputeUpdate (LevelsetmotionregistrationFunction) I fand something
doesn't seems to be comprehensible<font size="2"><span
 style="font-size: 10pt;"></span></font>.&nbsp; According to equation 27 in
the paper of (B.C. Vemuri, J. Ye, Y. Chen, C.M. Leonard. "Image
registration via level-set motion: applications to atlas-based
segmentation". Medical Image Analysis. Vol. 7. pp. 1-20. 2003.), the
speed term should be&nbsp;&nbsp;&nbsp;&nbsp; I2(ij) -I1(i-u.., j-v..)&nbsp;&nbsp;&nbsp; instead of&nbsp;
I2(ij)-I1(ij), which is in the implementation.&nbsp;&nbsp;&nbsp; I' m not sure, if
what I say is correct . Perhaps some one can give me a good answer. <br>
    <br>
Thanks <br>
best wishes <br>
    <br>
Siwei Yang </blockquote>
</blockquote>
<br>
</body>
</html>