X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=src%2FcreaImageIOGimmickView.cpp;h=47aa9cb2f1b817e8ec386fae312d88481f139cf0;hb=refs%2Fheads%2Fvtk8itk4wx3-mingw64;hp=0af8ded092fb945947d429616830751e53b3b4a5;hpb=c7482ec7d04a5e5987841932a6856ebd471cebdb;p=creaImageIO.git diff --git a/src/creaImageIOGimmickView.cpp b/src/creaImageIOGimmickView.cpp index 0af8ded..47aa9cb 100644 --- a/src/creaImageIOGimmickView.cpp +++ b/src/creaImageIOGimmickView.cpp @@ -27,7 +27,7 @@ #include -#include + #include "boost/filesystem.hpp" #if defined(USE_GDCM) @@ -36,8 +36,11 @@ #include #include #include + #endif +#include + /*#if defined(USE_GDCM2) #include #include "gdcmSystem.h" @@ -46,7 +49,9 @@ #include "gdcmAnonymizer.h" #include "gdcmGlobal.h" #endif*/ - +#if defined(_WIN32) +#pragma warning(disable: 4996) +#endif namespace fs = boost::filesystem; namespace creaImageIO @@ -138,6 +143,7 @@ namespace creaImageIO /// Finalize void GimmickView::Finalize() { + printf("EED GimmickView::Finalize \n"); } //====================================================================== @@ -374,19 +380,22 @@ void GimmickView::ReadImagesNotThreaded(std::vector& s, std::vect // n*2D to 3D vtkImageData* out = vtkImageData::New(); // out->CopyStructure(first); - out->SetScalarType(first->GetScalarType()); - out->SetNumberOfScalarComponents(first->GetNumberOfScalarComponents()); int ext[6]; //first->GetExtent(ext); // JPR +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 first->GetWholeExtent(ext); // renvoie egalement 0,0 en Z // JPR +#else + first->GetExtent(ext); // renvoie egalement 0,0 en Z // JPR +#endif if(ext[5] == 0) { - ext[5] = im.size()-1; + ext[5] = (int)im.size()-1; } else { - ext[5] = ext[5] * im.size()-1; // to deal with multiframes - JPR + ext[5] = ext[5] * (int)im.size()-1; // to deal with multiframes - JPR } out->SetExtent(ext); @@ -394,10 +403,17 @@ void GimmickView::ReadImagesNotThreaded(std::vector& s, std::vect int dim[3]; first->GetDimensions(dim); + out->SetDimensions(dim[0], dim[1], (int)im.size() ); - out->SetDimensions(dim[0], dim[1], im.size() ); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + out->SetScalarType(first->GetScalarType()); + out->SetNumberOfScalarComponents(first->GetNumberOfScalarComponents()); out->AllocateScalars(); out->Update(); +#else + out->AllocateScalars(first->GetScalarType(),first->GetNumberOfScalarComponents()); +#endif unsigned long imsize = dim[0] * dim[1]; imsize = imsize * dim[2] ; // deal with multiframes // JPR @@ -484,14 +500,17 @@ void GimmickView::ReadImagesNotThreaded(std::vector& s, std::vect void GimmickView::readImages1(std::vector& o_output, std::vector im, OutputAttr i_attr) { + i_attr.outside.push_back("D0019_100a"); // simens Number Of Images In Mosaic std::vector::iterator it; for (it=im.begin(); it!=im.end(); ++it) { OutStrGimmick out; out.img = vtkImageData::New(); out.img->ShallowCopy(mReader.GetImage(*it)); - if(i_attr.mult) + if(i_attr.mult) + { getAttributes((*it),out.infos,i_attr); + } o_output.push_back(out); } // If we want only one output information structure, we set it outside the loop @@ -509,19 +528,20 @@ void GimmickView::ReadImagesNotThreaded(std::vector& s, std::vect OutputAttr i_attr, double i_zspc) { OutStrGimmick out; - vtkImageData* first = mReader.GetImage( im.front()); + vtkImageData* first = mReader.GetImage( im.front() ); out.img = vtkImageData::New(); - out.img->SetScalarType(first->GetScalarType()); - out.img->SetNumberOfScalarComponents(first->GetNumberOfScalarComponents()); int ext[6]; +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 first->GetWholeExtent(ext); // send also 0,0 in Z +#else + first->GetExtent(ext); // send also 0,0 in Z +#endif if(ext[5] == 0) { - ext[5] = im.size()-1; - } - else - { - ext[5] = ext[5] * im.size()-1; // to deal with multiframes + ext[5] = (int)im.size()-1; + } else { + ext[5] = ext[5] * (int)im.size()-1; // to deal with multiframes } out.img->SetExtent(ext); int dim[3]; @@ -529,9 +549,20 @@ void GimmickView::ReadImagesNotThreaded(std::vector& s, std::vect first->GetDimensions(dim); first->GetSpacing(spac); out.img->SetSpacing(spac); - out.img->SetDimensions(dim[0], dim[1], im.size() ); + out.img->SetDimensions(dim[0], dim[1], (int)im.size() ); + + + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + out.img->SetScalarType(first->GetScalarType()); + out.img->SetNumberOfScalarComponents(first->GetNumberOfScalarComponents()); out.img->AllocateScalars(); out.img->Update(); +#else + out.img->AllocateScalars(first->GetScalarType(), first->GetNumberOfScalarComponents()); +#endif + unsigned long imsize = dim[0] * dim[1]; imsize = imsize * dim[2] ; // deal with multiframes here // differents formats char , short, etc... @@ -541,12 +572,14 @@ void GimmickView::ReadImagesNotThreaded(std::vector& s, std::vect //!!!!out.img->SetSpacing(i_zspc); int slice = 0; std::vector::iterator it; + for (it=im.begin(); it!=im.end(); ++it) { vtkImageData* cur = mReader.GetImage( (*it) ); memcpy(out.img->GetScalarPointer(0,0,slice), cur->GetScalarPointer(0,0,0), imsize); slice++; - } + } // for it + getAttributes(im.front(),out.infos, i_attr); o_output.push_back(out); } @@ -573,29 +606,41 @@ void GimmickView::ReadImagesNotThreaded(std::vector& s, std::vect std::vector::iterator it; std::vector::iterator it_out = o_output.begin(); - for (it=im.begin(); it!=im.end(); ++it, it_out += dim[2]) + for (it=im.begin(); it!=im.end(); ++it)//, it_out ++) { vtkImageData* cur = mReader.GetImage( (*it) ); for (int slice= 0 ; slice SetScalarType(first->GetScalarType()); out.img->SetSpacing(spac); - out.img->SetNumberOfScalarComponents(first->GetNumberOfScalarComponents()); int ext[6]; +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 first->GetWholeExtent(ext); // send also 0,0 in Z +#else + first->GetExtent(ext); // send also 0,0 in Z +#endif ext[5] = 0; out.img->SetExtent(ext); - out.img->SetDimensions(dim[0], dim[1], 1 ); + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + out.img->SetScalarType(first->GetScalarType()); + out.img->SetNumberOfScalarComponents(first->GetNumberOfScalarComponents()); out.img->AllocateScalars(); out.img->Update(); +#else + out.img->AllocateScalars(first->GetScalarType(),first->GetNumberOfScalarComponents()); +#endif + + memcpy(out.img->GetScalarPointer(0,0,0), cur->GetScalarPointer(0,0,slice), imsize); o_output.push_back(out); } - if(i_attr.mult) - getAttributes((*it),(*it_out).infos,i_attr); + // if(i_attr.mult) + // getAttributes((*it),(*it_out).infos,i_attr); } if(!i_attr.mult) { @@ -620,19 +665,33 @@ void GimmickView::ReadImagesNotThreaded(std::vector& s, std::vect { OutStrGimmick out; out.img = vtkImageData::New(); - out.img->SetScalarType(first->GetScalarType()); - out.img->SetNumberOfScalarComponents(first->GetNumberOfScalarComponents()); int ext[6]; - double spac[6]; + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 first->GetWholeExtent(ext); // send also 0,0 in Z +#else + first->GetExtent(ext); // send also 0,0 in Z +#endif + + double spac[6]; ext[5] = 0; out.img->SetExtent(ext); first->GetSpacing(spac); out.img->SetSpacing(spac); - out.img->SetDimensions(dim[0], dim[1], im.size() ); + out.img->SetDimensions(dim[0], dim[1], (int)im.size() ); + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + out.img->SetScalarType(first->GetScalarType()); + out.img->SetNumberOfScalarComponents(first->GetNumberOfScalarComponents()); out.img->AllocateScalars(); out.img->Update(); +#else + out.img->AllocateScalars(first->GetScalarType(), first->GetNumberOfScalarComponents()); +#endif + unsigned long imsize = dim[0] * dim[1]; imsize = imsize * first->GetScalarSize() * first->GetNumberOfScalarComponents(); int index = 0; @@ -659,28 +718,21 @@ void GimmickView::ReadImagesNotThreaded(std::vector& s, std::vect void GimmickView::readImages(std::vector& o_output, std::vector im, OutputAttr i_attr, int i_dim, double i_zspc) { - int size = im.size(); + int size = (int)im.size(); if ( size == 0) { return; - } - else if (size == 1) - { + } else if (size == 1) { // Simplest case // Only one image : give it // But take in count multiframe possibility if ( isSingle(im.front()) || i_dim != 1) { readImages1(o_output,im, i_attr); - } - else - { - readImages2(o_output,im, i_attr,i_zspc); - } - - } - else - { + } else { + readImages2(o_output,im, i_attr,i_zspc); + } + } else { // multiple or single frame if ( isSingle(im.front()) ) { @@ -689,40 +741,32 @@ void GimmickView::ReadImagesNotThreaded(std::vector& s, std::vect { // 2D to 3D readImages3(o_output,im, i_attr,i_zspc); - } - else - { + } else { readImages1(o_output,im, i_attr); } - } - else - { + } else { // we deal with multiple frames n x (2D x T) // Differents outputs are avaialable if(i_dim == 1) { // put all in one output readImages3(o_output,im, i_attr,i_zspc); - - } - else if( i_dim == 2) - { + } else if( i_dim == 2) { // put in a vector of n x T (2D) readImages2(o_output,im, i_attr,i_zspc); - } - else if( i_dim == 3) - { + } else if( i_dim == 3) { // put in a vector of n (2D x T) // No transformations. readImages1(o_output,im, i_attr); - } - else - { + } else { // put in a vector of T (2D x n) readImages4(o_output,im, i_attr); - } - } - } + } // i_dim + } //isSingle(im.front()) + } // if size + +//EED UnMosaic step... +//How to verifie if is a mosaic file , with how many images inside?? } @@ -743,7 +787,7 @@ void GimmickView::ReadImagesNotThreadedInVector(std::vector& s, s else if (im.size()>1) // Test inutile ? JPR { /// \TODO fix unused variable 'first' - vtkImageData* first = mReader.GetImage( im.front()); +// vtkImageData* first = mReader.GetImage( im.front()); if (dimension == 2) { // n3D @@ -753,10 +797,8 @@ void GimmickView::ReadImagesNotThreadedInVector(std::vector& s, s vtkImageData* out = vtkImageData::New(); out->ShallowCopy(mReader.GetImage(*it)); s.push_back(out); - } - } - else - { + } // for + } else { // n2D to 3D // NO! // n *2D + T in a vector : @@ -765,9 +807,9 @@ void GimmickView::ReadImagesNotThreadedInVector(std::vector& s, s { vtkImageData* out = mReader.GetImage( (*it)); s.push_back(out); - } - } - } + } // for + } // if dimension + } // if im.size } //====================================================================== @@ -898,8 +940,9 @@ void GimmickView::Anonymize(std::vector i_filenames, int type) // We need a gdcm::FileHelper, since we want to load the pixels GDCM_NAME_SPACE::FileHelper *fh = GDCM_NAME_SPACE::FileHelper::New(file); - - uint8_t *imageData = fh->GetImageData(); + +//Borrame +//EED uint8_t *imageData = fh->GetImageData(); // Institution name file->AddAnonymizeElement(0x0008, 0x0080, "*"); @@ -923,7 +966,7 @@ void GimmickView::Anonymize(std::vector i_filenames, int type) fh->SetContentType(GDCM_NAME_SPACE::UNMODIFIED_PIXELS_IMAGE); fh->WriteDcmExplVR(file->GetFileName() +".ano1" ); - std::cout << i <<" End Anonymize" << std::cout; + std::cout << i <<" End Anonymize" << std::endl; file->ClearAnonymizeList(); file->Delete(); fh->Delete();