- // For unknown analyze orientations, we set identity
- if(analyzeImageIO) {
- const double m[16] = {1.,0.,0.,0.,0.,0.,1.,0.,0.,-1.,0.,0.,0.,0.,0.,1.};
- int i;
- for(i=0; m[i]==mImage->GetTransform()->GetMatrix()->GetElement(i%4, i/4) && i<16; i++);
- if(i==16) {
- itkWarningMacro(<< "Analyze image file format detected with unknown orientation."
- << "Forcing identity orientation, use other file format if not ok.");
- mImage->GetTransform()->Identity();
+ if (mInputFilenames.size() > 1) {
+ typedef itk::ImageSeriesReader<InputImageType> ReaderType;
+ typename ReaderType::Pointer reader = ReaderType::New();
+ reader->SetFileNames(mInputFilenames);
+ reader->ReleaseDataFlagOn();
+ try {
+ reader->Update();
+ input = reader->GetOutput();
+ } catch ( itk::ExceptionObject & err ) {
+ std::cerr << "Error while reading image series:" << err << std::endl;
+ std::stringstream error;
+ error << err;
+ mLastError = error.str();
+ return;
+ }
+ } else {
+ typedef itk::ImageFileReader<InputImageType> ReaderType;
+ typename ReaderType::Pointer reader = ReaderType::New();
+ reader->SetFileName(mInputFilenames[0]);
+ reader->ReleaseDataFlagOn();
+ try {
+ reader->Update();
+ input = reader->GetOutput();
+ } catch ( itk::ExceptionObject & err ) {
+ std::cerr << "Error while reading " << mInputFilenames[0].c_str()
+ << " " << err << std::endl;
+ std::stringstream error;
+ error << err;
+ mLastError = error.str();
+ return;