X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvImageReader.txx;h=e2e98bb2d125f5bdf76e23281c00e95a0856a116;hb=303649a25b6a2f05025953260a0290d726370d8b;hp=31937bfbc229fe83919f721cbeeb4dce6f772c1e;hpb=91342e828163ad49dbed39426ed4521dbfc64629;p=clitk.git diff --git a/vv/vvImageReader.txx b/vv/vvImageReader.txx index 31937bf..e2e98bb 100644 --- a/vv/vvImageReader.txx +++ b/vv/vvImageReader.txx @@ -68,14 +68,12 @@ void vvImageReader::UpdateWithDim(std::string InputPixelType) template void vvImageReader::UpdateWithDimAndInputPixelType() { - - // DD(mType); - if (mType == MERGEDWITHTIME) // In this case we can load the images // one at the time to avoid excessive // memory use { mImage=vvImage::New(); + for (std::vector::const_iterator i=mInputFilenames.begin(); i!=mInputFilenames.end(); i++) { typedef itk::Image< InputPixelType, VImageDimension-1 > InputImageType; typedef itk::ImageFileReader ReaderType; @@ -83,7 +81,7 @@ void vvImageReader::UpdateWithDimAndInputPixelType() reader->ReleaseDataFlagOn(); reader->SetFileName(*i); try { - reader->Update(); + mImage->AddItkImage(reader->GetOutput()); } catch ( itk::ExceptionObject & err ) { std::cerr << "Error while reading " << mInputFilenames[0].c_str() << " " << err << std::endl; @@ -92,7 +90,6 @@ void vvImageReader::UpdateWithDimAndInputPixelType() mLastError = error.str(); return; } - mImage->AddItkImage(reader->GetOutput()); } } else if (mType == SLICED) { mImage=vvImage::New(); @@ -120,27 +117,26 @@ void vvImageReader::UpdateWithDimAndInputPixelType() filter->SetInput(reader->GetOutput()); filter->ReleaseDataFlagOn(); try { - filter->Update(); + mImage->AddItkImage(filter->GetOutput()); } catch ( itk::ExceptionObject & err ) { std::cerr << "Error while slicing " << mInputFilenames[0].c_str() << "(slice #" << mSlice << ") " << err << std::endl; return; } - mImage->AddItkImage(filter->GetOutput()); } else { if (mInputFilenames.size() > 1) { typedef itk::Image< InputPixelType, VImageDimension > InputImageType; typedef itk::ImageSeriesReader ReaderType; typename ReaderType::Pointer reader = ReaderType::New(); - for (std::vector::const_iterator i=mInputFilenames.begin(); i!=mInputFilenames.end(); i++) - std::cout << (*i) << std::endl; reader->SetFileNames(mInputFilenames); - //if (mUseAnObserver) { - //reader->AddObserver(itk::ProgressEvent(), mObserver); - //} + reader->ReleaseDataFlagOn(); + try { - reader->Update(); + if (mType == IMAGEWITHTIME) + mImage=vvImageFromITK(reader->GetOutput(),true); + else + mImage=vvImageFromITK(reader->GetOutput()); } catch ( itk::ExceptionObject & err ) { std::cerr << "Error while reading image series:" << err << std::endl; std::stringstream error; @@ -148,27 +144,18 @@ void vvImageReader::UpdateWithDimAndInputPixelType() mLastError = error.str(); return; } - - // DD(reader->GetOutput()->GetImageDimension()); - // DD(reader->GetOutput()->GetNumberOfComponentsPerPixel()); - // for(unsigned int i=0; i GetOutput()->GetImageDimension(); i++) { - // DD(reader->GetOutput()->GetSpacing()[i]); - // } - - if (mType == IMAGEWITHTIME) - mImage=vvImageFromITK(reader->GetOutput(),true); - else - mImage=vvImageFromITK(reader->GetOutput()); } else { typedef itk::Image< InputPixelType, VImageDimension > InputImageType; typedef itk::ImageFileReader ReaderType; typename ReaderType::Pointer reader = ReaderType::New(); reader->SetFileName(mInputFilenames[0]); - //if (mUseAnObserver) { - //reader->AddObserver(itk::ProgressEvent(), mObserver); - //} + reader->ReleaseDataFlagOn(); + try { - reader->Update(); + if (mType == IMAGEWITHTIME) + mImage=vvImageFromITK(reader->GetOutput(),true); + else + mImage=vvImageFromITK(reader->GetOutput()); } catch ( itk::ExceptionObject & err ) { std::cerr << "Error while reading " << mInputFilenames[0].c_str() << " " << err << std::endl; @@ -177,19 +164,6 @@ void vvImageReader::UpdateWithDimAndInputPixelType() mLastError = error.str(); return; } - - // DD(reader->GetOutput()->GetImageDimension()); - // DD(reader->GetOutput()->GetNumberOfComponentsPerPixel()); - // for(unsigned int i=0; i GetOutput()->GetImageDimension(); i++) { - // DD(reader->GetOutput()->GetSpacing()[i]); - // DD(reader->GetOutput()->GetOrigin()[i]); - // } - - - if (mType == IMAGEWITHTIME) - mImage=vvImageFromITK(reader->GetOutput(),true); - else - mImage=vvImageFromITK(reader->GetOutput()); } } }