<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><P>Hi Luis,</P>
<P>Thank you to explain&nbsp;me this .</P>
<P>Best regards </P>
<P>Martine</P>
<DIV><BR></DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif"><BR>
<DIV style="FONT-SIZE: 13px; FONT-FAMILY: arial, helvetica, sans-serif">----- Message d'origine ----<BR>De : Luis Ibanez &lt;luis.ibanez@kitware..com&gt;<BR>À : Martine Lefevre &lt;martine_lef@yahoo.fr&gt;<BR>Cc : Daniel Mace &lt;dlm19@duke.edu&gt;; insight itk &lt;insight-users@itk.org&gt;<BR>Envoyé le : Mardi, 26 Août 2008, 16h09mn 14s<BR>Objet&nbsp;: Re: [Insight-users] Re : meaning of Update() function? where exactly this function should be placed ?<BR><BR><BR>Hi Martine,<BR><BR><BR>The Update() method must is called on each terminal<BR>node of the pipeline.<BR><BR><BR>In the case of this example, the pipeline has four<BR>terminal nodes (each one of the four writers),<BR>therefore you must call Update() on each one.<BR><BR><BR>The pipeline of this example looks like<BR><BR><BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +--------- writer1<BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |<BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +--------- writer2<BR>&nbsp; &nbsp;
 ------|<BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +--------- writer3<BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |<BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +--------- writer4<BR><BR><BR><BR>Dan's original advice assumed that you had a linear<BR>pipeline with a single terminal node, such as:<BR><BR><BR>&nbsp; &nbsp; filter1--&gt;filter2--&gt;filter3--&gt;filter4<BR><BR><BR>In this later case, you only need to call Update()<BR>in filter4.<BR><BR><BR><BR>Regards,<BR><BR><BR>&nbsp; &nbsp; &nbsp; Luis<BR><BR><BR>-----------------------<BR>Martine Lefevre wrote:<BR>&gt; Hi Daniel,<BR>&gt; I have a question. if Update should be called on the last filter in the <BR>&gt; pipeline why its called after each writer in this example ? I could n't <BR>&gt; see the purpose ?<BR>&gt; Thanks<BR>&gt; Martine<BR>&gt; <BR>&gt;&nbsp; <BR>&gt; <BR>&gt; ----- Message d'origine ----<BR>&gt; De : Daniel Mace &lt;<A href="mailto:dlm19@duke.edu"
 ymailto="mailto:dlm19@duke.edu">dlm19@duke.edu</A>&gt;<BR>&gt; À : Martine Lefevre &lt;<A href="mailto:martine_lef@yahoo.fr" ymailto="mailto:martine_lef@yahoo.fr">martine_lef@yahoo.fr</A>&gt;<BR>&gt; Cc : insight itk &lt;<A href="mailto:insight-users@itk.org" ymailto="mailto:insight-users@itk.org">insight-users@itk.org</A>&gt;<BR>&gt; Envoyé le : Lundi, 25 Août 2008, 5h59mn 56s<BR>&gt; Objet : Re: [Insight-users] meaning of Update() function? where exactly <BR>&gt; this function should be placed ?<BR>&gt; <BR>&gt; Martine,<BR>&gt; <BR>&gt; You should only need to call Update() on the last filter in the pipeline<BR>&gt; (in your case, the writers).&nbsp; As you noted, the Update() on the writer<BR>&gt; will trickle down and call Update on all the filters in the pipeline. <BR>&gt; It should also be called after you have set all the parameters for all<BR>&gt; the filters in the pipeline.&nbsp; In your case, you are calling<BR>&gt; writer4-&gt;Update()
 before you have set the parameters for your<BR>&gt; FastMarchingFilter (which might be why it keeps running).<BR>&gt; <BR>&gt; The only time I've needed to call Update() on a filter that is not the<BR>&gt; last filter in the pipeline is to Update the reader if I need to get the<BR>&gt; size of the image prior to updating the pipeline (which, may or may not<BR>&gt; have been resolved by now).<BR>&gt; <BR>&gt; Cheers,<BR>&gt; Dan<BR>&gt; <BR>&gt; <BR>&gt; Martine Lefevre wrote:<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; Dear itk users,<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; I’m new to itk (just in my first week). I have successfully configured<BR>&gt;&nbsp; &gt; itk and also vtk. I am now reading the ItkSoftwareGuide and I trying<BR>&gt;&nbsp; &gt; to run some of the examples provided. I’m little bit confused with the<BR>&gt;&nbsp; &gt; meaning of the Update function (for instance writer-&gt;Update(); ).<BR>&gt;&nbsp; &gt; According to the book update
 function triggers the execution of the<BR>&gt;&nbsp; &gt; pipeline. When I change its location in the code, the code still<BR>&gt;&nbsp; &gt; running without end. For example in the example<BR>&gt;&nbsp; &gt; FastMarchingImageFilter.c++&nbsp; if I move writer4-&gt;Update();and put it<BR>&gt;&nbsp; &gt; just after caster4-&gt;SetOutputMaximum( 255 ); ,as with the other<BR>&gt;&nbsp; &gt; writers, the code still running without end !<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; I couldn’t understand where exactly this function should be placed in<BR>&gt;&nbsp; &gt; a given code.<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; Is it better to call this function with the last filter (i.e. a writer<BR>&gt;&nbsp; &gt; ) or I can call it after each filter (and even reader and writer) ?<BR>&gt;&nbsp; &gt;&nbsp; What’s the difference between both??<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; Please could you answer me?<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; Thank you<BR>&gt;&nbsp;
 &gt;<BR>&gt;&nbsp; &gt; Martine<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; Please see the code:<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; <BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; // The following example implements a fast marching solution to a<BR>&gt;&nbsp; &gt; simple level set evolution problem.<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; #include "itkCurvatureAnisotropicDiffusionImageFilter.h"<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; #include "itkGradientMagnitudeRecursiveGaussianImageFilter.h"<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; #include "itkSigmoidImageFilter.h"<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; #include "itkImage.h"<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; #include "itkFastMarchingImageFilter.h"<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; #include "itkBinaryThresholdImageFilter.h"<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; #include "itkImageFileReader.h"<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; #include "itkImageFileWriter.h"<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; #include
 "itkRescaleIntensityImageFilter.h"<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; <BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; int main( )<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; {<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; typedef float InternalPixelType;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; const unsigned int Dimension = 2;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; typedef itk::Image&lt; InternalPixelType, Dimension &gt; InternalImageType;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; typedef unsigned char OutputPixelType;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; typedef itk::Image&lt; OutputPixelType, Dimension &gt; OutputImageType;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; typedef itk::BinaryThresholdImageFilter&lt; InternalImageType,<BR>&gt;&nbsp; &gt; OutputImageType &gt; ThresholdingFilterType;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; ThresholdingFilterType::Pointer thresholder =<BR>&gt;&nbsp; &gt; ThresholdingFilterType::New();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; const
 InternalPixelType timeThreshold = atof( "100" );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; thresholder-&gt;SetLowerThreshold( 0.0 );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; thresholder-&gt;SetUpperThreshold( timeThreshold );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; thresholder-&gt;SetOutsideValue( 0 );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; thresholder-&gt;SetInsideValue( 255 );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; typedef itk::ImageFileReader&lt; InternalImageType &gt; ReaderType;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; typedef itk::ImageFileWriter&lt; OutputImageType &gt; WriterType;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; ReaderType::Pointer reader = ReaderType::New();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; WriterType::Pointer writer = WriterType::New();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; reader-&gt;SetFileName("d:/BrainProtonDensitySlice.png");<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; writer-&gt;SetFileName("d:/FastMarchingSegmentedImg.png");<BR>&gt;&nbsp;
 &gt;<BR>&gt;&nbsp; &gt; typedef itk::RescaleIntensityImageFilter&lt; InternalImageType,<BR>&gt;&nbsp; &gt; OutputImageType &gt; CastFilterType;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; typedef itk::CurvatureAnisotropicDiffusionImageFilter&lt;<BR>&gt;&nbsp; &gt; InternalImageType, InternalImageType &gt; SmoothingFilterType;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; SmoothingFilterType::Pointer smoothing = SmoothingFilterType::New();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; typedef itk::GradientMagnitudeRecursiveGaussianImageFilter&lt;<BR>&gt;&nbsp; &gt; InternalImageType, InternalImageType &gt; GradientFilterType;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; typedef itk::SigmoidImageFilter&lt; InternalImageType, InternalImageType<BR>&gt;&nbsp; &gt; &gt; SigmoidFilterType;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; GradientFilterType::Pointer gradientMagnitude = <BR>&gt; GradientFilterType::New();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; SigmoidFilterType::Pointer sigmoid =
 SigmoidFilterType::New();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; sigmoid-&gt;SetOutputMinimum( 0.0 );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; sigmoid-&gt;SetOutputMaximum( 1.0 );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; typedef itk::FastMarchingImageFilter&lt; InternalImageType,<BR>&gt;&nbsp; &gt; InternalImageType &gt; FastMarchingFilterType;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; FastMarchingFilterType::Pointer fastMarching =<BR>&gt;&nbsp; &gt; FastMarchingFilterType::New();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; smoothing-&gt;SetInput( reader-&gt;GetOutput() );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; gradientMagnitude-&gt;SetInput( smoothing-&gt;GetOutput() );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; sigmoid-&gt;SetInput( gradientMagnitude-&gt;GetOutput() );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; fastMarching-&gt;SetInput( sigmoid-&gt;GetOutput() );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; thresholder-&gt;SetInput( fastMarching-&gt;GetOutput() );<BR>&gt;&nbsp;
 &gt;<BR>&gt;&nbsp; &gt; writer-&gt;SetInput( thresholder-&gt;GetOutput() );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; smoothing-&gt;SetTimeStep( 0.125 );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; smoothing-&gt;SetNumberOfIterations( 5 );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; smoothing-&gt;SetConductanceParameter( 9.0 );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; const double sigma = atof( "1.0" );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; gradientMagnitude-&gt;SetSigma( sigma );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; const double alpha = atof( "-0.5" );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; const double beta = atof( "3.0" );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; <BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; sigmoid-&gt;SetAlpha( alpha );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; sigmoid-&gt;SetBeta( beta );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; typedef FastMarchingFilterType::NodeContainer NodeContainer;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; typedef FastMarchingFilterType::NodeType
 NodeType;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; NodeContainer::Pointer seeds = NodeContainer::New();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; InternalImageType::IndexType seedPosition;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; seedPosition[0] = atoi( "81" );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; seedPosition[1] = atoi( "114" );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; NodeType node;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; const double seedValue = 0.0;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; node.SetValue( seedValue );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; node.SetIndex( seedPosition );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; seeds-&gt;Initialize();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; seeds-&gt;InsertElement( 0, node );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; fastMarching-&gt;SetTrialPoints( seeds );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; CastFilterType::Pointer caster1 = CastFilterType::New();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; CastFilterType::Pointer caster2 =
 CastFilterType::New();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; CastFilterType::Pointer caster3 = CastFilterType::New();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; CastFilterType::Pointer caster4 = CastFilterType::New();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; WriterType::Pointer writer1 = WriterType::New();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; WriterType::Pointer writer2 = WriterType::New();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; WriterType::Pointer writer3 = WriterType::New();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; WriterType::Pointer writer4 = WriterType::New();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; caster1-&gt;SetInput( smoothing-&gt;GetOutput() );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; writer1-&gt;SetInput( caster1-&gt;GetOutput() );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; writer1-&gt;SetFileName("d:/FastMarchingFilterOutput1.png");<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; caster1-&gt;SetOutputMinimum( 0 );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt;
 caster1-&gt;SetOutputMaximum( 255 );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; writer1-&gt;Update();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; caster2-&gt;SetInput( gradientMagnitude-&gt;GetOutput() );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; writer2-&gt;SetInput( caster2-&gt;GetOutput() );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; writer2-&gt;SetFileName("d:/FastMarchingFilterOutput2.png");<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; caster2-&gt;SetOutputMinimum( 0 );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; caster2-&gt;SetOutputMaximum( 255 );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; writer2-&gt;Update();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; caster3-&gt;SetInput( sigmoid-&gt;GetOutput() );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; writer3-&gt;SetInput( caster3-&gt;GetOutput() );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; writer3-&gt;SetFileName("d:/FastMarchingFilterOutput3.png");<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; caster3-&gt;SetOutputMinimum( 0 );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp;
 &gt; caster3-&gt;SetOutputMaximum( 255 );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; writer3-&gt;Update();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; caster4-&gt;SetInput( fastMarching-&gt;GetOutput() );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; writer4-&gt;SetInput( caster4-&gt;GetOutput() );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; writer4-&gt;SetFileName("d:/FastMarchingFilterOutput4.png");<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; caster4-&gt;SetOutputMinimum( 0 );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; caster4-&gt;SetOutputMaximum( 255 );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; writer4-&gt;Update(); // here where I have moved writer4-&gt;Update();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; fastMarching-&gt;SetOutputSize(<BR>&gt;&nbsp; &gt; reader-&gt;GetOutput()-&gt;GetBufferedRegion().GetSize() );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; const double stoppingTime = atof( "100" );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; fastMarching-&gt;SetStoppingValue( stoppingTime
 );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; try<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; {<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; writer-&gt;Update();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; }<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; catch( itk::ExceptionObject &amp; excep )<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; {<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; std::cerr &lt;&lt; "Exception caught !" &lt;&lt; std::endl;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; std::cerr &lt;&lt; excep &lt;&lt; std::endl;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; }<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; //writer4-&gt;Update();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; typedef itk::ImageFileWriter&lt; InternalImageType &gt; InternalWriterType;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; InternalWriterType::Pointer mapWriter = InternalWriterType::New();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; mapWriter-&gt;SetInput( fastMarching-&gt;GetOutput() );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt;
 mapWriter-&gt;SetFileName("d:/FastMarchingFilterOutput4.mha");<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; mapWriter-&gt;Update();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; InternalWriterType::Pointer speedWriter = InternalWriterType::New();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; speedWriter-&gt;SetInput( sigmoid-&gt;GetOutput() );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; speedWriter-&gt;SetFileName("d:/FastMarchingFilterOutput3.mha");<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; speedWriter-&gt;Update();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; InternalWriterType::Pointer gradientWriter = InternalWriterType::New();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; gradientWriter-&gt;SetInput( gradientMagnitude-&gt;GetOutput() );<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; gradientWriter-&gt;SetFileName("d:/FastMarchingFilterOutput2.mha");<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; gradientWriter-&gt;Update();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; std::cout &lt;&lt; "Code end !" &lt;&lt;
 std::endl;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; std::cin.get();<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; return 0;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; }<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; ------------------------------------------------------------------------<BR>&gt;&nbsp; &gt; Envoyé avec Yahoo! Mail<BR>&gt;&nbsp; &gt; <BR>&gt; &lt;<A href="http://us.rd.yahoo.com/mailuk/taglines/isp/control/*http://us.rd.yahoo.com/evt=52423/*http://fr.docs.yahoo.com/mail/overview/index.html" target=_blank>http://us.rd.yahoo.com/mailuk/taglines/isp/control/*http://us.rd.yahoo.com/evt=52423/*http://fr.docs.yahoo.com/mail/overview/index.html</A>&gt;.<BR>&gt;&nbsp; &gt; Une boite mail plus intelligente.<BR>&gt;&nbsp; &gt; ------------------------------------------------------------------------<BR>&gt;&nbsp; &gt;<BR>&gt;&nbsp; &gt; _______________________________________________<BR>&gt;&nbsp; &gt; Insight-users mailing
 list<BR>&gt;&nbsp; &gt; <A href="mailto:Insight-users@itk.org" ymailto="mailto:Insight-users@itk.org">Insight-users@itk.org</A> &lt;mailto:<A href="mailto:Insight-users@itk.org" ymailto="mailto:Insight-users@itk.org">Insight-users@itk.org</A>&gt;<BR>&gt;&nbsp; &gt; <A href="http://www.itk.org/mailman/listinfo/insight-users" target=_blank>http://www.itk.org/mailman/listinfo/insight-users</A><BR>&gt;&nbsp; &gt; <BR>&gt; <BR>&gt; <BR>&gt; ------------------------------------------------------------------------<BR>&gt; Envoyé avec Yahoo! Mail <BR>&gt; &lt;<A href="http://us.rd.yahoo.com/mailuk/taglines/isp/control/*http://us.rd.yahoo.com/evt=52423/*http://fr.docs.yahoo.com/mail/overview/index.html" target=_blank>http://us.rd.yahoo.com/mailuk/taglines/isp/control/*http://us.rd.yahoo.com/evt=52423/*http://fr.docs.yahoo.com/mail/overview/index.html</A>&gt;.<BR>&gt; Une boite mail plus intelligente.<BR>&gt; <BR>&gt; <BR>&gt;
 ------------------------------------------------------------------------<BR>&gt; <BR>&gt; _______________________________________________<BR>&gt; Insight-users mailing list<BR>&gt; <A href="mailto:Insight-users@itk.org" ymailto="mailto:Insight-users@itk.org">Insight-users@itk.org</A><BR>&gt; <A href="http://www.itk.org/mailman/listinfo/insight-users" target=_blank>http://www.itk.org/mailman/listinfo/insight-users</A><BR></DIV></DIV></div><br>


      <hr size="1"> 
Envoyé avec <a href="http://us.rd.yahoo.com/mailuk/taglines/isp/control/*http://us.rd.yahoo.com/evt=52423/*http://fr.docs.yahoo.com/mail/overview/index.html">Yahoo! Mail</a>.<br>Une boite mail plus intelligente. </a></body></html>