]> Creatis software - creaImageIO.git/commitdiff
*** empty log message ***
authorJuan Prieto <Juan.Prieto@creatis.insa-lyon.fr>
Mon, 22 Jun 2009 13:40:48 +0000 (13:40 +0000)
committerJuan Prieto <Juan.Prieto@creatis.insa-lyon.fr>
Mon, 22 Jun 2009 13:40:48 +0000 (13:40 +0000)
src2/creaImageIOAbstractImageReader.h
src2/creaImageIODicomImageReader.cpp
src2/creaImageIODicomImageReader.h
src2/creaImageIOGimmickView.cpp

index e5585606f9fdee1a840ab3eadcc90b9904895966..c1c15ef948b8a418e5218fd129fd083f92b85878 100644 (file)
@@ -27,7 +27,7 @@ namespace creaImageIO
     const std::string& GetName() const { return mName; }
     virtual void PushBackExtensions(std::vector<std::string>&) {}
     virtual bool CanRead(const std::string& filename) { return false; }
-    virtual vtkImageData* ReadImage(const std::string& filename) { return 0; }
+    virtual vtkImageData* ReadImage(const std::string& filename) { return 0; } 
     virtual void ReadAttributes(const std::string& filename, 
                                tree::AttributeMapType& attr) {}
 
index 95619e5f11ccf6f5a8c3b3fa0de968c2f829effe..b95f27ffb72ef4597f8fd494738c60c709ccd302 100644 (file)
@@ -5,6 +5,7 @@
 #include "boost/filesystem/path.hpp"
 
 #include <creaImageIOTreeAttributeDescriptor.h>
