<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div>I'm implementing a filter that take 4 4D images as input and produce a 3D image as output. While executing I get the following exception:</div><div><br></div><div>&nbsp;terminate called after throwing an instance of 'itk::ExceptionObject'<br>&nbsp; what():&nbsp; /usr/local/ITK-4.2/include/ITK-4.2/itkImageBase.hxx:336:<br>itk::ERROR: Image(0x993f480): itk::ImageBase::CopyInformation() cannot cast PKN3itk10DataObjectE to PKN3itk9ImageBaseILj3EEE<br>Aborted<br></div><div><br></div><div>this is the declaration of the class</div><div><br></div><div>typedef float PCPixelType;<br>typedef Image&lt; PCPixelType, 4 &gt; PhaseContrastImage;<br>typedef Image&lt; PCPixelType, 3 &gt; PhaseContrast3DImage;<br><br></div><div><br></div><div>class PhaseContrastTimeAveragedImageFilter : public ImageToImageFilter&lt; PhaseContrastImage,
 PhaseContrast3DImage &gt;<br>{<br>public:<br>&nbsp; /** Standard class typedefs. */<br>&nbsp; typedef PhaseContrastTimeAveragedImageFilter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Self;<br>&nbsp; typedef ImageToImageFilter&lt; PhaseContrastImage, PhaseContrast3DImage &gt; Superclass;<br>&nbsp; typedef SmartPointer&lt; Self &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Pointer;<br>&nbsp; /** Method for creation through the object factory. */<br>&nbsp; itkNewMacro(Self);<br>&nbsp;<br>&nbsp; /** Run-time type information (and related methods). */<br>&nbsp; itkTypeMacro(PhaseContrastTimeAveragedImageFilter, ImageToImageFilter);<br>&nbsp;<br>&nbsp; /** The 4D magnitude image.*/<br>&nbsp; void SetMagnitudeImage(const PhaseContrastImage* image);<br>&nbsp;<br>&nbsp; /** The 4D X component of the phase image.*/<br>&nbsp; void SetPhaseXImage(const PhaseContrastImage* image);<br><br>&nbsp; /** The 4D Y component of the phase
 image.*/<br>&nbsp; void SetPhaseYImage(const PhaseContrastImage* image);<br><br>&nbsp; /** The 4D Z component of the phase image.*/<br>&nbsp; void SetPhaseZImage(const PhaseContrastImage* image);<br><br>&nbsp; <br>&nbsp; itkGetConstMacro(NoiseMaskThreshold, float);<br>&nbsp; void SetNoiseMaskThreshold( float threshold );<br>&nbsp; <br>protected:<br>&nbsp; PhaseContrastTimeAveragedImageFilter()</div><div>&nbsp;{<br>&nbsp;&nbsp;&nbsp; this-&gt;SetNumberOfRequiredInputs(4);<br>&nbsp;&nbsp;&nbsp; this-&gt;m_NoiseMaskThreshold = 0.1;<br>&nbsp;&nbsp;&nbsp; this-&gt;m_NoiseMaskThresholdValue = 0.0;<br>&nbsp;&nbsp;&nbsp; this-&gt;m_MaximumMagnitude = 0.0;<br>&nbsp; &nbsp; this-&gt;m_MinimumMagnitude = 0.0;<br>&nbsp; }<br></div><div>&nbsp; ~PhaseContrastTimeAveragedImageFilter() {}<br><br>&nbsp; virtual void BeforeThreadedGenerateData();<br>&nbsp;<br>&nbsp; /** Does the real work. */<br>&nbsp; virtual void ThreadedGenerateData(const
 Superclass::OutputImageRegionType&amp; outputRegionForThread, int threadId);<br>&nbsp; <br>private:<br>&nbsp; PhaseContrastTimeAveragedImageFilter(const Self &amp;); //purposely not implemented<br>&nbsp; void operator=(const Self &amp;);&nbsp; //purposely not implemented<br><br>&nbsp; float m_NoiseMaskThreshold;<br>&nbsp; float m_NoiseMaskThresholdValue;<br>&nbsp; float m_MaximumMagnitude;<br>&nbsp; float m_MinimumMagnitude;<br>};<br></div><div><br></div><div>Any suggestion of how to find out or where to look for in order to solve the problem raised by the exception?</div><div><br></div><div>best regards,</div><div><br></div><div><br></div></div></body></html>