X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=tools%2FclitkCropImageGenericFilter.h;h=fef610340a03dc7a5fe5985816bd48816f88ffd0;hb=543b72e23ad001ac2a7743b9beacf48e2d0054ac;hp=5347b0bab499b11886bfdb1a78fb9604fd706211;hpb=a26cd8a19e1b9ad8344ab501436045f171a73713;p=clitk.git diff --git a/tools/clitkCropImageGenericFilter.h b/tools/clitkCropImageGenericFilter.h old mode 100755 new mode 100644 index 5347b0b..fef6103 --- a/tools/clitkCropImageGenericFilter.h +++ b/tools/clitkCropImageGenericFilter.h @@ -1,9 +1,9 @@ /*========================================================================= 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 + - Léon Bérard cancer center http://www.centreleonberard.fr - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr This software is distributed WITHOUT ANY WARRANTY; without even @@ -14,103 +14,69 @@ - BSD See included LICENSE.txt file - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html -======================================================================-====*/ -#ifndef clitkCropImageGenericFilter_h -#define clitkCropImageGenericFilter_h +===========================================================================**/ -/* ================================================= - * @file clitkCropImageGenericFilter.h - * @author - * @date - * - * @brief - * - ===================================================*/ +#ifndef CLITKCROPIMAGEGENERICFILTER_H +#define CLITKCROPIMAGEGENERICFILTER_H - -// clitk include +// clitk #include "clitkIO.h" -#include "clitkCommon.h" -#include "clitkImageCommon.h" +#include "clitkImageToImageGenericFilter.h" +#include "clitkCropLikeImageFilter.h" +#include "clitkAutoCropFilter.h" #include "clitkCropImage_ggo.h" -//itk include -#include "itkLightObject.h" -#include "itkCropImageFilter.h" +// itk +#include -namespace clitk +//-------------------------------------------------------------------- +namespace clitk { - - class ITK_EXPORT CropImageGenericFilter : public itk::LightObject + class ITK_EXPORT CropImageGenericFilter: + public ImageToImageGenericFilter { public: - //---------------------------------------- - // ITK - //---------------------------------------- - typedef CropImageGenericFilter Self; - typedef itk::LightObject Superclass; - typedef itk::SmartPointer Pointer; - typedef itk::SmartPointer ConstPointer; - - // Method for creation through the object factory - itkNewMacro(Self); - - // Run-time type information (and related methods) - itkTypeMacro( CropImageGenericFilter, LightObject ); - - - //---------------------------------------- - // Typedefs - //---------------------------------------- - - - //---------------------------------------- - // Set & Get - //---------------------------------------- - void SetArgsInfo(const args_info_clitkCropImage & a) - { - m_ArgsInfo=a; - m_Verbose=m_ArgsInfo.verbose_flag; - m_InputFileName=m_ArgsInfo.input_arg; - } - - - //---------------------------------------- - // Update - //---------------------------------------- - void Update(); - - protected: - - //---------------------------------------- - // Constructor & Destructor - //---------------------------------------- + //-------------------------------------------------------------------- CropImageGenericFilter(); - ~CropImageGenericFilter() {}; - - - //---------------------------------------- - // Templated members - //---------------------------------------- - template void UpdateWithDim(std::string PixelType, unsigned int Components); - template void UpdateWithDimAndPixelType(); + //-------------------------------------------------------------------- + typedef CropImageGenericFilter Self; + typedef ImageToImageGenericFilter Superclass; + typedef itk::SmartPointer Pointer; + typedef itk::SmartPointer ConstPointer; + typedef args_info_clitkCropImage args_info_type; - //---------------------------------------- - // Data members - //---------------------------------------- - args_info_clitkCropImage m_ArgsInfo; - bool m_Verbose; - std::string m_InputFileName; + //-------------------------------------------------------------------- + itkNewMacro(Self); + itkTypeMacro( CropImageGenericFilter, LightObject ); - }; + //-------------------------------------------------------------------- + void SetArgsInfo(const args_info_type& a); + //-------------------------------------------------------------------- + // Main function called each time the filter is updated + template + void UpdateWithInputImageType(); + protected: + template + class AutoCrop + { + public: + typedef typename ImageType::Pointer ImagePointer; + ImagePointer Do(args_info_type &, ImagePointer); + private: + template struct PixelDimType {}; + template ImagePointer Do(args_info_type &,ImagePointer, PixelDimType *); + ImagePointer Do(args_info_type &, ImagePointer, PixelDimType<1> *); + }; + + template void InitializeImageType(); + args_info_type mArgsInfo; + + };// end class + //-------------------------------------------------------------------- } // end namespace clitk -#ifndef ITK_MANUAL_INSTANTIATION -#include "clitkCropImageGenericFilter.txx" -#endif - -#endif // #define clitkCropImageGenericFilter_h +#endif // #define CLITKCROPIMAGEGENERICFILTER_H