<br>Hi Benjamin,<br><br>Please find attached the modified DeformableRegistration example<br>that uses the filter<br><br>    itkDeformableSimplexMesh3DGradientConstraintForceFilter<br><br>This attached file compiles fine.<br>
<br><br>     Regards,<br><br><br>            Luis<br><br><br>--------------------------------------------------------------------------------------------<br><div class="gmail_quote">On Sun, Aug 16, 2009 at 8:13 AM, Benjamin Klimczak <span dir="ltr">&lt;<a href="mailto:klimczaks@gmx.de">klimczaks@gmx.de</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi Luis,<br>
<br>
thanks for looking into my problem.<br>
<br>
I have also tried to use the itkDeformableSimplexMesh3DGradientConstraintForceFilter.h but I ran into strange template compiler errors when I created a simplex mesh, i.e. when I used the TriangleMeshToSimplexMeshFilter. The code of this test is attached.<br>

<br>
Thanks again and best regards,<br>
Benjamin<br>
<br>
Luis Ibanez schrieb:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">
<br>
Hi Benjamin,<br>
<br>
Thanks for sharing the images.<br>
<br>
Please find attached a modified version of the deformable model<br>
example that will read your mask, extract an isosurface from it and<br>
pass the data to the deformable model filter.<br>
<br>
With this code we have reproduced your observation that the<br>
surface doesn&#39;t propagate with the current parameters.<br>
<br>
We are now trying with the filter<br>
itkDeformableSimplexMesh3DGradientConstraintForceFilter.h<br>
<br>
which is more commonly used...<br>
<br>
<br>
<br>
    Regards,<br>
<br>
<br>
         Luis,<br>
<br>
<br>
-----------------------------------------<br></div><div class="im">
On Thu, Aug 13, 2009 at 9:05 AM, Benjamin Klimczak &lt;<a href="mailto:klimczaks@gmx.de" target="_blank">klimczaks@gmx.de</a> &lt;mailto:<a href="mailto:klimczaks@gmx.de" target="_blank">klimczaks@gmx.de</a>&gt;&gt; wrote:<br>

<br>
    Hi Luis,<br>
<br>
    thank you for the answer and I&#39;m sorry for the late reply.<br>
    I tried the suggested values from DeformableModel2.cxx in<br>
    DeformableModel1.cxx, but still nothing is changed by the filter.<br>
    I have uploaded the data I use here (image and segmentation):<br>
<br>
    <a href="http://www.lfb.rwth-aachen.de/public/aorta_img.vtk" target="_blank">http://www.lfb.rwth-aachen.de/public/aorta_img.vtk</a><br>
    <a href="http://www.lfb.rwth-aachen.de/public/aorta_seg.vtk" target="_blank">http://www.lfb.rwth-aachen.de/public/aorta_seg.vtk</a><br>
<br>
    I&#39;m working with the MITK btw. and have created the segmentation<br>
    with its GUI application.<br>
<br>
    Any hint why this isn&#39;t working would be welcome.<br>
<br>
    Thanks a lot,<br>
    Benjamin<br>
<br>
<br>
    -------- Original-Nachricht --------<br>
    &gt; Datum: Sat, 8 Aug 2009 11:13:23 -0400<br>
    &gt; Von: Luis Ibanez &lt;<a href="mailto:luis.ibanez@kitware.com" target="_blank">luis.ibanez@kitware.com</a><br></div>
    &lt;mailto:<a href="mailto:luis.ibanez@kitware.com" target="_blank">luis.ibanez@kitware.com</a>&gt;&gt;<br>
    &gt; An: Benjamin Klimczak &lt;<a href="mailto:klimczaks@gmx.de" target="_blank">klimczaks@gmx.de</a> &lt;mailto:<a href="mailto:klimczaks@gmx.de" target="_blank">klimczaks@gmx.de</a>&gt;&gt;<br>
    &gt; CC: <a href="mailto:insight-users@itk.org" target="_blank">insight-users@itk.org</a> &lt;mailto:<a href="mailto:insight-users@itk.org" target="_blank">insight-users@itk.org</a>&gt;<div class="im"><br>
    &gt; Betreff: Re: [Insight-users] DeformableMesh3DFilter example<br>
    doesn\&#39;t change   input<br>
