X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fvtk%2Fsrc%2FbbvtkMetaImageWriter.cxx;h=6474b0adf745e0f96f58bb6c56ab3a8238940d58;hb=edb8e9b8948e7216e06b3ef5228b16f18417ca52;hp=7478b1da0fd48a1fc6659d127ac0696c43aad320;hpb=ebc770e3c035927e1b6f2d78f85b31ce7242f69b;p=bbtk.git diff --git a/packages/vtk/src/bbvtkMetaImageWriter.cxx b/packages/vtk/src/bbvtkMetaImageWriter.cxx index 7478b1d..6474b0a 100644 --- a/packages/vtk/src/bbvtkMetaImageWriter.cxx +++ b/packages/vtk/src/bbvtkMetaImageWriter.cxx @@ -7,6 +7,14 @@ #include #include +#include "vtkJSONImageWriter.h" +#include "vtkXMLImageDataWriter.h" +#include "vtkXMLDataSetWriter.h" +#include "vtkDataSetWriter.h" +#include "vtkPDataSetWriter.h" +#include "vtkXMLWriter.h" +#include + namespace bbvtk { @@ -23,25 +31,26 @@ void MetaImageWriter::Save_mhdb( std::string filename , vtkImageData* img ,int int elementType=img->GetScalarType(); img->GetExtent(ext); - dim[0]=ext[1]-ext[0]+1; - dim[1]=ext[3]-ext[2]+1; - dim[2]=ext[5]-ext[4]+1; - int bsx=ceil((double)dim[0]/(double)sizeB); - int bsy=ceil((double)dim[1]/(double)sizeB); - int bsz=ceil((double)dim[2]/(double)sizeB); + dim[0] = ext[1]-ext[0]+1; + dim[1] = ext[3]-ext[2]+1; + dim[2] = ext[5]-ext[4]+1; + int bsx = ceil((double)dim[0]/(double)sizeB); + int bsy = ceil((double)dim[1]/(double)sizeB); + int bsz = ceil((double)dim[2]/(double)sizeB); int voi[6]; std::string filenameBlock; + std::string filenameBlockVti; if (filename.substr(filename.size()-5) == ".mhdb") { std::string cmd; - cmd="rm -rf "+filename; +// cmd="rm -rf "+filename; system( cmd.c_str() ); cmd="mkdir "+filename; system( cmd.c_str() ); } std::string fileinfoname=filename+"/info.dat"; - FILE *ff=fopen(fileinfoname.c_str(),"r"); + FILE *ff=fopen(fileinfoname.c_str(),"w"); fprintf(ff,"SizeBlock = %d\n",sizeB); fprintf(ff,"DimSize = %d %d %d\n" , dim[0],dim[1],dim[2] ); fprintf(ff,"ElementType = %d\n", elementType ); @@ -53,12 +62,12 @@ void MetaImageWriter::Save_mhdb( std::string filename , vtkImageData* img ,int { for (k=0;k=dim[0]) { voi[1]=dim[0]-1; } if (voi[3]>=dim[1]) { voi[3]=dim[1]-1; } if (voi[5]>=dim[2]) { voi[5]=dim[2]-1; } @@ -68,14 +77,26 @@ void MetaImageWriter::Save_mhdb( std::string filename , vtkImageData* img ,int extract->UpdateWholeExtent(); extract->Modified(); extract->Update(); + filenameBlock =filename+"/mhdb-"+ std::to_string(i)+"-"+ std::to_string(j)+"-"+ std::to_string(k)+".mha"; vtkMetaImageWriter* w = vtkMetaImageWriter::New(); w->SetInputData( extract->GetOutput() ); w->SetCompression(true); w->SetFileDimensionality(bbGetInputIn()->GetDataDimension()); // NTU - filenameBlock=filename+"/mhdb-"+ std::to_string(i)+"-"+ std::to_string(j)+"-"+ std::to_string(k)+".mhd"; w->SetFileName( filenameBlock.c_str() ); w->Write(); w->Delete(); + +/* Borrame + filenameBlockVti=filenameBlock+"-ZLib.vti"; + vtkXMLImageDataWriter *writer = vtkXMLImageDataWriter::New(); + writer->SetDataModeToBinary(); +// writer->SetCompressionLevel(5); + writer->SetCompressorTypeToZLib(); + writer->SetFileName( filenameBlockVti.c_str() ); + writer->SetInputData( bbGetInputIn() ); + writer->Write(); +*/ + extract->Delete(); } // for k } // for j @@ -89,9 +110,6 @@ void MetaImageWriter::Save_mhdb( std::string filename , vtkImageData* img ,int //===== void MetaImageWriter::Process() { - -printf("EED vtkMetaImageWriter::Process START\n"); - // THE MAIN PROCESSING METHOD BODY // Here we simply set the input 'In' value to the output 'Out' // And print out the output value @@ -117,10 +135,10 @@ printf("EED vtkMetaImageWriter::Process START\n"); { Save_mhdb( userGivenName , bbGetInputIn() , bbGetInputSizeBlock() ); } else { - if (userGivenName.substr(userGivenName.size()-4) != ".mhd") //JPR + if (!((userGivenName.substr(userGivenName.size()-4) == ".mhd") || (userGivenName.substr(userGivenName.size()-4) == ".mha"))) //JPR { userGivenName += ".mhd"; - } + } vtkMetaImageWriter* w = vtkMetaImageWriter::New(); //EED 2017-01-01 Migration VTK7 #if VTK_MAJOR_VERSION <= 5 @@ -136,8 +154,8 @@ printf("EED vtkMetaImageWriter::Process START\n"); w->Delete(); } // .mhdb } // bbGetInputIn()!=NULL -printf("EED vtkMetaImageWriter::Process END\n"); } + //===== // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) //===== @@ -149,32 +167,29 @@ void MetaImageWriter::bbUserSetDefaultValues() bbSetInputCompression(false); bbSetInputSizeBlock(20); } + //===== // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) //===== void MetaImageWriter::bbUserInitializeProcessing() { - // THE INITIALIZATION METHOD BODY : // Here does nothing // but this is where you should allocate the internal/output pointers -// if any - - +// if any } + //===== // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) //===== void MetaImageWriter::bbUserFinalizeProcessing() { - // THE FINALIZATION METHOD BODY : // Here does nothing // but this is where you should desallocate the internal/output pointers // if any - -} } -// EO namespace bbvtk + +} // EO namespace bbvtk