From: dsarrut Date: Thu, 5 May 2011 06:28:32 +0000 (+0200) Subject: remove duplicated file X-Git-Tag: v1.2.1~4^2~9 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=9427090c47a46eaa2c0a6ef876a4b0af404abfce;p=clitk.git remove duplicated file --- diff --git a/segmentation/clitkDecomposeAndReconstructImageFilter.h b/segmentation/clitkDecomposeAndReconstructImageFilter.h deleted file mode 100644 index 3cc9ee0..0000000 --- a/segmentation/clitkDecomposeAndReconstructImageFilter.h +++ /dev/null @@ -1,164 +0,0 @@ -/*========================================================================= - Program: vv http://www.creatis.insa-lyon.fr/rio/vv - - Authors belong to: - - University of LYON http://www.universite-lyon.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 - 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 -===========================================================================**/ -#ifndef clitkDecomposeAndReconstructImageFilter_h -#define clitkDecomposeAndReconstructImageFilter_h - -/* ================================================= - * @file clitkDecomposeAndReconstructImageFilter.h - * @author - * @date - * - * @brief - * - ===================================================*/ - - -// clitk include -#include "clitkIO.h" -#include "clitkCommon.h" -#include "clitkDecomposeThroughErosionImageFilter.h" -#include "clitkReconstructThroughDilationImageFilter.h" - -//itk include -#include "itkImageToImageFilter.h" -#include "itkRelabelComponentImageFilter.h" - - -namespace clitk -{ - - template - class ITK_EXPORT DecomposeAndReconstructImageFilter : - public itk::ImageToImageFilter - { - public: - //---------------------------------------- - // ITK - //---------------------------------------- - typedef DecomposeAndReconstructImageFilter Self; - typedef itk::ImageToImageFilter 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( DecomposeAndReconstructImageFilter, ImageToImageFilter ); - - /** Dimension of the domain space. */ - itkStaticConstMacro(InputImageDimension, unsigned int, Superclass::InputImageDimension); - itkStaticConstMacro(OutputImageDimension, unsigned int, Superclass::OutputImageDimension); - - //---------------------------------------- - // Typedefs - //---------------------------------------- - typedef typename OutputImageType::RegionType OutputImageRegionType; - typedef int InternalPixelType; - typedef typename InputImageType::PixelType InputPixelType; - typedef typename OutputImageType::PixelType OutputPixelType; - typedef typename InputImageType::SizeType SizeType; - - - //---------------------------------------- - // Set & Get - //---------------------------------------- - itkBooleanMacro(Verbose); - itkSetMacro( Verbose, bool); - itkGetConstReferenceMacro( Verbose, bool); - itkBooleanMacro(FullyConnected); - itkSetMacro( FullyConnected, bool); - itkGetConstReferenceMacro( FullyConnected, bool); - void SetRadius ( const SizeType& s){ m_Radius=s; this->Modified();} - SizeType GetRadius(void){return m_Radius;} - itkSetMacro( MaximumNumberOfLabels, unsigned int); - itkGetConstMacro( MaximumNumberOfLabels, unsigned int); - itkSetMacro( BackgroundValue, InternalPixelType); - itkGetConstMacro( BackgroundValue, InternalPixelType); - itkSetMacro( ForegroundValue, InternalPixelType); - itkGetConstMacro( ForegroundValue, InternalPixelType); - itkSetMacro( NumberOfNewLabels, unsigned int); - itkGetConstMacro( NumberOfNewLabels, unsigned int); - itkSetMacro( MinimumObjectSize, unsigned int); - itkGetConstMacro( MinimumObjectSize, unsigned int); - itkSetMacro( MinimumNumberOfIterations, unsigned int); - itkGetConstMacro( MinimumNumberOfIterations, unsigned int); - // // Convenience macro's: Built-in - // itkBooleanMacro (flag); //FlagOn FlagOff - // itkGetMacro(name, type); - // itkSetMacro(name, type); - // itkSetConstMacro( name, type); - // itkGetConstMacro( name, type); - // itkSetConstReferenceMacro(name, type); - // itkGetConstReferenceMacro(name, type); - // // Convenience macro's: Smartpointers - // itkSetObjectMacro(name, type); - // itkGetObjectMacro(name, type); - // itkSetConstObjectMacro(name, type); - // itkGetConstObjectMacro(name, type); - // itkSetConstReferenceObjectMacro(name, type); - // itkSetConstReference(name, type); - - - protected: - - //---------------------------------------- - // Constructor & Destructor - //---------------------------------------- - DecomposeAndReconstructImageFilter(); - ~DecomposeAndReconstructImageFilter() {}; - - //---------------------------------------- - // Update - //---------------------------------------- - // Generate Data - void GenerateData(void); - - // // Threaded Generate Data - // void BeforeThreadedGenerateData(void ); - // void ThreadedGenerateData(const OutputImageRegionType & outputRegionForThread, int threadId ); - // void AfterThreadedGenerateData(void ); - // // Override defaults - // virtual void GenerateInputRequestedRegion(); - // virtual void GenerateOutputInformation (void); - // virtual void EnlargeOutputRequestedRegion(DataObject *data); - void AllocateOutputs(){;} - //---------------------------------------- - // Data members - //---------------------------------------- - bool m_Verbose; - SizeType m_Radius; - unsigned int m_NumberOfNewLabels; - bool m_FullyConnected; - InputPixelType m_BackgroundValue; - InputPixelType m_ForegroundValue; - unsigned int m_MaximumNumberOfLabels; - unsigned int m_MinimumObjectSize; - unsigned int m_MinimumNumberOfIterations; - }; - - -} // end namespace clitk - -#ifndef ITK_MANUAL_INSTANTIATION -#include "clitkDecomposeAndReconstructImageFilter.txx" -#endif - -#endif // #define clitkDecomposeAndReconstructImageFilter_h - - diff --git a/segmentation/clitkDecomposeAndReconstructImageFilter.txx b/segmentation/clitkDecomposeAndReconstructImageFilter.txx deleted file mode 100644 index f21b56d..0000000 --- a/segmentation/clitkDecomposeAndReconstructImageFilter.txx +++ /dev/null @@ -1,88 +0,0 @@ -/*========================================================================= - Program: vv http://www.creatis.insa-lyon.fr/rio/vv - - Authors belong to: - - University of LYON http://www.universite-lyon.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 - 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 -===========================================================================**/ -#ifndef clitkDecomposeAndReconstructImageFilter_txx -#define clitkDecomposeAndReconstructImageFilter_txx - -namespace clitk -{ - - //------------------------------------------------------------------- - // Update with the number of dimensions - //------------------------------------------------------------------- - template - DecomposeAndReconstructImageFilter::DecomposeAndReconstructImageFilter() - { - m_Verbose=false; - for (unsigned int i=0; i - void - DecomposeAndReconstructImageFilter::GenerateData() - { - - - // Internal type - typedef itk::Image InternalImageType; - - // Filters used - typedef clitk::DecomposeThroughErosionImageFilter DecomposeThroughErosionImageFilterType; - typedef clitk::ReconstructThroughDilationImageFilter ReconstructThroughDilationImageFilterType; - - // Erode - typename DecomposeThroughErosionImageFilterType::Pointer erosionFilter=DecomposeThroughErosionImageFilterType::New(); - erosionFilter->SetInput(this->GetInput()); - erosionFilter->SetVerbose(m_Verbose); - erosionFilter->SetFullyConnected(m_FullyConnected); - erosionFilter->SetRadius(m_Radius); - erosionFilter->SetNumberOfNewLabels(m_NumberOfNewLabels); - erosionFilter->SetMinimumObjectSize(m_MinimumObjectSize); - erosionFilter->SetMinimumNumberOfIterations(m_MinimumNumberOfIterations); - erosionFilter->Update(); - - // Reconstruct - typename ReconstructThroughDilationImageFilterType::Pointer reconstructionFilter =ReconstructThroughDilationImageFilterType::New(); - reconstructionFilter->SetInput(erosionFilter->GetOutput()); - reconstructionFilter->SetVerbose(m_Verbose); - reconstructionFilter->SetRadius(m_Radius); - reconstructionFilter->SetMaximumNumberOfLabels(m_MaximumNumberOfLabels); - reconstructionFilter->SetBackgroundValue(m_BackgroundValue); - reconstructionFilter->SetForegroundValue(m_ForegroundValue); - reconstructionFilter->Update(); - - // Output - this->SetNthOutput(0,reconstructionFilter->GetOutput()); - } - - -}//end clitk - -#endif //#define clitkDecomposeAndReconstructImageFilter_txx diff --git a/segmentation/clitkDecomposeThroughErosionImageFilter.h b/segmentation/clitkDecomposeThroughErosionImageFilter.h deleted file mode 100644 index 032a6c2..0000000 --- a/segmentation/clitkDecomposeThroughErosionImageFilter.h +++ /dev/null @@ -1,159 +0,0 @@ -/*========================================================================= - Program: vv http://www.creatis.insa-lyon.fr/rio/vv - - Authors belong to: - - University of LYON http://www.universite-lyon.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 - 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 -===========================================================================**/ -#ifndef clitkDecomposeThroughErosionImageFilter_h -#define clitkDecomposeThroughErosionImageFilter_h - -/* ================================================= - * @file clitkDecomposeThroughErosionImageFilter.h - * @author - * @date - * - * @brief - * - ===================================================*/ - - -// clitk include -#include "clitkIO.h" -#include "clitkCommon.h" -#include "clitkSetBackgroundImageFilter.h" - -//itk include -#include "itkImageToImageFilter.h" -#include "itkBinaryThresholdImageFilter.h" -#include "itkBinaryErodeImageFilter.h" -#include "itkStatisticsImageFilter.h" -#include "itkConnectedComponentImageFilter.h" -#include "itkCastImageFilter.h" -#include "itkBinaryBallStructuringElement.h" -#include "itkRelabelComponentImageFilter.h" - -namespace clitk -{ - - template - class ITK_EXPORT DecomposeThroughErosionImageFilter : - public itk::ImageToImageFilter - { - public: - //---------------------------------------- - // ITK - //---------------------------------------- - typedef DecomposeThroughErosionImageFilter Self; - typedef itk::ImageToImageFilter 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( DecomposeThroughErosionImageFilter, ImageToImageFilter ); - - /** Dimension of the domain space. */ - itkStaticConstMacro(InputImageDimension, unsigned int, Superclass::InputImageDimension); - itkStaticConstMacro(OutputImageDimension, unsigned int, Superclass::OutputImageDimension); - - //---------------------------------------- - // Typedefs - //---------------------------------------- - typedef typename OutputImageType::RegionType OutputImageRegionType; - typedef int InternalPixelType; - typedef typename InputImageType::PixelType InputPixelType; - typedef typename OutputImageType::PixelType OutputPixelType; - typedef typename InputImageType::SizeType SizeType; - - //---------------------------------------- - // Set & Get - //---------------------------------------- - itkBooleanMacro(Verbose); - itkSetMacro( Verbose, bool); - itkGetConstReferenceMacro( Verbose, bool); - itkBooleanMacro(FullyConnected); - itkSetMacro( FullyConnected, bool); - itkGetConstReferenceMacro( FullyConnected, bool); - itkSetMacro( Lower, InputPixelType); - itkGetConstMacro( Lower, InputPixelType); - itkSetMacro( Upper, InputPixelType); - itkGetConstMacro( Upper, InputPixelType); - itkSetMacro( Inside, InternalPixelType); - itkGetConstMacro( Inside, InternalPixelType); - itkSetMacro( Outside, InternalPixelType); - itkGetConstMacro( Outside, InternalPixelType); - itkSetMacro( ErosionPaddingValue, OutputPixelType); - itkGetConstMacro( ErosionPaddingValue, OutputPixelType); - void SetRadius ( const SizeType& s){ m_Radius=s; this->Modified();} - SizeType GetRadius(void){return m_Radius;} - itkSetMacro( NumberOfNewLabels, unsigned int); - itkGetConstMacro( NumberOfNewLabels, unsigned int); - itkSetMacro( MinimumObjectSize, unsigned int); - itkGetConstMacro( MinimumObjectSize, unsigned int); - itkSetMacro( MinimumNumberOfIterations, unsigned int); - itkGetConstMacro( MinimumNumberOfIterations, unsigned int); - - protected: - - //---------------------------------------- - // Constructor & Destructor - //---------------------------------------- - DecomposeThroughErosionImageFilter(); - ~DecomposeThroughErosionImageFilter() {}; - - //---------------------------------------- - // Update - //---------------------------------------- - // Generate Data - void GenerateData(void); - void AllocateOutput(){;} - - // // Threaded Generate Data - // void BeforeThreadedGenerateData(void ); - // void ThreadedGenerateData(const OutputImageRegionType & outputRegionForThread, int threadId ); - // void AfterThreadedGenerateData(void ); - // // Override defaults - // virtual void GenerateInputRequestedRegion(); - // virtual void GenerateOutputInformation (void); - // virtual void EnlargeOutputRequestedRegion(DataObject *data); - // void AllocateOutputs(); - //---------------------------------------- - // Data members - //---------------------------------------- - bool m_Verbose; - bool m_FullyConnected; - InputPixelType m_Lower; - InputPixelType m_Upper; - OutputPixelType m_ErosionPaddingValue; - InputPixelType m_Inside; - InputPixelType m_Outside; - SizeType m_Radius; - unsigned int m_NumberOfNewLabels; - unsigned int m_MinimumObjectSize; - unsigned int m_MinimumNumberOfIterations; - - }; - - -} // end namespace clitk - -#ifndef ITK_MANUAL_INSTANTIATION -#include "clitkDecomposeThroughErosionImageFilter.txx" -#endif - -#endif // #define clitkDecomposeThroughErosionImageFilter_h - - diff --git a/segmentation/clitkDecomposeThroughErosionImageFilter.txx b/segmentation/clitkDecomposeThroughErosionImageFilter.txx deleted file mode 100644 index 6a7ffbc..0000000 --- a/segmentation/clitkDecomposeThroughErosionImageFilter.txx +++ /dev/null @@ -1,250 +0,0 @@ -/*========================================================================= - Program: vv http://www.creatis.insa-lyon.fr/rio/vv - - Authors belong to: - - University of LYON http://www.universite-lyon.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 - 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 -===========================================================================**/ -#ifndef clitkDecomposeThroughErosionImageFilter_txx -#define clitkDecomposeThroughErosionImageFilter_txx - -/* ================================================= - * @file clitkDecomposeThroughErosionImageFilter.txx - * @author - * @date - * - * @brief - * - ===================================================*/ - - -namespace clitk -{ - - //------------------------------------------------------------------- - // Update with the number of dimensions - //------------------------------------------------------------------- - template - DecomposeThroughErosionImageFilter::DecomposeThroughErosionImageFilter() - { - m_Verbose=false; - m_Lower =1; - m_Upper=1; - m_Inside=1; - m_Outside=0; - m_ErosionPaddingValue=static_cast(-1); - for (unsigned int i=0; i - void - DecomposeThroughErosionImageFilter::GenerateData() - { - - //--------------------------------- - // Typedefs - //--------------------------------- - - // Internal type - typedef itk::Image InternalImageType; - - // Filters used - typedef itk::BinaryThresholdImageFilter InputBinaryThresholdImageFilter; - typedef itk::BinaryBallStructuringElement KernelType; - typedef itk::BinaryErodeImageFilter BinaryErodeImageFilterType; - typedef itk::BinaryThresholdImageFilter BinaryThresholdImageFilterType; - typedef itk::StatisticsImageFilter StatisticsImageFilterType; - typedef itk::ConnectedComponentImageFilter ConnectFilterType; - typedef itk::RelabelComponentImageFilter RelabelImageFilterType; - typedef clitk::SetBackgroundImageFilter SetBackgroundImageFilterType; - - //--------------------------------- - // Binarize input - //--------------------------------- - typename InputBinaryThresholdImageFilter::Pointer inputBinarizer=InputBinaryThresholdImageFilter::New(); - inputBinarizer->SetInput(this->GetInput()); - inputBinarizer->SetLowerThreshold(m_Lower); - inputBinarizer->SetUpperThreshold(m_Upper); - inputBinarizer ->SetInsideValue(m_Inside); - inputBinarizer ->SetOutsideValue(m_Outside); - if(m_Verbose) std::cout<<"Binarizing the input..."<Update(); - - //--------------------------------- - // Label the input - //--------------------------------- - typename ConnectFilterType::Pointer inputConnectFilter=ConnectFilterType::New(); - inputConnectFilter->SetInput(inputBinarizer->GetOutput()); - inputConnectFilter->SetBackgroundValue(0); - inputConnectFilter->SetFullyConnected(m_FullyConnected); - if(m_Verbose) std::cout<<"Labelling the connected components..."<Update(); - - //--------------------------------- - // Count the initial labels - //--------------------------------- - typename StatisticsImageFilterType::Pointer inputStatisticsImageFilter=StatisticsImageFilterType::New(); - inputStatisticsImageFilter->SetInput(inputConnectFilter->GetOutput()); - if(m_Verbose) std::cout<<"Counting the initial labels..."<Update(); - unsigned int initialNumberOfLabels= inputStatisticsImageFilter->GetMaximum(); - if(m_Verbose) std::cout<<"The input contained "<GetOutput(); - typename InternalImageType::Pointer output=inputBinarizer->GetOutput(); - unsigned int iteration=0; - unsigned int max =initialNumberOfLabels; - - while ( (iteration < m_MinimumNumberOfIterations) || ( (max< initialNumberOfLabels + m_NumberOfNewLabels ) && (iteration<100 ) ) ) - { - - - if(m_Verbose) std::cout<<"Eroding image (iteration "<SetInput (current); - erosionFilter->SetForegroundValue (1); - erosionFilter->SetBackgroundValue (-1); - erosionFilter->SetBoundaryToForeground(false); - erosionFilter->SetKernel(structuringElement); - erosionFilter->Update(); - current=erosionFilter->GetOutput(); - - //--------------------------------- - // Binarize (remove -1) - //--------------------------------- - typename BinaryThresholdImageFilterType::Pointer binarizer=BinaryThresholdImageFilterType::New(); - binarizer->SetInput(erosionFilter->GetOutput()); - binarizer->SetLowerThreshold(1); - binarizer->SetUpperThreshold(1); - binarizer ->SetInsideValue(1); - binarizer ->SetOutsideValue(0); - if(m_Verbose) std::cout<<"Binarizing the eroded image..."<Update(); - - - //--------------------------------- - // ReLabel the connected components - //--------------------------------- - typename ConnectFilterType::Pointer connectFilter=ConnectFilterType::New(); - connectFilter->SetInput(binarizer->GetOutput()); - connectFilter->SetBackgroundValue(0); - connectFilter->SetFullyConnected(m_FullyConnected); - if(m_Verbose) std::cout<<"Labelling the connected components..."<Update(); - - //--------------------------------- - // Sort - //--------------------------------- - typename RelabelImageFilterType::Pointer relabelFilter=RelabelImageFilterType::New(); - relabelFilter->SetInput(connectFilter->GetOutput()); - relabelFilter->SetMinimumObjectSize(m_MinimumObjectSize); - //relabelFilter->Update(); - - - //--------------------------------- - // Count the labels - //--------------------------------- - typename StatisticsImageFilterType::Pointer statisticsImageFilter=StatisticsImageFilterType::New(); - statisticsImageFilter->SetInput(relabelFilter->GetOutput()); - statisticsImageFilter->Update(); - max= statisticsImageFilter->GetMaximum(); - if(m_Verbose) std::cout<<"Counted "<GetOutput(); - - // Next iteration - iteration++; - } - - - //--------------------------------- - // Binarize current (remove -1) - //--------------------------------- - typename BinaryThresholdImageFilterType::Pointer binarizer=BinaryThresholdImageFilterType::New(); - binarizer->SetInput(current); - binarizer->SetLowerThreshold(1); - binarizer->SetUpperThreshold(1); - binarizer ->SetInsideValue(1); - binarizer ->SetOutsideValue(0); - if(m_Verbose) std::cout<<"Binarizing the eroded image..."<Update(); - - //--------------------------------- - // ReLabel the connected components - //--------------------------------- - typename ConnectFilterType::Pointer connectFilter=ConnectFilterType::New(); - connectFilter->SetInput(binarizer->GetOutput()); - connectFilter->SetBackgroundValue(0); - connectFilter->SetFullyConnected(m_FullyConnected); - if(m_Verbose) std::cout<<"Labelling the connected components..."<Update(); - - //--------------------------------- - // Sort - //--------------------------------- - typename RelabelImageFilterType::Pointer relabelFilter=RelabelImageFilterType::New(); - relabelFilter->SetInput(connectFilter->GetOutput()); - //relabelFilter->SetMinimumObjectSize(m_MinimumObjectSize); // Preserve all intensities - //relabelFilter->Update(); - - //--------------------------------- - // Set -1 to padding value - //--------------------------------- - typename SetBackgroundImageFilterType::Pointer setBackgroundFilter =SetBackgroundImageFilterType::New(); - setBackgroundFilter->SetInput(relabelFilter->GetOutput()); - setBackgroundFilter->SetInput2(current); - setBackgroundFilter->SetMaskValue(-1); - setBackgroundFilter->SetOutsideValue(m_ErosionPaddingValue); - if(m_Verbose) std::cout<<"Setting the eroded region to "< CastImageFilterType; - typename CastImageFilterType::Pointer caster= CastImageFilterType::New(); - caster->SetInput(setBackgroundFilter->GetOutput()); - caster->Update(); - - //--------------------------------- - // SetOutput - //--------------------------------- - this->SetNthOutput(0, caster->GetOutput()); - } - - -}//end clitk - -#endif //#define clitkDecomposeThroughErosionImageFilter_txx diff --git a/segmentation/clitkExtractImageFilter.h b/segmentation/clitkExtractImageFilter.h deleted file mode 100644 index 0db736b..0000000 --- a/segmentation/clitkExtractImageFilter.h +++ /dev/null @@ -1,115 +0,0 @@ -/*========================================================================= - Program: vv http://www.creatis.insa-lyon.fr/rio/vv - - Authors belong to: - - University of LYON http://www.universite-lyon.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 - 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 -===========================================================================*/ - -#ifndef __clitkExtractImageFilter_h -#define __clitkExtractImageFilter_h - -#include "itkImageToImageFilter.h" -#include "itkSmartPointer.h" -#include "itkExtractImageFilterRegionCopier.h" - -namespace clitk -{ - -template -class ITK_EXPORT ExtractImageFilter: - public itk::ImageToImageFilter -{ -public: - /** Standard class typedefs. */ - typedef ExtractImageFilter Self; - typedef itk::ImageToImageFilter 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(ExtractImageFilter, ImageToImageFilter); - - /** Image type information. */ - typedef TInputImage InputImageType; - typedef TOutputImage OutputImageType; - - /** Typedef to describe the output and input image region types. */ - typedef typename TOutputImage::RegionType OutputImageRegionType; - typedef typename TInputImage::RegionType InputImageRegionType; - - /** Typedef to describe the type of pixel. */ - typedef typename TOutputImage::PixelType OutputImagePixelType; - typedef typename TInputImage::PixelType InputImagePixelType; - - /** Typedef to describe the output and input image index and size types. */ - typedef typename TOutputImage::IndexType OutputImageIndexType; - typedef typename TInputImage::IndexType InputImageIndexType; - typedef typename TOutputImage::SizeType OutputImageSizeType; - typedef typename TInputImage::SizeType InputImageSizeType; - - /** ImageDimension enumeration */ - itkStaticConstMacro(InputImageDimension, unsigned int, - TInputImage::ImageDimension); - itkStaticConstMacro(OutputImageDimension, unsigned int, - TOutputImage::ImageDimension); - - typedef itk::ImageToImageFilterDetail::ExtractImageFilterRegionCopier< - itkGetStaticConstMacro(InputImageDimension), - itkGetStaticConstMacro(OutputImageDimension)> ExtractImageFilterRegionCopierType; - - void SetExtractionRegion(InputImageRegionType extractRegion); - itkGetMacro(ExtractionRegion, InputImageRegionType); - -#ifdef ITK_USE_CONCEPT_CHECKING - /** Begin concept checking */ - itkConceptMacro(InputCovertibleToOutputCheck, - (itk::Concept::Convertible)); - /** End concept checking */ -#endif - -protected: - ExtractImageFilter(); - ~ExtractImageFilter() {}; - void PrintSelf(std::ostream& os, itk::Indent indent) const; - - - virtual void GenerateOutputInformation(); - - - virtual void CallCopyOutputRegionToInputRegion(InputImageRegionType &destRegion, - const OutputImageRegionType &srcRegion); - - - void ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread, - int threadId ); - InputImageRegionType m_ExtractionRegion; - OutputImageRegionType m_OutputImageRegion; - -private: - ExtractImageFilter(const Self&); //purposely not implemented - void operator=(const Self&); //purposely not implemented - -}; - - -} // end namespace itk - -#ifndef ITK_MANUAL_INSTANTIATION -#include "clitkExtractImageFilter.txx" -#endif - -#endif diff --git a/segmentation/clitkExtractImageFilter.txx b/segmentation/clitkExtractImageFilter.txx deleted file mode 100644 index ed7574f..0000000 --- a/segmentation/clitkExtractImageFilter.txx +++ /dev/null @@ -1,276 +0,0 @@ -/*========================================================================= - Program: vv http://www.creatis.insa-lyon.fr/rio/vv - - Authors belong to: - - University of LYON http://www.universite-lyon.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 - 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 -===========================================================================*/ - -#ifndef _clitkExtractImageFilter_txx -#define _clitkExtractImageFilter_txx - -#include "clitkExtractImageFilter.h" -#include "itkImageRegionIterator.h" -#include "itkImageRegionConstIterator.h" -#include "itkObjectFactory.h" -#include "itkExtractImageFilterRegionCopier.h" -#include "itkProgressReporter.h" - - -namespace clitk -{ - -/** - * - */ -template -ExtractImageFilter -::ExtractImageFilter() -{ -} - - -/** - * - */ -template -void -ExtractImageFilter -::PrintSelf(std::ostream& os, itk::Indent indent) const -{ - Superclass::PrintSelf(os,indent); - - os << indent << "ExtractionRegion: " << m_ExtractionRegion << std::endl; - os << indent << "OutputImageRegion: " << m_OutputImageRegion << std::endl; -} - - -template -void -ExtractImageFilter -::CallCopyOutputRegionToInputRegion(InputImageRegionType &destRegion, - const OutputImageRegionType &srcRegion) -{ - ExtractImageFilterRegionCopierType extractImageRegionCopier; - extractImageRegionCopier(destRegion, srcRegion, m_ExtractionRegion); -} - - -template -void -ExtractImageFilter -::SetExtractionRegion(InputImageRegionType extractRegion) -{ - m_ExtractionRegion = extractRegion; - - unsigned int nonzeroSizeCount = 0; - InputImageSizeType inputSize = extractRegion.GetSize(); - OutputImageSizeType outputSize; - OutputImageIndexType outputIndex; - - /** - * check to see if the number of non-zero entries in the extraction region - * matches the number of dimensions in the output image. - **/ - for (unsigned int i = 0; i < InputImageDimension; ++i) - { - if (inputSize[i]) - { - outputSize[nonzeroSizeCount] = inputSize[i]; - outputIndex[nonzeroSizeCount] = extractRegion.GetIndex()[i]; - nonzeroSizeCount++; - } - } - - if (nonzeroSizeCount != OutputImageDimension) - { - itkExceptionMacro("Extraction Region not consistent with output image"); - } - - m_OutputImageRegion.SetSize(outputSize); - m_OutputImageRegion.SetIndex(outputIndex); - this->Modified(); -} - - - -/** - * ExtractImageFilter can produce an image which is a different resolution - * than its input image. As such, ExtractImageFilter needs to provide an - * implementation for GenerateOutputInformation() in order to inform - * the pipeline execution model. The original documentation of this - * method is below. - * - * \sa ProcessObject::GenerateOutputInformaton() - */ -template -void -ExtractImageFilter -::GenerateOutputInformation() -{ - // do not call the superclass' implementation of this method since - // this filter allows the input and the output to be of different dimensions - - // get pointers to the input and output - typename Superclass::OutputImagePointer outputPtr = this->GetOutput(); - typename Superclass::InputImageConstPointer inputPtr = this->GetInput(); - - if ( !outputPtr || !inputPtr) - { - return; - } - - // Set the output image size to the same value as the extraction region. - outputPtr->SetLargestPossibleRegion( m_OutputImageRegion ); - - // Set the output spacing and origin - const itk::ImageBase *phyData; - - phyData - = dynamic_cast*>(this->GetInput()); - - if (phyData) - { - // Copy what we can from the image from spacing and origin of the input - // This logic needs to be augmented with logic that select which - // dimensions to copy - - unsigned int i; - const typename InputImageType::SpacingType& - inputSpacing = inputPtr->GetSpacing(); - const typename InputImageType::DirectionType& - inputDirection = inputPtr->GetDirection(); - const typename InputImageType::PointType& - inputOrigin = inputPtr->GetOrigin(); - - typename OutputImageType::SpacingType outputSpacing; - typename OutputImageType::DirectionType outputDirection; - typename OutputImageType::PointType outputOrigin; - - if ( static_cast(OutputImageDimension) > - static_cast(InputImageDimension ) ) - { - // copy the input to the output and fill the rest of the - // output with zeros. - for (i=0; i < InputImageDimension; ++i) - { - outputSpacing[i] = inputSpacing[i]; - outputOrigin[i] = inputOrigin[i]; - for (unsigned int dim = 0; dim < InputImageDimension; ++dim) - { - outputDirection[i][dim] = inputDirection[i][dim]; - } - } - for (; i < OutputImageDimension; ++i) - { - outputSpacing[i] = 1.0; - outputOrigin[i] = 0.0; - for (unsigned int dim = 0; dim < InputImageDimension; ++dim) - { - outputDirection[i][dim] = 0.0; - } - outputDirection[i][i] = 1.0; - } - } - else - { - // copy the non-collapsed part of the input spacing and origing to the output - int nonZeroCount = 0; - for (i=0; i < InputImageDimension; ++i) - { - if (m_ExtractionRegion.GetSize()[i]) - { - outputSpacing[nonZeroCount] = inputSpacing[i]; - outputOrigin[nonZeroCount] = inputOrigin[i]; - int nonZeroCount2 = 0; - for (unsigned int dim = 0; dim < InputImageDimension; ++dim) - { - if (m_ExtractionRegion.GetSize()[dim]) - { - outputDirection[nonZeroCount][nonZeroCount2] = - inputDirection[i][dim]; - ++nonZeroCount2; - } - } - nonZeroCount++; - } - } - } - - // set the spacing and origin - outputPtr->SetSpacing( outputSpacing ); - outputPtr->SetDirection( outputDirection ); - outputPtr->SetOrigin( outputOrigin ); - outputPtr->SetNumberOfComponentsPerPixel(inputPtr->GetNumberOfComponentsPerPixel() ); - } - else - { - // pointer could not be cast back down - itkExceptionMacro(<< "itk::ExtractImageFilter::GenerateOutputInformation " - << "cannot cast input to " - << typeid(itk::ImageBase*).name() ); - } -} - -/** - * ExtractImageFilter can be implemented as a multithreaded filter. - * Therefore, this implementation provides a ThreadedGenerateData() - * routine which is called for each processing thread. The output - * image data is allocated automatically by the superclass prior to - * calling ThreadedGenerateData(). ThreadedGenerateData can only - * write to the portion of the output image specified by the - * parameter "outputRegionForThread" - * - * \sa ImageToImageFilter::ThreadedGenerateData(), - * ImageToImageFilter::GenerateData() - */ -template -void -ExtractImageFilter -::ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread, - int threadId) -{ - itkDebugMacro(<<"Actually executing"); - - // Get the input and output pointers - typename Superclass::InputImageConstPointer inputPtr = this->GetInput(); - typename Superclass::OutputImagePointer outputPtr = this->GetOutput(); - - // support progress methods/callbacks - itk::ProgressReporter progress(this, threadId, outputRegionForThread.GetNumberOfPixels()); - - // Define the portion of the input to walk for this thread - InputImageRegionType inputRegionForThread; - this->CallCopyOutputRegionToInputRegion(inputRegionForThread, outputRegionForThread); - - // Define the iterators. - typedef itk::ImageRegionIterator OutputIterator; - typedef itk::ImageRegionConstIterator InputIterator; - - OutputIterator outIt(outputPtr, outputRegionForThread); - InputIterator inIt(inputPtr, inputRegionForThread); - - // walk the output region, and sample the input image - while( !outIt.IsAtEnd() ) - { - // copy the input pixel to the output - outIt.Set( static_cast(inIt.Get())); - ++outIt; - ++inIt; - progress.CompletedPixel(); - } -} - -} // end namespace clitk - -#endif diff --git a/segmentation/clitkReconstructThroughDilationImageFilter.h b/segmentation/clitkReconstructThroughDilationImageFilter.h deleted file mode 100644 index 3f0b88a..0000000 --- a/segmentation/clitkReconstructThroughDilationImageFilter.h +++ /dev/null @@ -1,141 +0,0 @@ -/*========================================================================= - Program: vv http://www.creatis.insa-lyon.fr/rio/vv - - Authors belong to: - - University of LYON http://www.universite-lyon.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 - 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 -===========================================================================**/ -#ifndef clitkReconstructThroughDilationImageFilter_h -#define clitkReconstructThroughDilationImageFilter_h - -/* ================================================= - * @file clitkReconstructThroughDilationImageFilter.h - * @author - * @date - * - * @brief - * - ===================================================*/ - - -// clitk include -#include "clitkIO.h" -#include "clitkCommon.h" -#include "clitkConditionalBinaryDilateImageFilter.h" - -//itk include -#include "itkImageToImageFilter.h" -#include "itkBinaryBallStructuringElement.h" -#include "itkConnectedComponentImageFilter.h" -#include "itkStatisticsImageFilter.h" -#include "itkCastImageFilter.h" -#include "itkDifferenceImageFilter.h" -#include "itkThresholdImageFilter.h" - -namespace clitk -{ - - template - class ITK_EXPORT ReconstructThroughDilationImageFilter : - public itk::ImageToImageFilter - { - public: - //---------------------------------------- - // ITK - //---------------------------------------- - typedef ReconstructThroughDilationImageFilter Self; - typedef itk::ImageToImageFilter 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( ReconstructThroughDilationImageFilter, ImageToImageFilter ); - - /** Dimension of the domain space. */ - itkStaticConstMacro(InputImageDimension, unsigned int, Superclass::InputImageDimension); - itkStaticConstMacro(OutputImageDimension, unsigned int, Superclass::OutputImageDimension); - - //---------------------------------------- - // Typedefs - //---------------------------------------- - typedef typename OutputImageType::RegionType OutputImageRegionType; - typedef int InternalPixelType; - typedef typename InputImageType::PixelType InputPixelType; - typedef typename OutputImageType::PixelType OutputPixelType; - typedef typename InputImageType::SizeType SizeType; - - //---------------------------------------- - // Set & Get - //---------------------------------------- - itkBooleanMacro(Verbose); - itkSetMacro( Verbose, bool); - itkGetConstReferenceMacro( Verbose, bool); - void SetRadius ( const SizeType& s){ m_Radius=s; this->Modified();} - SizeType GetRadius(void){return m_Radius;} - itkSetMacro( ErosionPaddingValue, OutputPixelType); - itkGetConstMacro( ErosionPaddingValue, OutputPixelType) - itkSetMacro( MaximumNumberOfLabels, unsigned int); - itkGetConstMacro( MaximumNumberOfLabels, unsigned int); - itkSetMacro( BackgroundValue, InternalPixelType); - itkGetConstMacro( BackgroundValue, InternalPixelType); - itkSetMacro( ForegroundValue, InternalPixelType); - itkGetConstMacro( ForegroundValue, InternalPixelType); - - protected: - - //---------------------------------------- - // Constructor & Destructor - //---------------------------------------- - ReconstructThroughDilationImageFilter(); - ~ReconstructThroughDilationImageFilter() {}; - - //---------------------------------------- - // Update - //---------------------------------------- - // Generate Data - void GenerateData(void); - - // // Threaded Generate Data - // void BeforeThreadedGenerateData(void ); - // void ThreadedGenerateData(const OutputImageRegionType & outputRegionForThread, int threadId ); - // void AfterThreadedGenerateData(void ); - // // Override defaults - // virtual void GenerateInputRequestedRegion(); - // virtual void GenerateOutputInformation (void); - // virtual void EnlargeOutputRequestedRegion(DataObject *data); - // void AllocateOutputs(); - //---------------------------------------- - // Data members - //---------------------------------------- - bool m_Verbose; - InternalPixelType m_BackgroundValue; - InternalPixelType m_ForegroundValue; - unsigned int m_MaximumNumberOfLabels; - OutputPixelType m_ErosionPaddingValue; - SizeType m_Radius; - - }; - - -} // end namespace clitk - -#ifndef ITK_MANUAL_INSTANTIATION -#include "clitkReconstructThroughDilationImageFilter.txx" -#endif - -#endif // #define clitkReconstructThroughDilationImageFilter_h - -