<br>
    &gt; Hi Benjamin,<br>
    &gt;<br>
    &gt; Please look at the suggested values in DeformableModel2.cxx<br>
    &gt;<br>
    &gt; If that still doesn&#39;t work for you, we may need to have access to<br>
    &gt; the image that you are using to give you more guidance.<br>
    &gt;<br>
    &gt;<br>
    &gt;      Regards,<br>
    &gt;<br>
    &gt;<br>
    &gt;            Luis<br>
    &gt;<br>
    &gt;<br>
    &gt;<br>
    -----------------------------------------------------------------------------------------<br>
    &gt; On Fri, Aug 7, 2009 at 6:01 AM, Benjamin Klimczak<br></div>
    &lt;<a href="mailto:klimczaks@gmx.de" target="_blank">klimczaks@gmx.de</a> &lt;mailto:<a href="mailto:klimczaks@gmx.de" target="_blank">klimczaks@gmx.de</a>&gt;&gt;<div class="im"><br>
    &gt; wrote:<br>
    &gt;<br>
    &gt; &gt; Hello everybody.<br>
    &gt; &gt;<br>
    &gt; &gt; I can&#39;t get the DeformableMesh3DFilter from the example<br>
    &gt; &gt; Examples/Segmentation/DeformableModel1.cxx to change my input<br>
    data.<br>
    &gt; Input<br>
    &gt; &gt; and output mesh are identical. I have tried different input<br>
    files and<br>
    &gt; &gt; extreme settings of the parameters but nothing seems to work.<br>
    &gt; &gt;<br>
    &gt; &gt; Thanks for any help.<br>
    &gt; &gt;<br>
    &gt; &gt; Regards<br>
    &gt; &gt; Benjamin<br>
    &gt; &gt; --<br>
    &gt; &gt; Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla<br>
    Firefox 3<br>
    &gt; -<br>
    &gt; &gt; sicherer, schneller und einfacher!<br>
    <a href="http://portal.gmx.net/de/go/atbrowser" target="_blank">http://portal.gmx.net/de/go/atbrowser</a><br>
    &gt; &gt; _____________________________________<br></div>
    &gt; &gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a> &lt;<a href="http://www.kitware.com" target="_blank">http://www.kitware.com</a>&gt;<div class="im"><br>
    &gt; &gt;<br>
    &gt; &gt; Visit other Kitware open-source projects at<br>
    &gt; &gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
    &gt; &gt;<br>
    &gt; &gt; Please keep messages on-topic and check the ITK FAQ at:<br>
    &gt; &gt; <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
    &gt; &gt;<br>
    &gt; &gt; Follow this link to subscribe/unsubscribe:<br>
    &gt; &gt; <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
    &gt; &gt;<br>
<br>
    --<br>
    GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!<br>
    Jetzt freischalten unter <a href="http://portal.gmx.net/de/go/maxdome01" target="_blank">http://portal.gmx.net/de/go/maxdome01</a><br>
