From: Eduardo DAVILA Date: Wed, 5 Jun 2013 15:03:43 +0000 (+0200) Subject: 2026 Bug Reading a group of images, Reading a directory with images X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=creaImageIO.git;a=commitdiff_plain;h=239bc68ced8df17fbab55fa97c826e2cb20aec76 2026 Bug Reading a group of images, Reading a directory with images --- diff --git a/bbtk/src/bbcreaImageIOImagesChooserDialogBox.xml b/bbtk/src/bbcreaImageIOImagesChooserDialogBox.xml index 64f41a4..5c75390 100644 --- a/bbtk/src/bbcreaImageIOImagesChooserDialogBox.xml +++ b/bbtk/src/bbcreaImageIOImagesChooserDialogBox.xml @@ -89,27 +89,43 @@ double spac[3]; first->GetDimensions(dim); first->GetSpacing(spac); - out->SetSpacing(spac); + if (spac[0]==spac[1]) + { + spac[2]=spac[0]; + } + out->SetSpacing(spac); out->SetDimensions(dim[0], dim[1], dlg.getImagesSelected().size() ); out->AllocateScalars(); out->Update(); unsigned long imsize = dim[0] * dim[1]; - imsize = imsize * dim[2] ; // deal with multiframes here + imsize = imsize * dim[2]; // deal with multiframes here // differents formats char , short, etc... // differents components 1..3 ex. jpg ->RGB 3 imsize = imsize * first->GetScalarSize() * first->GetNumberOfScalarComponents(); - int slice = 0; - std::vector::iterator it; - for (it=dlg.getImagesSelected().begin(); it!=dlg.getImagesSelected().end(); ++it) - { - memcpy(out->GetScalarPointer(0,0,slice), (*it)->GetScalarPointer(0,0,0), imsize); - slice++; - } - //for (it=dlg.getImagesSelected().begin(); it!=dlg.getImagesSelected().end(); ++it) - //{ - // (*it)->Delete(); - //} - bbSetOutputOut(out); + + int slice,sizeImageVector=dlg.getImagesSelected().size(); + for (slice=0 ; sliceGetScalarPointer(0,0,slice), img->GetScalarPointer(0,0,0), imsize); + //img->Delete(); + } + +//EED Notworking the iteration over the pointer vtkImageData +// int slice=0; +// std::vector::iterator it; +// for (it=dlg.getImagesSelected().begin(); it!=dlg.getImagesSelected().end(); ++it) +// { +// memcpy(out->GetScalarPointer(0,0,slice), (*it)->GetScalarPointer(0,0,0), imsize); +// slice++; +// } +// //for (it=dlg.getImagesSelected().begin(); it!=dlg.getImagesSelected().end(); ++it) +// // { +// // (*it)->Delete(); +// // } + + + bbSetOutputOut(out); } } else { bbSetOutputOut( NULL ); diff --git a/src/creaImageIOImageReader.cpp b/src/creaImageIOImageReader.cpp index 2d73f11..4220fb1 100644 --- a/src/creaImageIOImageReader.cpp +++ b/src/creaImageIOImageReader.cpp @@ -62,9 +62,9 @@ namespace creaImageIO Register( boost::shared_ptr(new VtkImageReader(vtkPNGReader::New() , "PNG", ".png"))); - Register(boost::shared_ptr(new VtkImageReader(vtkTIFFReader::New(), "JPEG", ".jpeg"))); - Register(boost::shared_ptr(new VtkImageReader(vtkJPEGReader::New()))); - Register(boost::shared_ptr(new VtkImageReader(vtkBMPReader::New()))); + Register(boost::shared_ptr(new VtkImageReader(vtkTIFFReader::New(), "TIFF", ".tiff"))); + Register(boost::shared_ptr(new VtkImageReader(vtkJPEGReader::New(), "JPEG", ".jpeg"))); + Register(boost::shared_ptr(new VtkImageReader(vtkBMPReader::New(), "BMP", ".bmp"))); Register(boost::shared_ptr(new VtkImageReader(vtkSLCReader::New()))); Register(boost::shared_ptr(new VtkImageReader(vtkMetaImageReader::New(),"MHD",".mhd"))); // Register(new VtkImageReader(vtkGESignalReader::New())); diff --git a/src/creaImageIOSimpleView.cpp b/src/creaImageIOSimpleView.cpp index 63c077e..0192143 100644 --- a/src/creaImageIOSimpleView.cpp +++ b/src/creaImageIOSimpleView.cpp @@ -43,16 +43,16 @@ namespace creaImageIO if(bresult) { i_img.push_back(mReader->ReadImage((*it).c_str())); - } - else - { + } else { + printf("ERROR. Impossible to read file %s\n", (*it).c_str() ); bfinal = false; - } - } + } // if + } // for delete mReader; return bfinal; } + bool SimpleView::readDirectory(const std::string i_pathname, std::vector &i_imgs) { bool bresult = true; diff --git a/src/creaImageIOVtkImageReader.cpp b/src/creaImageIOVtkImageReader.cpp index d16137b..60ef13a 100644 --- a/src/creaImageIOVtkImageReader.cpp +++ b/src/creaImageIOVtkImageReader.cpp @@ -98,10 +98,13 @@ namespace creaImageIO{ vtkImageData* im = 0; try { + mReader->SetFileName(filename.c_str()); mReader->Update(); im = vtkImageData::New(); + mReader->FileLowerLeftOff(); im->ShallowCopy(mReader->GetOutput()); +printf("EED VtkImageReader::ReadImage GetFileLowerLeft %d\n" , mReader->GetFileLowerLeft() ); } catch (...) { diff --git a/src/creaImageIOWxSimpleDlg.h b/src/creaImageIOWxSimpleDlg.h index 40b5526..7fd3335 100644 --- a/src/creaImageIOWxSimpleDlg.h +++ b/src/creaImageIOWxSimpleDlg.h @@ -69,16 +69,16 @@ namespace creaImageIO std::vector getMapInfos(){return m_resultsInfo;} private: - bool bInfo; - std::string namedescp; - std::string namedb; - wxString infoimage; + bool bInfo; + std::string namedescp; + std::string namedb; + wxString infoimage; /// interface to read data - SimpleView m_view; + SimpleView m_view; /// vtkImageData vector - std::vector m_results; + std::vector m_results; std::vector m_resultsInfo;