X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=filters%2FclitkSplitImageGenericFilter.cxx;h=433fb93e69ca5258090e0d0e92eecec56d97f783;hb=3451be2e38ff6603113fb95f7498e127707de370;hp=97480583d0b10283c98208481c4cf1a2024fe3fe;hpb=765812e759961864395b26386b7845b2ed818898;p=clitk.git diff --git a/filters/clitkSplitImageGenericFilter.cxx b/filters/clitkSplitImageGenericFilter.cxx index 9748058..433fb93 100644 --- a/filters/clitkSplitImageGenericFilter.cxx +++ b/filters/clitkSplitImageGenericFilter.cxx @@ -1,30 +1,36 @@ /*========================================================================= + Program: vv http://www.creatis.insa-lyon.fr/rio/vv - Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de - l'Image). All rights reserved. See Doc/License.txt or - http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details. - - This software is distributed WITHOUT ANY WARRANTY; without even - the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. See the above copyright notices for more information. - -=========================================================================*/ + 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 + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the copyright notices for more information. + + It is distributed under dual licence + + - BSD See included LICENSE.txt file + - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +======================================================================-====*/ /** ------------------------------------------------------------------- * @file clitkSplitImageGenericFilter.cxx * @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>(); @@ -34,20 +40,17 @@ clitk::SplitImageGenericFilter::SplitImageGenericFilter(): //-------------------------------------------------------------------- template -void clitk::SplitImageGenericFilter::InitializeImageType() { - ADD_IMAGE_TYPE(Dim, char); - ADD_IMAGE_TYPE(Dim, unsigned char); - ADD_IMAGE_TYPE(Dim, short); - ADD_IMAGE_TYPE(Dim, int); - ADD_IMAGE_TYPE(Dim, float); - typedef itk::Vector DVF; - ADD_IMAGE_TYPE(Dim, DVF); +void clitk::SplitImageGenericFilter::InitializeImageType() +{ + ADD_DEFAULT_IMAGE_TYPES(Dim); + //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()); + } } } //--------------------------------------------------------------------