X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=filters%2FclitkSplitImageGenericFilter.cxx;h=4fd6eac9e0de58fb4d879f729767180a2e52f25e;hb=8abe9edbdc63a33f8fbb1f321073b762e08be9aa;hp=e887b04e566da052bbfc4f705712b13d6821c4e8;hpb=1d93f10f32528c9ef0002c051c2140f8485b39fb;p=clitk.git diff --git a/filters/clitkSplitImageGenericFilter.cxx b/filters/clitkSplitImageGenericFilter.cxx index e887b04..4fd6eac 100644 --- a/filters/clitkSplitImageGenericFilter.cxx +++ b/filters/clitkSplitImageGenericFilter.cxx @@ -1,7 +1,7 @@ /*========================================================================= Program: vv http://www.creatis.insa-lyon.fr/rio/vv - Authors belong to: + Authors belong to: - University of LYON http://www.universite-lyon.fr/ - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr @@ -21,15 +21,16 @@ * @author Joël Schaerer * @date 20 April 2009 - * @brief + * @brief -------------------------------------------------------------------*/ #include "clitkSplitImageGenericFilter.h" - #include "clitkSplitImageGenericFilter.txx" +#include //-------------------------------------------------------------------- clitk::SplitImageGenericFilter::SplitImageGenericFilter(): - clitk::ImageToImageGenericFilter("SplitImage") { + clitk::ImageToImageGenericFilter("SplitImage") +{ mSplitDimension = 0; InitializeImageType<3>(); InitializeImageType<4>(); @@ -39,15 +40,17 @@ clitk::SplitImageGenericFilter::SplitImageGenericFilter(): //-------------------------------------------------------------------- template -void clitk::SplitImageGenericFilter::InitializeImageType() { +void clitk::SplitImageGenericFilter::InitializeImageType() +{ ADD_DEFAULT_IMAGE_TYPES(Dim); - ADD_VEC_IMAGE_TYPE(Dim, 3,float); + //ADD_VEC_IMAGE_TYPE(Dim, 3,float); } //-------------------------------------------------------------------- //-------------------------------------------------------------------- template -void clitk::SplitImageGenericFilter::UpdateWithInputImageType() { +void clitk::SplitImageGenericFilter::UpdateWithInputImageType() +{ // Read input typedef typename ImageType::PixelType PixelType; @@ -67,17 +70,26 @@ void clitk::SplitImageGenericFilter::UpdateWithInputImageType() { typename ImageType::IndexType index=input->GetLargestPossibleRegion().GetIndex(); std::string base_filename=GetOutputFilename(); unsigned int number_of_output_images=input->GetLargestPossibleRegion().GetSize()[mSplitDimension]; - for (unsigned int i=0;iSetExtractionRegion(extracted_region); - filter->Update(); + for (unsigned int i=0; iSetExtractionRegion(extracted_region); + filter->Update(); + if(this->m_Png){ + typedef itk::Image< unsigned char, ImageType::ImageDimension-1 > OutputPngImageType; + typedef itk::IntensityWindowingImageFilter< OutputImageType, OutputPngImageType > CastFilterType; + typename CastFilterType::Pointer cast = CastFilterType::New(); + cast->SetWindowLevel(this->m_Window, this->m_Level); + cast->SetInput(filter->GetOutput()); + SetOutputFilename(base_filename+"_"+ss.str()+".png"); + SetNextOutput(cast->GetOutput()); + } + else { SetOutputFilename(base_filename+"_"+ss.str()+".mhd"); - typename OutputImageType::Pointer output=filter->GetOutput(); - SetNextOutput(output); + SetNextOutput(filter->GetOutput()); + } } } //--------------------------------------------------------------------