<div class="gmail_quote"><div><div class="Wj3C7c">Hi,<br><div class="gmail_quote"><br>I&#39;ve been trying to implement the DeformableMesh3DFilter and run into some problems. I&#39;m basically using a variation of the DeformableModel1.cxx
 algorithm in which I read in a vesselness image (which I get using itk&#39;s vesselness filter) and input his image to the gradient filter (I bypass the gradient magnitude calculation since this image is giving a maximum value at maximum vesselness measure). Instead of creating a mesh from a binary image, I read in points in 3D and create a polyline mesh from them (this is my initial mesh). I am&nbsp; using an open mesh as an initial guess that should be deformed to the vesselness image (which in my application corresponds to the coronary arteries). The program compiles fine but when I run it, it crashes when it attempts to do the deformable mesh filter.&nbsp; Is there another way to tackle this problem or solve the issue in this application? Anyway, below is a copy of my code. 
<br><br>I really appreciate your help and time in advance.<br><br><br>Best Regards,<br clear="all"><br>-- <br>Federico J. Lopez Bertoni<br>Graduate Research Assistant<br>Duke University<br>Department of Biomedical Engineering
<br>Office: &nbsp;1373 CIEMAS<br>Phone: &nbsp;919-660-5125<br><a href="mailto:fjlb@duke.edu" target="_blank">fjlb@duke.edu</a><br><br>#if defined(_MSC_VER)<br>#pragma warning ( disable : 4786 )<br>#endif<br>#include &quot;itkMesh.h

&quot;<br>#include &quot;
itkVertexCell.h&quot;<br>#include &quot;itkLineCell.h&quot;<br>#include &lt;cstdlib&gt;<br>#include &lt;iostream&gt;<br>#include &lt;fstream&gt;<br>#include &lt;stdio.h&gt;<br>#include &quot;itkImageFileReader.h&quot;<br>


#include &quot;itkImageFileWriter.h&quot;<br>#include &quot;itkCastImageFilter.h&quot;<br>#include &quot;itkRescaleIntensityImageFilter.h&quot;<br>#include &quot;itkGradientRecursiveGaussianImageFilter.h&quot;<br>//#include &quot;
itkGradientMagnitudeRecursiveGaussianImageFilter.h&quot;<br>#include &quot;itkDeformableMesh3DFilter.h&quot;<br>#include &quot;itkImage.h&quot;<br>#include &quot;itkCovariantVector.h&quot;<br>#include &quot;itkPointSetToImageFilter.h


&quot;<br>using namespace std;<br><br><br><br>int main( int argc, char *argv[] )<br>{<br>&nbsp;&nbsp;&nbsp; if( argc &lt; 4 )<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; &quot;Missing Parameters &quot; &lt;&lt; std::endl;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; &quot;Usage: VesselnessImage RCApoints ImageOut&quot; &lt;&lt; std::endl;
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return EXIT_FAILURE;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; //Read RCA, LCA points in.<br>&nbsp;&nbsp;&nbsp; ifstream infile;<br>&nbsp;&nbsp;&nbsp; infile.open( argv[2] , ios::in );<br>&nbsp;&nbsp;&nbsp; if (!infile.good())<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cout &lt;&lt; &quot;Error Opening file &quot; &lt;&lt; endl;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit (1);<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; int X[200], Y[200], Z[200], rad[200], i=0;<br>&nbsp;&nbsp;&nbsp; while(!infile.eof())<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; infile &gt;&gt; X[i] &gt;&gt; Y[i] &gt;&gt; Z[i] &gt;&gt; rad[i];<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (X[i] == -1 )
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; break;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //cout &lt;&lt; i &lt;&lt; &quot;\t&quot; &lt;&lt; X[i] &lt;&lt; &quot;\t&quot; &lt;&lt; Y[i] &lt;&lt; &quot;\t&quot; &lt;&lt; Z[i] &lt;&lt; &quot;\t&quot; &lt;&lt; rad[i] &lt;&lt; endl;
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; i++;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; /*ifstream infile1;<br>&nbsp;&nbsp;&nbsp; infile1.open( argv[3] , ios::in );<br>&nbsp;&nbsp;&nbsp; if (!infile1.good())<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cout &lt;&lt; &quot;Error Opening file &quot;&lt;&lt; endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit (1);
<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; int X1[200], Y1[200], Z1[200], rad1[200], i1=0;<br>&nbsp;&nbsp;&nbsp; while(!infile1.eof())<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; infile1 &gt;&gt; X1[i1] &gt;&gt; Y1[i1] &gt;&gt; Z1[i1] &gt;&gt; rad1[i1];<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (X1[i1] == -1 )<br>


&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; break;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cout &lt;&lt; i1 &lt;&lt; &quot;\t&quot; &lt;&lt; X1[i1] &lt;&lt; &quot;\t&quot; &lt;&lt; Y1[i1] &lt;&lt; &quot;\t&quot; &lt;&lt; Z1[i1] &lt;&lt; &quot;\t&quot; &lt;&lt; rad1[i1] &lt;&lt; endl;
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; i1++;<br>&nbsp;&nbsp;&nbsp; }*/<br><br>&nbsp;&nbsp;&nbsp; //typedef unsigned short PixelType;<br>&nbsp;&nbsp;&nbsp; typedef double PixelType;<br>&nbsp;&nbsp;&nbsp; const unsigned int Dimension = 3;<br>&nbsp;&nbsp;&nbsp; typedef itk::Mesh&lt; PixelType, Dimension &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MeshType;
<br>&nbsp;&nbsp;&nbsp; typedef MeshType::CellType&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CellType;<br>&nbsp;&nbsp;&nbsp; typedef itk::VertexCell&lt; CellType &gt;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; VertexType;<br>&nbsp;&nbsp;&nbsp; typedef itk::LineCell&lt; CellType &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LineType;<br>&nbsp;&nbsp;&nbsp; typedef itk::Image&lt; PixelType, Dimension &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ImageType;
<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; MeshType::Pointer mesh = MeshType::New();<br>&nbsp;&nbsp;&nbsp; MeshType::PointType&nbsp;&nbsp;&nbsp; points;<br>&nbsp;&nbsp;&nbsp; //Create the mesh<br>&nbsp;&nbsp;&nbsp; for(unsigned int j=0; j&lt;92; j++)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; points[0] = X[j];<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; points[1] = Y[j];
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; points[2] = Z[j];<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; mesh-&gt;SetPoint( j, points );<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; /*for(unsigned int j=0; j&lt;92; j++)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; points[0][0] = X[j];<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; points[0][1] = Y[j];<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; points[0][2] = Z[j];
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; mesh-&gt;SetPoint( j, points );<br>&nbsp;&nbsp;&nbsp; }*/<br><br>&nbsp;&nbsp;&nbsp; CellType::CellAutoPointer cellpointer;<br>&nbsp;&nbsp;&nbsp; for(unsigned int j=0; j&lt;91; j++)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cellpointer.TakeOwnership( new LineType );<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cellpointer-&gt;SetPointId( 0, j );
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cellpointer-&gt;SetPointId( 0, j+1 );<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; mesh-&gt;SetCell( j, cellpointer );<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cellpointer.TakeOwnership( new VertexType );<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cellpointer-&gt;SetPointId( 0, j );<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; mesh-&gt;SetCell( j + 90, cellpointer );
<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; // Print out the number of points and the number of cells.<br>&nbsp;&nbsp;&nbsp; std::cout &lt;&lt; &quot;# Points= &quot; &lt;&lt; mesh-&gt;GetNumberOfPoints() &lt;&lt; std::endl;<br>&nbsp;&nbsp;&nbsp; std::cout &lt;&lt; &quot;# Cell&nbsp; = &quot; &lt;&lt; mesh-&gt;GetNumberOfCells() &lt;&lt; std::endl;
<br><br>&nbsp;&nbsp;&nbsp; typedef MeshType::PointsContainer::ConstIterator&nbsp; PointIterator;<br>&nbsp;&nbsp;&nbsp; PointIterator pointIterator = mesh-&gt;GetPoints()-&gt;Begin();<br>&nbsp;&nbsp;&nbsp; PointIterator pointEnd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = mesh-&gt;GetPoints()-&gt;End();<br>

&nbsp; 
<br>&nbsp;&nbsp;&nbsp; while( pointIterator != pointEnd ) <br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //std::cout &lt;&lt; pointIterator.Value() &lt;&lt; std::endl;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ++pointIterator;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; typedef MeshType::CellsContainer::ConstIterator&nbsp; CellIterator;
<br><br>&nbsp;&nbsp;&nbsp; CellIterator cellIterator = mesh-&gt;GetCells()-&gt;Begin();<br>&nbsp;&nbsp;&nbsp; CellIterator cellEnd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = mesh-&gt;GetCells()-&gt;End();<br>&nbsp; <br>&nbsp;&nbsp;&nbsp; while( cellIterator != cellEnd ) <br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CellType * cell = 
cellIterator.Value();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //std::cout &lt;&lt; cell-&gt;GetNumberOfPoints() &lt;&lt; std::endl;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ++cellIterator;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; cellIterator = mesh-&gt;GetCells()-&gt;Begin();<br>&nbsp;&nbsp;&nbsp; cellEnd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = mesh-&gt;GetCells()-&gt;End();
<br>&nbsp; <br>&nbsp;&nbsp;&nbsp; while( cellIterator != cellEnd ) <br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CellType * cell = cellIterator.Value();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //std::cout &lt;&lt; &quot;cell with &quot; &lt;&lt; cell-&gt;GetNumberOfPoints();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //std::cout &lt;&lt; &quot; points&nbsp;&nbsp; &quot; &lt;&lt; std::endl;
<br><br>&nbsp;&nbsp;&nbsp; // Software Guide : BeginCodeSnippet<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; typedef CellType::PointIdIterator&nbsp;&nbsp;&nbsp;&nbsp; PointIdIterator;<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; PointIdIterator pointIditer = cell-&gt;PointIdsBegin();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; PointIdIterator pointIdend&nbsp; = cell-&gt;PointIdsEnd();
<br><br>&nbsp;&nbsp;&nbsp; while( pointIditer != pointIdend )<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //std::cout &lt;&lt; *pointIditer &lt;&lt; std::endl;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ++pointIditer;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; // Software Guide : EndCodeSnippet<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ++cellIterator;
<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; //Mesh creation done at this point. <br>&nbsp;&nbsp;&nbsp; std::cout &lt;&lt; &quot;PolyLine mesh created...&quot; &lt;&lt; std::endl;<br>&nbsp;&nbsp;&nbsp; std::cout &lt;&lt; &quot;Read in Input Image...&quot; &lt;&lt; std::endl;
<br>&nbsp;&nbsp;&nbsp; //Now read in Vesselness image.<br>&nbsp;&nbsp;&nbsp; //Read in Vesselness (Cost) Image<br>&nbsp;&nbsp;&nbsp; typedef itk::ImageFileReader&lt; ImageType &gt; ReaderType;<br>&nbsp;&nbsp;&nbsp; ReaderType::Pointer reader = ReaderType::New();<br>&nbsp;&nbsp;&nbsp; reader-&gt;SetFileName( argv[1] );
<br>&nbsp;&nbsp;&nbsp; //Set image to variable<br>&nbsp;&nbsp;&nbsp; ImageType::Pointer image = ImageType::New();<br>&nbsp;&nbsp;&nbsp; image = reader-&gt;GetOutput();<br>&nbsp;&nbsp;&nbsp; //Define Gradient Filter Type<br>&nbsp;&nbsp;&nbsp; typedef itk::CovariantVector&lt; double, Dimension &gt;&nbsp;&nbsp;&nbsp; GradientPixelType;
<br>&nbsp;&nbsp;&nbsp; typedef itk::Image&lt; GradientPixelType, Dimension &gt;&nbsp;&nbsp;&nbsp; GradientImageType;<br>&nbsp;&nbsp;&nbsp; typedef itk::GradientRecursiveGaussianImageFilter&lt; ImageType, GradientImageType &gt;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; GradientFilterType;<br>&nbsp;&nbsp;&nbsp; //typedef itk::GradientMagnitudeRecursiveGaussianImageFilter&lt; ImageType,ImageType &gt;&nbsp;&nbsp;&nbsp; GradientMagnitudeFilterType;
<br>&nbsp;&nbsp;&nbsp; GradientFilterType::Pointer gradientMapFilter = GradientFilterType::New(); <br>&nbsp;&nbsp;&nbsp; //GradientMagnitudeFilterType::Pointer gradientMapFilter = GradientMagnitudeFilterType::New();<br>&nbsp;&nbsp;&nbsp; //Set input of gradient filter to be vesselnes image
<br>&nbsp;&nbsp;&nbsp; gradientMapFilter-&gt;SetInput( reader-&gt;GetOutput() );<br>&nbsp;&nbsp;&nbsp; gradientMapFilter-&gt;SetSigma( 1.0 );<br>&nbsp;&nbsp;&nbsp; //trigger execution<br>&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; gradientMapFilter-&gt;Update();<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; catch( itk::ExceptionObject &amp; e )
<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; &quot;Exception caught when updating gradientMapFilter &quot; &lt;&lt; std::endl;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; e &lt;&lt; std::endl;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return -1;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; std::cout &lt;&lt; &quot;The gradient Map was created successfully&quot; &lt;&lt; std::endl;
<br><br>&nbsp;&nbsp;&nbsp; // Mesh Source filter<br>&nbsp;&nbsp;&nbsp; //MeshSourceType::Pointer meshSource = MeshSourceType::New();<br><br>&nbsp;&nbsp;&nbsp; //Deformable model filter<br>&nbsp;&nbsp;&nbsp; typedef itk::DeformableMesh3DFilter&lt; MeshType, MeshType &gt;&nbsp; DeformableFilterType;
<br>&nbsp;&nbsp;&nbsp; DeformableFilterType::Pointer deformableModelFilter = DeformableFilterType::New();<br>&nbsp;&nbsp;&nbsp; //Set input to deformable model filter<br>&nbsp;&nbsp;&nbsp; deformableModelFilter-&gt;SetGradient( gradientMapFilter-&gt;GetOutput() ); 
<br>
&nbsp;&nbsp;&nbsp; deformableModelFilter-&gt;SetInput( mesh );&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; // Set parameters for deformable mesh<br>&nbsp;&nbsp;&nbsp; typedef itk::CovariantVector&lt; double, 2 &gt;&nbsp;&nbsp;&nbsp; double2DVector;<br>&nbsp;&nbsp;&nbsp; typedef itk::CovariantVector&lt; double, 3 &gt;&nbsp;&nbsp;&nbsp; double3DVector;
<br><br>&nbsp;&nbsp;&nbsp; double2DVector stiffness;<br>&nbsp;&nbsp;&nbsp; stiffness[0] = 0.01;<br>&nbsp;&nbsp;&nbsp; stiffness[1] = 0.1;<br><br>&nbsp;&nbsp;&nbsp; double3DVector scale;<br>&nbsp;&nbsp;&nbsp; scale[0] = 1.0;<br>&nbsp;&nbsp;&nbsp; scale[1] = 1.0;<br>&nbsp;&nbsp;&nbsp; scale[2] = 1.0;<br><br>&nbsp;&nbsp;&nbsp; deformableModelFilter-&gt;SetStiffness( stiffness );
<br>&nbsp;&nbsp;&nbsp; deformableModelFilter-&gt;SetScale( scale );<br>&nbsp;&nbsp;&nbsp; deformableModelFilter-&gt;SetGradientMagnitude( 0.8 );<br>&nbsp;&nbsp;&nbsp; deformableModelFilter-&gt;SetTimeStep( 0.01 );<br>&nbsp;&nbsp;&nbsp; deformableModelFilter-&gt;SetStepThreshold( 60 );
<br><br>&nbsp;&nbsp;&nbsp; std::cout &lt;&lt; &quot;Deformable mesh fitting...&quot; &lt;&lt; std::endl;<br><br>&nbsp;&nbsp;&nbsp; //Trigger execution of deformable mesh filter<br>&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; deformableModelFilter-&gt;Update();<br>&nbsp;&nbsp;&nbsp; }
<br>&nbsp;&nbsp;&nbsp; catch( itk::ExceptionObject &amp; excep )<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; &quot;Exception caught while using the deformable mesh filter&quot; &lt;&lt; std::endl;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; excep &lt;&lt; std::endl;
<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; std::cout &lt;&lt; &quot;Mesh Source: &quot; &lt;&lt; std::endl;<br><br>&nbsp;&nbsp;&nbsp; typedef itk::PointSetToImageFilter&lt; MeshType, ImageType &gt; MeshFilterType;<br>&nbsp;&nbsp;&nbsp; MeshFilterType::Pointer meshFilter = MeshFilterType::New();
<br>&nbsp;&nbsp;&nbsp; meshFilter-&gt;SetOrigin( image-&gt;GetOrigin() );<br>&nbsp;&nbsp;&nbsp; meshFilter-&gt;SetSize( image-&gt;GetLargestPossibleRegion().GetSize() );<br>&nbsp;&nbsp;&nbsp; meshFilter-&gt;SetSpacing( image-&gt;GetSpacing() );<br>&nbsp;&nbsp;&nbsp; meshFilter-&gt;SetInput( mesh );
<br><br>&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; meshFilter-&gt;Update();<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; catch( itk::ExceptionObject &amp; excep )<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; &quot;Exception Caught!&quot; &lt;&lt; std::endl;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; excep &lt;&lt; std::endl;
<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; typedef itk::ImageFileWriter&lt; ImageType &gt; WriterType;<br>&nbsp;&nbsp;&nbsp; WriterType::Pointer writer = WriterType::New();<br>&nbsp;&nbsp;&nbsp; writer-&gt;SetInput( meshFilter-&gt;GetOutput() );<br>&nbsp;&nbsp;&nbsp; writer-&gt;SetFileName( argv[3] );
<br>&nbsp;&nbsp;&nbsp; writer-&gt;Update();<br><br>&nbsp;&nbsp;&nbsp; return EXIT_SUCCESS;&nbsp;&nbsp;&nbsp; <br>}<br><br>
</div><br><br clear="all"><br>-- <br>Federico J. Lopez Bertoni<br>Graduate Research Assistant<br>Duke University<br>Department of Biomedical Engineering<br>Office: &nbsp;1373 CIEMAS<br>Phone: &nbsp;919-660-5125<br><a href="mailto:fjlb@duke.edu" target="_blank">

fjlb@duke.edu</a>
</div></div></div><br><br clear="all"><br>-- <br>Federico J. Lopez Bertoni<br>Graduate Research Assistant<br>Duke University<br>Department of Biomedical Engineering<br>Office: &nbsp;1373 CIEMAS<br>Phone: &nbsp;919-660-5125<br><a href="mailto:fjlb@duke.edu">
fjlb@duke.edu</a>