+#include <vtkStringArray.h>
 
 namespace creaImageIO
 {
index 1efd8a8d940667b0970b6c04dee278d2f59f2858..ee10caa3490906c1800db1b1ec0a6c4ce6c53b40 100644 (file)
@@ -25,7 +25,7 @@ namespace creaImageIO
 
     virtual void PushBackExtensions(std::vector<std::string>&);
     virtual bool CanRead(const std::string& filename);
-    virtual vtkImageData* ReadImage(const std::string& filename);
+    virtual vtkImageData* ReadImage(const std::string& filename);      
     virtual void ReadAttributes(const std::string& filename, 
                                tree::AttributeMapType& attr);
 
index 945b091ce3552ddc80bb3d4d3dc945926d7bd163..b0d9041e6c634c07dddcd73a808034aa172b77c3 100644 (file)
@@ -273,13 +273,12 @@ namespace creaImageIO
 
    //======================================================================
   ///Reads Images (Non Threaded)
-  void GimmickView::ReadImagesNotThreaded(std::vector<vtkImageData*>& s,std::vector<std::string> im, int dimension)
-  {
+void GimmickView::ReadImagesNotThreaded(std::vector<vtkImageData*>& s,std::vector<std::string> im, int dimension)
+{
          
        // Create the output data
        if (im.size()==1) 
-      {
-                 
+       {                 
                // Only one image : give it
                vtkImageData* out = vtkImageData::New();
                GimmickDebugMessage(3, "State Check: Full Filename: "
@@ -287,67 +286,66 @@ namespace creaImageIO
                                                <<std::endl);
                out->ShallowCopy(mReader.GetImage(im.front()));
                s.push_back( out );
-      }
-         
+       }         
     else if (im.size()>1)
-      {
-       vtkImageData* first = mReader.GetImage( im.front());
-       if (dimension==2) 
-         {     
-           // n2D to 3D
-           vtkImageData* out = vtkImageData::New();
-           out->CopyStructure(first);  
-           out->SetScalarType(first->GetScalarType());
-           int ext[6];
-           first->GetExtent(ext);
-           ext[5] = im.size();
-           out->SetExtent(ext);
-           // LG : TODO : Z Spacing  ?
-           
-           out->AllocateScalars();
-           
-           //first->Print(std::cout);
-           //      out->Print(std::cout);
-           
-           int dim[3];
-           first->GetDimensions(dim);
-           unsigned long imsize = 
-             ( (unsigned long)first->GetScalarPointer(0,1,0)
-               - (unsigned long)first->GetScalarPointer(0,0,0))
-             *dim[1];
-
-           int slice = 0;
-               std::vector<std::string>::iterator it;
-          for (it=im.begin(); it!=im.end(); ++it) 
-             {
-               //std::cout << "copying slice "<<slice <<std::endl;
-                         vtkImageData* cur = mReader.GetImage( (*it));
-               
-               void* src = cur->GetScalarPointer(0,0,0);
-               void* dst = out->GetScalarPointer(0,0,slice);
-               //              std::cout << "src="<<src<<std::endl;
-               //              std::cout << "dst="<<dst<<std::endl;
-               //              std::cout << "siz="<<imsize<<std::endl;
-               memcpy(dst,src,imsize);
-
-               slice++;
-             }
-           s.push_back(out);
-         }
-       else 
-         {
-           // n3D
+       {
+               vtkImageData* first = mReader.GetImage( im.front());
+               if (dimension == 2) 
+               {  
+                // n3D
                  std::vector<std::string>::iterator it;
-           for (it=im.begin(); it!=im.end(); ++it) 
-             {
-               vtkImageData* out = vtkImageData::New();
-               out->ShallowCopy(mReader.GetImage(*it));
-               s.push_back(out);
-             }
-         }
-      }
-       
-  }
+                       for (it=im.begin(); it!=im.end(); ++it) 
+                       {
+                               vtkImageData* out = vtkImageData::New();
+                               out->ShallowCopy(mReader.GetImage(*it));
+                               s.push_back(out);
+                       }
+               }         
+               else 
+               {
+                       // n2D to 3D
+                       vtkImageData* out = vtkImageData::New();
+                       out->CopyStructure(first);      
+                       out->SetScalarType(first->GetScalarType());
+                       int ext[6];
+                       first->GetExtent(ext);
+                       ext[5] = im.size();
+                       out->SetExtent(ext);
+                       // LG : TODO : Z Spacing  ?
+
+                       out->AllocateScalars();
+
+                       //first->Print(std::cout);
+                       //          out->Print(std::cout);
+
+                       int dim[3];
+                       first->GetDimensions(dim);
+                       unsigned long imsize = 
+                               ( (unsigned long)first->GetScalarPointer(0,1,0)
+                       - (unsigned long)first->GetScalarPointer(0,0,0))
+                               *dim[1];
+
+                       int slice = 0;
+                       std::vector<std::string>::iterator it;
+                       for (it=im.begin(); it!=im.end(); ++it) 
+                               {
+                       //std::cout << "copying slice "<<slice <<std::endl;
+                                       vtkImageData* cur = mReader.GetImage( (*it));
+
+                       void* src = cur->GetScalarPointer(0,0,0);
+                       void* dst = out->GetScalarPointer(0,0,slice);
+                       //              std::cout << "src="<<src<<std::endl;
+                       //              std::cout << "dst="<<dst<<std::endl;
+                       //              std::cout << "siz="<<imsize<<std::endl;
+                       memcpy(dst,src,imsize);
+
+                       slice++;
+                               }
+                       s.push_back(out);
+
+               }
+       }       
+}
   //======================================================================
 
   //======================================================================
@@ -376,28 +374,31 @@ namespace creaImageIO
                        "MultiThreadImageReader event : "<<e<<std::endl);
        if (e==ImageLoaded)
        {
-    if (filename.size()==0)
-      {
+               if (filename.size()==0)
+               {
                  //What to do in this case?
                  /*
                GimmickDebugMessage(5,
                                        "Pushing unknown image in queue"
                                        <<std::endl);
                mImageEventQueue.push_back(ImageEventType(image));*/
-               return;
-      }
-    ImageEventTypeMap::iterator i;
-    i = mImageEventMap.find(filename);
-    if (i!=mImageEventMap.end())
-      {
-               GimmickDebugMessage(5,
-                                       "Putting image of file '"<<filename<<"' on pointer"
-                                       <<std::endl);
-               ImageEventType ie(i->second);
-               ie.image = image;
-               ie.pointerHolder->Set(ie.image);
-               //mImageEventMap.erase(i);
-      }
+                       return;
+               }
+               ImageEventTypeMap::iterator i;
+//JCP 22-06-2009, test mImageEventMap.size() > 0
+               if(mImageEventMap.size()>0){
+                       i = mImageEventMap.find(filename);
+                       if (i!=mImageEventMap.end())
+                       {
+                               GimmickDebugMessage(5,
+                                                       "Putting image of file '"<<filename<<"' on pointer"
+                                                       <<std::endl);
+                               ImageEventType ie(i->second);
+                               ie.image = image;
+                               ie.pointerHolder->Set(ie.image);
+                               //mImageEventMap.erase(i);
+                       }
+               }    
        }
        else if (e==Error)
        {