X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOImageReader.cpp;h=1ef6ce428a84d1c61fd7f9d6fb5b166e9995c6ab;hb=7039ca45487cba3e14d308a61643c5bbab35a086;hp=a7937ccc8e7e017816a2f359c849ace037d0a514;hpb=805ec93a6b36ad6acf63458414c545a737322354;p=creaImageIO.git diff --git a/src2/creaImageIOImageReader.cpp b/src2/creaImageIOImageReader.cpp index a7937cc..1ef6ce4 100644 --- a/src2/creaImageIOImageReader.cpp +++ b/src2/creaImageIOImageReader.cpp @@ -4,6 +4,7 @@ #include #include +#include #include #include @@ -14,7 +15,6 @@ //#include - #include "boost/filesystem/path.hpp" namespace creaImageIO @@ -22,73 +22,28 @@ namespace creaImageIO - //===================================================================== - /* - void IRFillFields(DicomNode* node, - GDCM_NAME_SPACE::File* gdcmFile) - { - const DicomNodeTypeDescription::FieldDescriptionMapType& dm - = node->GetTypeDescription().GetFieldDescriptionMap(); - DicomNodeTypeDescription::FieldDescriptionMapType::const_iterator i; - - - DicomNode::FieldValueMapType& vm = node->GetFieldValueMap(); - for (i=dm.begin(); i!=dm.end(); ++i) - { - if ( (i->second.flags==0) && - (i->second.group!=0) && - (i->second.element!=0) ) - { - uint16_t gr = i->second.group; - uint16_t el = i->second.element; - - std::string val = gdcmFile->GetEntryString(gr,el); - - vm[i->first] = irclean(val); - } - else - { - vm[i->first] = ""; - } - } - } - */ - //===================================================================== - - //===================================================================== ImageReader::ImageReader() : mUnreadableImage(0), - mLastFilename("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"), - mLastReader(0) - + mLastFilename("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&") { // std::cout << "#### ImageReader::ImageReader()"<(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(vtkSLCReader::New()))); + Register(boost::shared_ptr(new VtkImageReader(vtkMetaImageReader::New(),"MHD",".mhd"))); // Register(new VtkImageReader(vtkGESignalReader::New())); - Register(new DicomImageReader); - - /* - std::cout << "## Registered file extensions : "<::const_iterator i; - for (i=GetKnownExtensions().begin(); - i!=GetKnownExtensions().end(); - i++) - { - std::cout << "'"<<(*i)<<"'"<(new DicomImageReader)); + Register(boost::shared_ptr(new UltrasonixImageReader)); + + mUnreadableImage = vtkImageData::New(); int dim[3]; dim[0] = dim[1] = 128; @@ -113,15 +68,12 @@ namespace creaImageIO //===================================================================== ImageReader::~ImageReader() { - // std::cout << "#### ImageReader::~ImageReader()"<::iterator i; - for (i=mReader.begin(); i!=mReader.end(); i++) - { - // std::cout << "#### ImageReader::UnRegister(" - // << (*i)->GetName()<<")"<Delete(); @@ -131,62 +83,56 @@ namespace creaImageIO //===================================================================== //===================================================================== - void ImageReader::Register(SpecificImageReader* r) + void ImageReader::Register(boost::shared_ptr r) { - // std::cout << "#### ImageReader::Register("<GetName()<<")"<PushBackExtensions(mKnownExtensions); + } //===================================================================== //===================================================================== // Returns true iff the file is readable - bool ImageReader::CanRead( const std::string& filename, - const std::string& exclude ) + bool ImageReader::CanRead( const std::string& filename ) { - // std::cout << "## ImageReader::CanRead("<::iterator i; - for (i=mReader.begin(); i!=mReader.end(); i++) - { - if ((*i)->GetName()==exclude) continue; - ok = (*i)->CanRead(filename); - if (ok) - { - mLastFilename = filename; - mLastReader = *i; - break; - } - } - return ok; + if(filename != "") + { + std::vector >::iterator i; + for (i=mReader.begin(); i!=mReader.end(); i++) + { + ok = (*i)->CanRead(filename); + if (ok) + { + mLastFilename = filename; + mLastReader = *i; + break; + } + } + } + return ok; + } //===================================================================== //===================================================================== // Reads the file (CanRead must be called before : no test here) - vtkImageData* ImageReader::ReadImage( const std::string& filename, - const std::string& exclude ) + vtkImageData* ImageReader::ReadImage( const std::string& filename) { - // std::cout << "## ImageReader::Read("<ShallowCopy(mUnreadableImage); return im; } } vtkImageData* i = mLastReader->ReadImage(mLastFilename); - // std::cout << "i="<ShallowCopy(mUnreadableImage); } - // std::cout << "i="<& attr) { - // std::cout << "ImageReader::ReadDicomInfo '"<& v) + { + std::vector >::iterator i; + for (i=mReader.begin(); i!=mReader.end(); i++) + { + (*i)->PushBackExtensions(v); + } + } + //===================================================================== + } // namespace creaImageIO