<br>
<br>
</div></blockquote>
<br>
<br>void QmitkTestPluginView::testItkDeformableSimplexModel()<br>
{<br>
  cout &lt;&lt; &quot;Test the deformable simplex model:&quot; &lt;&lt; endl;<br>
<br>
  const unsigned int Dimension = 3;<br>
  typedef double PixelType;<br>
  typedef itk::Image&lt;PixelType, Dimension&gt; ImageType;<br>
<br>
  typedef itk::Image&lt; unsigned char, Dimension &gt; BinaryImageType;<br>
<br>
  typedef itk::Mesh&lt;PixelType, Dimension&gt; MeshType;<br>
  typedef itk::SimplexMesh&lt;PixelType, Dimension&gt; SimplexMeshType;<br>
<br>
  typedef itk::CovariantVector&lt; double, Dimension &gt; GradientPixelType;<br>
  typedef itk::Image&lt; GradientPixelType, Dimension &gt; GradientImageType;<br>
<br>
  typedef itk::GradientRecursiveGaussianImageFilter&lt;ImageType, GradientImageType&gt; GradientFilterType;<br>
  typedef itk::GradientMagnitudeRecursiveGaussianImageFilter&lt;ImageType,ImageType&gt; GradientMagnitudeFilterType;<br>
<br>
  typedef itk::BinaryMask3DMeshSource&lt; BinaryImageType, MeshType &gt; MeshSourceType;<br>
<br>
  typedef itk::TriangleMeshToSimplexMeshFilter&lt;MeshType, SimplexMeshType&gt; TriangleToSimplexMeshFilterType;<br>
<br>
  typedef itk::DeformableSimplexMesh3DGradientConstraintForceFilter&lt;SimplexMeshType, SimplexMeshType&gt; DeformableModelFilterType;<br>
<br>
  typedef itk::ImageFileReader&lt; ImageType &gt; ReaderType;<br>
  typedef itk::ImageFileReader&lt; BinaryImageType &gt; BinaryReaderType;<br>
  ReaderType::Pointer imageReader = ReaderType::New();<br>
  BinaryReaderType::Pointer maskReader = BinaryReaderType::New();<br>
<br>
  imageReader-&gt;SetFileName( &quot;Y:\\Data\\modified\\im7.vtk&quot; );<br>
  maskReader-&gt;SetFileName( &quot;Y:\\Data\\modified\\seg.vtk&quot; );<br>
<br>
  GradientMagnitudeFilterType::Pointer gradientMagnitudeFilter = GradientMagnitudeFilterType::New();<br>
<br>
  gradientMagnitudeFilter-&gt;SetInput( imageReader-&gt;GetOutput() );<br>
  gradientMagnitudeFilter-&gt;SetSigma( 1.0 );<br>
<br>
  GradientFilterType::Pointer gradientMapFilter = GradientFilterType::New();<br>
  gradientMapFilter-&gt;SetInput( gradientMagnitudeFilter-&gt;GetOutput() );<br>
  gradientMapFilter-&gt;SetSigma( 1.0 );<br>
<br>
  try<br>
  {<br>
    gradientMapFilter-&gt;Update();<br>
  }<br>
  catch( itk::ExceptionObject &amp; e )<br>
  {<br>
    std::cerr &lt;&lt; &quot;Exception caught while updating gradientMapFilter &quot; &lt;&lt; std::endl;<br>
    std::cerr &lt;&lt; e &lt;&lt; std::endl;<br>
    return;<br>
  }<br>
  std::cout &lt;&lt; &quot;The gradient map was created!&quot; &lt;&lt; std::endl;<br>
<br>
  MeshSourceType::Pointer meshSource = MeshSourceType::New();<br>
  //BinaryImageType::Pointer mask = maskReader-&gt;GetOutput();<br>
  meshSource-&gt;SetInput( maskReader-&gt;GetOutput() );<br>
  meshSource-&gt;SetObjectValue( 1 );<br>
<br>
  std::cout &lt;&lt; &quot;Creating mesh...&quot; &lt;&lt; std::endl;<br>
  try<br>
  {<br>
    meshSource-&gt;Update();<br>
  }<br>
  catch( itk::ExceptionObject &amp; excep )<br>
  {<br>
    std::cerr &lt;&lt; &quot;Exception caught while creating the start mesh!&quot; &lt;&lt; std::endl;<br>
    std::cerr &lt;&lt; excep &lt;&lt; std::endl;<br>
    return;<br>
  }<br>
<br>
  TriangleToSimplexMeshFilterType::Pointer triangleToSimplexFilter = TriangleToSimplexMeshFilterType::New();<br>
  triangleToSimplexFilter-&gt;SetInput( meshSource-&gt;GetOutput() );<br>
<br>
  std::cout &lt;&lt; &quot;Converting mesh to simplex mesh...&quot; &lt;&lt; std::endl;<br>
  try<br>
  {<br>
    triangleToSimplexFilter-&gt;Update();<br>
  }<br>
  catch( itk::ExceptionObject &amp; excep )<br>
  {<br>
    std::cerr &lt;&lt; &quot;Exception caught while converting the start mesh to a simplex mesh!&quot; &lt;&lt; std::endl;<br>
    std::cerr &lt;&lt; excep &lt;&lt; std::endl;<br>
    return;<br>
  }<br>
<br>
  DeformableModelFilterType::Pointer deformableModelFilter = DeformableModelFilterType::New();<br>
  deformableModelFilter-&gt;SetGradient( gradientMapFilter-&gt;GetOutput() );<br>
  deformableModelFilter-&gt;SetInput( triangleToSimplexFilter-&gt;GetOutput() );<br>
<br>
  std::cout &lt;&lt; &quot;Updating the deformable model...&quot; &lt;&lt; std::endl;<br>
  try<br>
  {<br>
    deformableModelFilter-&gt;Update();<br>
  }<br>
  catch( itk::ExceptionObject &amp; excep )<br>
  {<br>
    std::cerr &lt;&lt; &quot;Exception caught while updating the deformable model!&quot; &lt;&lt; std::endl;<br>
    std::cerr &lt;&lt; excep &lt;&lt; std::endl;<br>
    return;<br>
  }<br>
  std::cout &lt;&lt; &quot;Done.&quot; &lt;&lt; std::endl;<br>
}<br></blockquote></div><br>