Skip to content
Snippets Groups Projects
Commit 2b96d7a9 authored by Guillaume Pasero's avatar Guillaume Pasero
Browse files

BUG: add-on to the fix for GetImage_called_twice

parent e5641554
No related branches found
No related tags found
No related merge requests found
......@@ -115,120 +115,120 @@ InputImageParameter::GetImage()
// it without changing the filename, it returns 2 different
// image pointers
// TODO : how do we deal with 2 GetImage with 2 defferent template???
if( m_PreviousFileName!=m_FileName )
// Should be handled by the CastImage< > macro
// 2 cases : the user set a filename vs. the user set an image
if( m_PreviousFileName!=m_FileName && !m_FileName.empty() )
{
//////////////////////// Filename case:
// 2 cases : the user set a filename vs. the user set an image
if ( !m_FileName.empty() )
m_PreviousFileName = m_FileName;
typedef otb::ImageFileReader<TOutputImage> ReaderType;
typename ReaderType::Pointer reader = ReaderType::New();
reader->SetFileName(m_FileName);
try
{
m_PreviousFileName = m_FileName;
typedef otb::ImageFileReader<TOutputImage> ReaderType;
typename ReaderType::Pointer reader = ReaderType::New();
reader->SetFileName(m_FileName);
try
{
reader->UpdateOutputInformation();
}
catch (itk::ExceptionObject &)
{
this->ClearValue();
}
m_Image = reader->GetOutput();
m_Reader = reader;
// Pay attention, don't return m_Image because it is a ImageBase...
return reader->GetOutput();
reader->UpdateOutputInformation();
}
catch (itk::ExceptionObject &)
{
this->ClearValue();
}
m_Image = reader->GetOutput();
m_Reader = reader;
// Pay attention, don't return m_Image because it is a ImageBase...
return reader->GetOutput();
}
else
{
//////////////////////// Image case:
if (m_Image.IsNull())
{
itkExceptionMacro("No input image or filename detected...");
}
else
{
if (m_Image.IsNull())
if (dynamic_cast<Int8ImageType*> (m_Image.GetPointer()))
{
return CastImage<Int8ImageType, TOutputImage> ();
}
else if (dynamic_cast<UInt8ImageType*> (m_Image.GetPointer()))
{
return CastImage<UInt8ImageType, TOutputImage> ();
}
else if (dynamic_cast<Int16ImageType*> (m_Image.GetPointer()))
{
return CastImage<Int16ImageType, TOutputImage> ();
}
else if (dynamic_cast<UInt16ImageType*> (m_Image.GetPointer()))
{
return CastImage<UInt16ImageType, TOutputImage> ();
}
else if (dynamic_cast<Int32ImageType*> (m_Image.GetPointer()))
{
return CastImage<Int32ImageType, TOutputImage> ();
}
else if (dynamic_cast<UInt32ImageType*> (m_Image.GetPointer()))
{
return CastImage<UInt32ImageType, TOutputImage> ();
}
else if (dynamic_cast<FloatImageType*> (m_Image.GetPointer()))
{
return CastImage<FloatImageType, TOutputImage> ();
}
else if (dynamic_cast<DoubleImageType*> (m_Image.GetPointer()))
{
return CastImage<DoubleImageType, TOutputImage> ();
}
else if (dynamic_cast<Int8VectorImageType*> (m_Image.GetPointer()))
{
return CastImage<Int8VectorImageType, TOutputImage> ();
}
else if (dynamic_cast<UInt8VectorImageType*> (m_Image.GetPointer()))
{
return CastImage<UInt8VectorImageType, TOutputImage> ();
}
else if (dynamic_cast<Int16VectorImageType*> (m_Image.GetPointer()))
{
return CastImage<Int16VectorImageType, TOutputImage> ();
}
else if (dynamic_cast<UInt16VectorImageType*> (m_Image.GetPointer()))
{
return CastImage<UInt16VectorImageType, TOutputImage> ();
}
else if (dynamic_cast<Int32VectorImageType*> (m_Image.GetPointer()))
{
return CastImage<Int32VectorImageType, TOutputImage> ();
}
else if (dynamic_cast<UInt32VectorImageType*> (m_Image.GetPointer()))
{
return CastImage<UInt32VectorImageType, TOutputImage> ();
}
else if (dynamic_cast<FloatVectorImageType*> (m_Image.GetPointer()))
{
return CastImage<FloatVectorImageType, TOutputImage> ();
}
else if (dynamic_cast<DoubleVectorImageType*> (m_Image.GetPointer()))
{
return CastImage<DoubleVectorImageType, TOutputImage> ();
}
else if (dynamic_cast<UInt8RGBAImageType*> (m_Image.GetPointer()))
{
return CastImage<UInt8RGBAImageType, TOutputImage> ();
}
else if (dynamic_cast<UInt8RGBImageType*> (m_Image.GetPointer()))
{
itkExceptionMacro("No input image or filename detected...");
return CastImage<UInt8RGBImageType, TOutputImage> ();
}
else
{
if (dynamic_cast<Int8ImageType*> (m_Image.GetPointer()))
{
return CastImage<Int8ImageType, TOutputImage> ();
}
else if (dynamic_cast<UInt8ImageType*> (m_Image.GetPointer()))
{
return CastImage<UInt8ImageType, TOutputImage> ();
}
else if (dynamic_cast<Int16ImageType*> (m_Image.GetPointer()))
{
return CastImage<Int16ImageType, TOutputImage> ();
}
else if (dynamic_cast<UInt16ImageType*> (m_Image.GetPointer()))
{
return CastImage<UInt16ImageType, TOutputImage> ();
}
else if (dynamic_cast<Int32ImageType*> (m_Image.GetPointer()))
{
return CastImage<Int32ImageType, TOutputImage> ();
}
else if (dynamic_cast<UInt32ImageType*> (m_Image.GetPointer()))
{
return CastImage<UInt32ImageType, TOutputImage> ();
}
else if (dynamic_cast<FloatImageType*> (m_Image.GetPointer()))
{
return CastImage<FloatImageType, TOutputImage> ();
}
else if (dynamic_cast<DoubleImageType*> (m_Image.GetPointer()))
{
return CastImage<DoubleImageType, TOutputImage> ();
}
else if (dynamic_cast<Int8VectorImageType*> (m_Image.GetPointer()))
{
return CastImage<Int8VectorImageType, TOutputImage> ();
}
else if (dynamic_cast<UInt8VectorImageType*> (m_Image.GetPointer()))
{
return CastImage<UInt8VectorImageType, TOutputImage> ();
}
else if (dynamic_cast<Int16VectorImageType*> (m_Image.GetPointer()))
{
return CastImage<Int16VectorImageType, TOutputImage> ();
}
else if (dynamic_cast<UInt16VectorImageType*> (m_Image.GetPointer()))
{
return CastImage<UInt16VectorImageType, TOutputImage> ();
}
else if (dynamic_cast<Int32VectorImageType*> (m_Image.GetPointer()))
{
return CastImage<Int32VectorImageType, TOutputImage> ();
}
else if (dynamic_cast<UInt32VectorImageType*> (m_Image.GetPointer()))
{
return CastImage<UInt32VectorImageType, TOutputImage> ();
}
else if (dynamic_cast<FloatVectorImageType*> (m_Image.GetPointer()))
{
return CastImage<FloatVectorImageType, TOutputImage> ();
}
else if (dynamic_cast<DoubleVectorImageType*> (m_Image.GetPointer()))
{
return CastImage<DoubleVectorImageType, TOutputImage> ();
}
else if (dynamic_cast<UInt8RGBAImageType*> (m_Image.GetPointer()))
{
return CastImage<UInt8RGBAImageType, TOutputImage> ();
}
else if (dynamic_cast<UInt8RGBImageType*> (m_Image.GetPointer()))
{
return CastImage<UInt8RGBImageType, TOutputImage> ();
}
else
{
itkExceptionMacro("Unknown image type");
}
itkExceptionMacro("Unknown image type");
}
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment