<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Malgun Gothic";
        panose-1:2 11 5 3 2 0 0 2 0 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@Malgun Gothic";
        panose-1:2 11 5 3 2 0 0 2 0 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Hello everybody,<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>I downloaded AffineTranformation form Wiki Example and modify it to affine two DICOM files. I build it successfully. But when I run it. It have a error messenger:<o:p></o:p></p><p class=MsoNormal>terminate called after throwing an instance of 'itk::ExceptionObject'<o:p></o:p></p><p class=MsoNormal>&nbsp; what():&nbsp; /usr/local/include/ITK-4.4/itkImageFileWriter.hxx:123:<o:p></o:p></p><p class=MsoNormal>itk::ERROR: ImageFileWriter(0x9808fd8): No filename was specified<o:p></o:p></p><p class=MsoNormal>Aborted (core dumped)<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>This is my editing code. Please help me edit it. I am using ITK version newest 4.3.1 for Linux<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>#include &quot;itkCastImageFilter.h&quot;<o:p></o:p></p><p class=MsoNormal>#include &quot;itkEllipseSpatialObject.h&quot;<o:p></o:p></p><p class=MsoNormal>#include &quot;itkImage.h&quot;<o:p></o:p></p><p class=MsoNormal>#include &quot;itkImageRegistrationMethod.h&quot;<o:p></o:p></p><p class=MsoNormal>#include &quot;itkLinearInterpolateImageFunction.h&quot;<o:p></o:p></p><p class=MsoNormal>#include &quot;itkImageFileReader.h&quot;<o:p></o:p></p><p class=MsoNormal>#include &quot;itkImageFileWriter.h&quot;<o:p></o:p></p><p class=MsoNormal>#include &quot;itkMeanSquaresImageToImageMetric.h&quot;<o:p></o:p></p><p class=MsoNormal>#include &quot;itkRegularStepGradientDescentOptimizer.h&quot;<o:p></o:p></p><p class=MsoNormal>#include &quot;itkResampleImageFilter.h&quot;<o:p></o:p></p><p class=MsoNormal>#include &quot;itkRescaleIntensityImageFilter.h&quot;<o:p></o:p></p><p class=MsoNormal>#include &quot;itkSpatialObjectToImageFilter.h&quot;<o:p></o:p></p><p class=MsoNormal>#include &quot;itkAffineTransform.h&quot;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>#include &quot;itkGDCMImageIO.h&quot;<o:p></o:p></p><p class=MsoNormal>// Software Guide : EndCodeSnippet<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>#include &lt;list&gt;<o:p></o:p></p><p class=MsoNormal>#include &lt;fstream&gt;<o:p></o:p></p><p class=MsoNormal>const&nbsp;&nbsp;&nbsp; unsigned int&nbsp;&nbsp;&nbsp; Dimension = 2;<o:p></o:p></p><p class=MsoNormal>typedef&nbsp; unsigned char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PixelType;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>typedef itk::Image&lt; PixelType, Dimension &gt;&nbsp; ImageType;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>static void CreateEllipseImage(ImageType::Pointer image);<o:p></o:p></p><p class=MsoNormal>static void CreateSphereImage(ImageType::Pointer image);<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>int main(int, char *[] )<o:p></o:p></p><p class=MsoNormal>{<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; The transform that will map the fixed image into the moving image.<o:p></o:p></p><p class=MsoNormal>&nbsp; typedef itk::AffineTransform&lt; double, Dimension &gt; TransformType;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; //&nbsp; An optimizer is required to explore the parameter space of the transform<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; in search of optimal values of the metric.<o:p></o:p></p><p class=MsoNormal>&nbsp; typedef itk::RegularStepGradientDescentOptimizer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OptimizerType;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; //&nbsp; The metric will compare how well the two images match each other. Metric<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; types are usually parameterized by the image types as it can be seen in<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; the following type declaration.<o:p></o:p></p><p class=MsoNormal>&nbsp; typedef itk::MeanSquaresImageToImageMetric&lt;<o:p></o:p></p><p class=MsoNormal>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;ImageType,<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ImageType &gt;&nbsp;&nbsp;&nbsp; MetricType;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; //&nbsp; Finally, the type of the interpolator is declared. The interpolator will<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; evaluate the intensities of the moving image at non-grid positions.<o:p></o:p></p><p class=MsoNormal>&nbsp; typedef itk:: LinearInterpolateImageFunction&lt;<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ImageType,<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp; InterpolatorType;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; //&nbsp; The registration method type is instantiated using the types of the<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; fixed and moving images. This class is responsible for interconnecting<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; all the components that we have described so far.<o:p></o:p></p><p class=MsoNormal>&nbsp; typedef itk::ImageRegistrationMethod&lt;<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ImageType,<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ImageType &gt;&nbsp;&nbsp;&nbsp; RegistrationType;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; // Create components<o:p></o:p></p><p class=MsoNormal>&nbsp; MetricType::Pointer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; metric&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = MetricType::New();<o:p></o:p></p><p class=MsoNormal>&nbsp; TransformType::Pointer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; transform&nbsp;&nbsp;&nbsp;&nbsp; = TransformType::New();<o:p></o:p></p><p class=MsoNormal>&nbsp; OptimizerType::Pointer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; optimizer&nbsp;&nbsp;&nbsp;&nbsp; = OptimizerType::New();<o:p></o:p></p><p class=MsoNormal>&nbsp; InterpolatorType::Pointer&nbsp;&nbsp; interpolator&nbsp; = InterpolatorType::New();<o:p></o:p></p><p class=MsoNormal>&nbsp; RegistrationType::Pointer&nbsp;&nbsp; registration&nbsp; = RegistrationType::New();<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; // Each component is now connected to the instance of the registration method.<o:p></o:p></p><p class=MsoNormal>&nbsp; registration-&gt;SetMetric(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; metric&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );<o:p></o:p></p><p class=MsoNormal>&nbsp; registration-&gt;SetOptimizer(&nbsp;&nbsp;&nbsp;&nbsp; optimizer&nbsp;&nbsp;&nbsp;&nbsp; );<o:p></o:p></p><p class=MsoNormal>&nbsp; registration-&gt;SetTransform(&nbsp;&nbsp;&nbsp;&nbsp; transform&nbsp;&nbsp;&nbsp;&nbsp; );<o:p></o:p></p><p class=MsoNormal>&nbsp; registration-&gt;SetInterpolator(&nbsp; interpolator&nbsp; );<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; // Write the two synthetic inputs<o:p></o:p></p><p class=MsoNormal>&nbsp; <o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;typedef itk::Image&lt; PixelType, Dimension &gt;&nbsp; FixedImageType;<o:p></o:p></p><p class=MsoNormal>&nbsp; typedef itk::Image&lt; PixelType, Dimension &gt;&nbsp; MovingImageType;<o:p></o:p></p><p class=MsoNormal>&nbsp; // Software Guide : EndCodeSnippet<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal> &nbsp;// Set up the file readers<o:p></o:p></p><p class=MsoNormal>&nbsp; typedef itk::ImageFileReader&lt; FixedImageType&nbsp; &gt; FixedImageReaderType;<o:p></o:p></p><p class=MsoNormal>&nbsp; typedef itk::ImageFileReader&lt; MovingImageType &gt; MovingImageReaderType;<o:p></o:p></p><p class=MsoNormal>&nbsp; <o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;FixedImageReaderType::Pointer fixedImageReader&nbsp;&nbsp; = FixedImageReaderType::New();<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; MovingImageReaderType::Pointer movingImageReader = MovingImageReaderType::New();<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp; fixedImageReader-&gt;SetFileName(&quot;fix.dcm&quot; );<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp; movingImageReader-&gt;SetFileName( &quot;mov.dcm&quot; );<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; typedef itk::ImageFileWriter&lt; ImageType &gt;&nbsp; WriterType;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; WriterType::Pointer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fixedWriter =&nbsp; WriterType::New();<o:p></o:p></p><p class=MsoNormal>&nbsp; //ixedWriter-&gt;SetFileName(&quot;fixed.png&quot;);<o:p></o:p></p><p class=MsoNormal>&nbsp; fixedWriter-&gt;SetInput( fixedImageReader-&gt;GetOutput());<o:p></o:p></p><p class=MsoNormal>&nbsp; fixedWriter-&gt;Update();<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; WriterType::Pointer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; movingWriter =&nbsp; WriterType::New();<o:p></o:p></p><p class=MsoNormal> // movingWriter-&gt;SetFileName(&quot;moving.png&quot;);<o:p></o:p></p><p class=MsoNormal>&nbsp; movingWriter-&gt;SetInput( movingImageReader-&gt;GetOutput());<o:p></o:p></p><p class=MsoNormal>&nbsp; movingWriter-&gt;Update();<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; // Set the registration inputs<o:p></o:p></p><p class=MsoNormal>&nbsp; registration-&gt;SetFixedImage(fixedImageReader-&gt;GetOutput());<o:p></o:p></p><p class=MsoNormal>&nbsp; registration-&gt;SetMovingImage(movingImageReader-&gt;GetOutput());<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; registration-&gt;SetFixedImageRegion(<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp; fixedImageReader-&gt;GetOutput()-&gt;GetLargestPossibleRegion() );<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; //&nbsp; Initialize the transform<o:p></o:p></p><p class=MsoNormal>&nbsp; typedef RegistrationType::ParametersType ParametersType;<o:p></o:p></p><p class=MsoNormal>&nbsp; ParametersType initialParameters( transform-&gt;GetNumberOfParameters() );<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; // rotation matrix<o:p></o:p></p><p class=MsoNormal>&nbsp; initialParameters[0] = 1.0;&nbsp; // R(0,0)<o:p></o:p></p><p class=MsoNormal>&nbsp; initialParameters[1] = 0.0;&nbsp; // R(0,1)<o:p></o:p></p><p class=MsoNormal>&nbsp; initialParameters[2] = 0.0;&nbsp; // R(1,0)<o:p></o:p></p><p class=MsoNormal>&nbsp; initialParameters[3] = 1.0;&nbsp; // R(1,1)<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; // translation vector<o:p></o:p></p><p class=MsoNormal>&nbsp; initialParameters[4] = 0.0;<o:p></o:p></p><p class=MsoNormal>&nbsp; initialParameters[5] = 0.0;<o:p></o:p></p><p class=MsoNormal>&nbsp; <o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;registration-&gt;SetInitialTransformParameters( initialParameters );<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; optimizer-&gt;SetMaximumStepLength( .1 ); // If this is set too high, you will get a<o:p></o:p></p><p class=MsoNormal>&nbsp; //&quot;itk::ERROR: MeanSquaresImageToImageMetric(0xa27ce70): Too many samples map outside moving image buffer: 1818 / 10000&quot; error<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; optimizer-&gt;SetMinimumStepLength( 0.01 );<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; // Set a stopping criterion<o:p></o:p></p><p class=MsoNormal>&nbsp; optimizer-&gt;SetNumberOfIterations( 200 );<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; // Connect an observer<o:p></o:p></p><p class=MsoNormal>&nbsp; //CommandIterationUpdate::Pointer observer = CommandIterationUpdate::New();<o:p></o:p></p><p class=MsoNormal>&nbsp; //optimizer-&gt;AddObserver( itk::IterationEvent(), observer );<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; try<o:p></o:p></p><p class=MsoNormal>&nbsp; {<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp; registration-&gt;Update();<o:p></o:p></p><p class=MsoNormal>&nbsp; }<o:p></o:p></p><p class=MsoNormal>&nbsp; catch( itk::ExceptionObject &amp; err )<o:p></o:p></p><p class=MsoNormal>&nbsp; {<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; &quot;ExceptionObject caught !&quot; &lt;&lt; std::endl;<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; err &lt;&lt; std::endl;<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp; return EXIT_FAILURE;<o:p></o:p></p><p class=MsoNormal>&nbsp; }<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; //&nbsp; The result of the registration process is an array of parameters that<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; defines the spatial transformation in an unique way. This final result is<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; obtained using the \code{GetLastTransformParameters()} method.<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; ParametersType finalParameters = registration-&gt;GetLastTransformParameters();<o:p></o:p></p><p class=MsoNormal>&nbsp; std::cout &lt;&lt; &quot;Final parameters: &quot; &lt;&lt; finalParameters &lt;&lt; std::endl;<o:p></o:p></p><p class=MsoNormal>&nbsp; <o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;//&nbsp; The value of the image metric corresponding to the last set of parameters<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; can be obtained with the \code{GetValue()} method of the optimizer.<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; const double bestValue = optimizer-&gt;GetValue();<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; // Print out results<o:p></o:p></p><p class=MsoNormal>&nbsp; //<o:p></o:p></p><p class=MsoNormal>&nbsp; std::cout &lt;&lt; &quot;Result = &quot; &lt;&lt; std::endl;<o:p></o:p></p><p class=MsoNormal>&nbsp; std::cout &lt;&lt; &quot; Metric value&nbsp; = &quot; &lt;&lt; bestValue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;&lt; std::endl;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; //&nbsp; It is common, as the last step of a registration task, to use the<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; resulting transform to map the moving image into the fixed image space.<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; This is easily done with the \doxygen{ResampleImageFilter}.<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; typedef itk::ResampleImageFilter&lt;<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ImageType,<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ImageType &gt;&nbsp;&nbsp;&nbsp; ResampleFilterType;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; ResampleFilterType::Pointer resampler = ResampleFilterType::New();<o:p></o:p></p><p class=MsoNormal>&nbsp; resampler-&gt;SetInput( movingImageReader-&gt;GetOutput());<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; //&nbsp; The Transform that is produced as output of the Registration method is<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; also passed as input to the resampling filter. Note the use of the<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; methods \code{GetOutput()} and \code{Get()}. This combination is needed<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; here because the registration method acts as a filter whose output is a<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; transform decorated in the form of a \doxygen{DataObject}. For details in<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; this construction you may want to read the documentation of the<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; \doxygen{DataObjectDecorator}.<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; resampler-&gt;SetTransform( registration-&gt;GetOutput()-&gt;Get() );<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; //&nbsp; As described in Section \ref{sec:ResampleImageFilter}, the<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; ResampleImageFilter requires additional parameters to be specified, in<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; particular, the spacing, origin and size of the output image. The default<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; pixel value is also set to a distinct gray level in order to highlight<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; the regions that are mapped outside of the moving image.<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; resampler-&gt;SetSize( fixedImageReader-&gt;GetOutput()-&gt;GetLargestPossibleRegion().GetSize() );<o:p></o:p></p><p class=MsoNormal>&nbsp; resampler-&gt;SetOutputOrigin(&nbsp; fixedImageReader-&gt;GetOutput()-&gt;GetOrigin() );<o:p></o:p></p><p class=MsoNormal>&nbsp; resampler-&gt;SetOutputSpacing( fixedImageReader-&gt;GetOutput()-&gt;GetSpacing() );<o:p></o:p></p><p class=MsoNormal>&nbsp; resampler-&gt;SetOutputDirection( fixedImageReader-&gt;GetOutput()-&gt;GetDirection() );<o:p></o:p></p><p class=MsoNormal> &nbsp;resampler-&gt;SetDefaultPixelValue( 100 );<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; //&nbsp; The output of the filter is passed to a writer that will store the<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; image in a file. An \doxygen{CastImageFilter} is used to convert the<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; pixel type of the resampled image to the final type used by the<o:p></o:p></p><p class=MsoNormal>&nbsp; //&nbsp; writer. The cast and writer filters are instantiated below.<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; typedef unsigned char OutputPixelType;<o:p></o:p></p><p class=MsoNormal>&nbsp; typedef itk::Image&lt; OutputPixelType, Dimension &gt; OutputImageType;<o:p></o:p></p><p class=MsoNormal>&nbsp; typedef itk::CastImageFilter&lt;<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ImageType,<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ImageType &gt; CastFilterType;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; WriterType::Pointer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer =&nbsp; WriterType::New();<o:p></o:p></p><p class=MsoNormal>&nbsp; CastFilterType::Pointer&nbsp; caster =&nbsp; CastFilterType::New();<o:p></o:p></p><p class=MsoNormal>&nbsp; writer-&gt;SetFileName(&quot;output.png&quot;);<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; caster-&gt;SetInput( resampler-&gt;GetOutput() );<o:p></o:p></p><p class=MsoNormal>&nbsp; writer-&gt;SetInput( caster-&gt;GetOutput()&nbsp;&nbsp; );<o:p></o:p></p><p class=MsoNormal>&nbsp; writer-&gt;Update();<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; return EXIT_SUCCESS;<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p></div></body></html>