I am trying to cast a RescaleIntensityImageFilter to an ImageToImageFilter:<br><br>    static const unsigned int Dimension = 2;<br>    typedef float PixelType;<br>    typedef itk::Image&lt; PixelType, Dimension &gt;                                                                                FixedImageType;<br>
    typedef itk::Image&lt; PixelType, Dimension &gt;                                                                                MovingImageType;<br>    typedef unsigned char                                                                                                                            OutputPixelType;<br>
    typedef itk::Image&lt; OutputPixelType, Dimension &gt;                                                                    OutputImageType;<br>    typedef itk::ImageToImageFilter&lt;MovingImageType, FixedImageType&gt;                                  ImageToImageFilterType;<br>
    typedef itk::RescaleIntensityImageFilter&lt;FixedImageType, OutputImageType &gt;                RescalerType;<br><br>    RescalerType::Pointer pp0 = compare.getIntensityRescaler();<br>    ImageToImageFilterType::Pointer pp1 = static_cast&lt;ImageToImageFilterType::Pointer&gt;(pp0);<br>
<br>where the function &#39;comare.getIntensityRescaler()&#39; returns a RescalerType::Pointer. But the line:<br><br>    ImageToImageFilterType::Pointer pp1 = static_cast&lt;ImageToImageFilterType::Pointer&gt;(pp0);<br><br>
gives the error:<br><br>cannot convert from &#39;itk::SmartPointer&lt;TObjectType&gt;&#39; to &#39;itk::SmartPointer&lt;TObjectType&gt;&#39;   <br><br>But as I understand ImageToImageFilter is a base class for RescaleIntensityImageFilter so I don&#39;t see why I get this error, but maybe my C++ skills are a bit rusty.<br>