X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fgdcmvtk%2Fsrc%2FbbgdcmvtkGetXCoherentInfoGdcmReader.cxx;h=2bbf54205c3d2cb9b3e58a091ea1a840de45d107;hb=1709248f43dcb7745909d1d59109f553ee0ae700;hp=faabc03cf6eca63b458e6c3cfe119ddf5864f823;hpb=fef49cf06296bb65a839585dba63f282a89d91fc;p=bbtk.git diff --git a/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.cxx b/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.cxx index faabc03..2bbf542 100644 --- a/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.cxx +++ b/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.cxx @@ -59,14 +59,21 @@ vtkImageData* GetXCoherentInfoGdcmReader::CreateDefaultImage() sizeZ = 1; vtkImageData *newImage = vtkImageData::New(); newImage->Initialize(); - newImage->SetScalarTypeToUnsignedChar(); newImage->SetSpacing( 1,1,1 ); newImage->SetDimensions( sizeX,sizeY,sizeZ ); - newImage->SetWholeExtent(0, sizeX-1,0,sizeY-1,0,sizeZ-1 ); newImage->SetExtent(0, sizeX-1,0,sizeY-1,0,sizeZ-1 ); + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + newImage->SetWholeExtent(0, sizeX-1,0,sizeY-1,0,sizeZ-1 ); + newImage->SetScalarTypeToUnsignedChar(); newImage->SetNumberOfScalarComponents(1); newImage->AllocateScalars(); newImage->Update(); +#else + newImage->AllocateScalars(VTK_UNSIGNED_CHAR,1); +#endif + memset ( (void*)newImage->GetScalarPointer(), 0, sizeX*sizeY*1 ); for (i=0; iSetFileName( bbGetInputIn()[0] ); } else { f->SetFileName( "" ); - } - + } // if + bool res = f->Load(); if ( !res ) { @@ -98,7 +104,8 @@ void GetXCoherentInfoGdcmReader::Process() f->Delete(); bbSetOutputOut( CreateDefaultImage() ); return; - } + } // if res + // Get info from the first image file int i; std::vector v_iop; @@ -108,7 +115,7 @@ void GetXCoherentInfoGdcmReader::Process() for(i=0; i< 6; i++) { v_iop.push_back(iop[i]); - } + } // for i bbSetOutputIOP(v_iop ); std::vector v_ipp; @@ -118,20 +125,19 @@ void GetXCoherentInfoGdcmReader::Process() for(i=0; i< 3; i++) { v_ipp.push_back(ipp[i]); - } + } // for i bbSetOutputIPP(v_ipp ); // Add *all the files* to the SerieHelper sh = GDCM_NAME_SPACE::SerieHelper::New(); std::vector gii = bbGetInputIn(); - + for(std::vector::iterator it = gii.begin(); it != gii.end(); ++it) { sh->AddFileName(*it); - } - + } //for vector GDCM_NAME_SPACE::FileList::const_iterator it; GDCM_NAME_SPACE::FileList *l; @@ -139,9 +145,14 @@ void GetXCoherentInfoGdcmReader::Process() // Should only contain one! l = sh->GetFirstSingleSerieUIDFileSet(); + if (l==NULL) + { + return; + } + double zspacing = 0.; sh->OrderFileList(l); // this one should compute the *actual* Z Spacing! - zspacing = sh->GetZSpacing(); + zspacing = sh->GetZSpacing(); std::vector v_pixelspacing; v_pixelspacing.push_back( f->GetXSpacing() ); v_pixelspacing.push_back( f->GetYSpacing() ); @@ -159,10 +170,10 @@ void GetXCoherentInfoGdcmReader::Process() int iTag,sizeDicomTagsVector=bbGetInputDicomTags().size(); GDCM_NAME_SPACE::FileList::const_iterator iitt = l->begin(); //iitt ++; + for ( ; iitt != l->end(); ++iitt) { MapInfoDicom mapinfodicom; - for (iTag=0; iTagDelete(); - reader=NULL; - } - reader = vtkGdcmReader::New(); - - //EED 21 mars 2012 FLIP probleme ..PLOP.. - reader->SetFlipY(false); - - - //reader->SetFileName( bbGetInputIn().c_str() ); - reader->SetCoherentFileList(l); - reader->Update(); - bbSetOutputOut( reader->GetOutput() ); + if (bbGetInputReadRaw()==true) + { + if (reader!=NULL) + { + reader->Delete(); + reader = NULL; + } + reader = vtkGdcmReader::New(); + //EED 21 mars 2012 FLIP probleme ..PLOP.. + reader->SetFlipY(false); + //reader->SetFileName( bbGetInputIn().c_str() ); + reader->SetCoherentFileList(l); + reader->Update(); + reader->GetOutput(); + bbSetOutputOut( reader->GetOutput() ); + } // if bGetInputReadRaw } #endif // endif USE_GDCM @@ -204,7 +216,6 @@ void GetXCoherentInfoGdcmReader::Process() // Read the *first* image file (a SET of file names is given as input) gdcm::Reader *read = new gdcm::Reader(); reader->SetFileName( bbGetInputIn()[0].c_str() ); - bool res = read->Read(); if ( !res ) { @@ -213,8 +224,6 @@ void GetXCoherentInfoGdcmReader::Process() return; } - - // Get info from the first image file const gdcm::File &f = read->GetFile(); int i; @@ -225,16 +234,20 @@ void GetXCoherentInfoGdcmReader::Process() gdcm::Element iop; iop.Read( ss ); for(i=0; i< 6; i++) - v_iop.push_back((float)(iop[i])); + { + v_iop.push_back((float)(iop[i])); + } bbSetOutputIOP(v_iop ); - std::vector v_ipp; + std::vector v_ipp; const gdcm::DataElement &deIpp = f.GetDataSet().GetDataElement(gdcm::Tag((0x0020,0x0032))); deIpp.GetValue().Print(ss); gdcm::Element ipp; ipp.Read( ss ); - for(i=0; i< 3; i++) + for(i=0; i< 3; i++) + { v_ipp.push_back((float)(ipp[i])); + } // for 3 bbSetOutputIPP(v_ipp ); // Add *all the files* to the IPPsorter @@ -279,9 +292,11 @@ void GetXCoherentInfoGdcmReader::Process() void GetXCoherentInfoGdcmReader::bbUserSetDefaultValues() { + reader=NULL; std::vector init; init.push_back(""); bbSetInputIn(init); + bbSetInputReadRaw(true); //reader=NULL; /// \TODO fixme JPR } @@ -294,11 +309,17 @@ void GetXCoherentInfoGdcmReader::bbUserInitializeProcessing() void GetXCoherentInfoGdcmReader::bbUserFinalizeProcessing() { if(reader) + { reader->Delete(); + } // if reader if(f) + { f->Delete(); + } // if f if(sh) + { sh->Delete(); + } // if sh } #endif @@ -306,7 +327,9 @@ void GetXCoherentInfoGdcmReader::bbUserFinalizeProcessing() void GetXCoherentInfoGdcmReader::bbUserFinalizeProcessing() { if(reader) + { reader->Delete(); + } } #endif