]> Creatis software - clitk.git/commitdiff
Merge branch 'master' of /home/dsarrut/clitk3.server
authorSimon Rit <simon.rit@creatis.insa-lyon.fr>
Fri, 20 May 2011 07:16:08 +0000 (09:16 +0200)
committerSimon Rit <simon.rit@creatis.insa-lyon.fr>
Fri, 20 May 2011 07:16:08 +0000 (09:16 +0200)
16 files changed:
itk/clitkConditionalGrayscaleDilateImageFilter.h [new file with mode: 0644]
itk/clitkConditionalGrayscaleDilateImageFilter.txx [new file with mode: 0644]
itk/clitkDecomposeThroughErosionImageFilter.h
itk/clitkReconstructThroughDilationImageFilter.h
itk/clitkReconstructWithConditionalGrayscaleDilateImageFilter.h [new file with mode: 0644]
itk/clitkReconstructWithConditionalGrayscaleDilateImageFilter.txx [new file with mode: 0644]
itk/clitkSegmentationUtils.h
itk/clitkSegmentationUtils.txx
segmentation/clitkDecomposeAndReconstructImageFilter.h [deleted file]
segmentation/clitkDecomposeAndReconstructImageFilter.txx [deleted file]
segmentation/clitkDecomposeThroughErosionImageFilter.h [deleted file]
segmentation/clitkDecomposeThroughErosionImageFilter.txx [deleted file]
segmentation/clitkExtractImageFilter.h [deleted file]
segmentation/clitkExtractImageFilter.txx [deleted file]
segmentation/clitkReconstructThroughDilationImageFilter.h [deleted file]
vv/qt_ui/vvRegisterForm.ui

diff --git a/itk/clitkConditionalGrayscaleDilateImageFilter.h b/itk/clitkConditionalGrayscaleDilateImageFilter.h
new file mode 100644 (file)
index 0000000..c129102
--- /dev/null
@@ -0,0 +1,148 @@
+/*=========================================================================
+
+  Program:   Insight Segmentation & Registration Toolkit
+  Module:    $RCSfile: itkGrayscaleDilateImageFilter.h,v $
+  Language:  C++
+  Date:      $Date: 2009-04-28 14:36:20 $
+  Version:   $Revision: 1.19 $
+
+  Copyright (c) Insight Software Consortium. All rights reserved.
+  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm 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.
+
+=========================================================================*/
+
+#ifndef __clitkGrayscaleDilateImageFilter_h
+#define __clitkGrayscaleDilateImageFilter_h
+
+// First make sure that the configuration is available.
+// This line can be removed once the optimized versions
+// gets integrated into the main directories.
+#include "itkConfigure.h"
+
+#ifdef ITK_USE_CONSOLIDATED_MORPHOLOGY
+#include "itkOptGrayscaleDilateImageFilter.h"
+#else
+
+
+#include "itkMorphologyImageFilter.h"
+
+namespace itk {
+
+/**
+ * \class ConditionalGrayscaleDilateImageFilter
+ * \brief gray scale dilation of an image
+ *
+ * Dilate an image using grayscale morphology. Dilation takes the
+ * maximum of all the pixels identified by the structuring element.
+ *
+ * The structuring element is assumed to be composed of binary
+ * values (zero or one). Only elements of the structuring element
+ * having values > 0 are candidates for affecting the center pixel.
+ * 
+ * For the each input image pixel, 
+ *   - NeighborhoodIterator gives neighbors of the pixel. 
+ *   - Evaluate() member function returns the maximum value among 
+ *     the image neighbors where the kernel has elements > 0.
+ *   - Replace the original value with the max value
+ *
+ * \sa MorphologyImageFilter, GrayscaleFunctionDilateImageFilter, BinaryDilateImageFilter
+ * \ingroup ImageEnhancement  MathematicalMorphologyImageFilters
+ */
+
+template<class TInputImage, class TOutputImage, class TKernel>
+class ITK_EXPORT ConditionalGrayscaleDilateImageFilter : 
+    public MorphologyImageFilter<TInputImage, TOutputImage, TKernel>
+{
+public:
+  /** Standard class typedefs. */
+  typedef ConditionalGrayscaleDilateImageFilter Self;
+  typedef MorphologyImageFilter<TInputImage, TOutputImage, TKernel>
+                                     Superclass;
+  typedef SmartPointer<Self>         Pointer;
+  typedef SmartPointer<const Self>   ConstPointer;
+  
+  /** Standard New method. */
+  itkNewMacro(Self);  
+
+  /** Runtime information support. */
+  itkTypeMacro(ConditionalGrayscaleDilateImageFilter, 
+               MorphologyImageFilter);
+  
+  /** Declaration of pixel type. */
+  typedef typename Superclass::PixelType PixelType;
+
+  /** Kernel (structuring element) iterator. */
+  typedef typename Superclass::KernelIteratorType  KernelIteratorType;
+
+  /** Neighborhood iterator type. */
+  typedef typename Superclass::NeighborhoodIteratorType NeighborhoodIteratorType;
+
+  /** Kernel typedef. */
+  typedef typename Superclass::KernelType KernelType;
+
+  /** Default boundary condition type */
+  typedef typename Superclass::DefaultBoundaryConditionType DefaultBoundaryConditionType;
+
+  /** ImageDimension constants */
+  itkStaticConstMacro(InputImageDimension, unsigned int,
+                      TInputImage::ImageDimension);
+  itkStaticConstMacro(OutputImageDimension, unsigned int,
+                      TOutputImage::ImageDimension);
+  itkStaticConstMacro(KernelDimension, unsigned int,
+                      TKernel::NeighborhoodDimension);
+
+  /** Type of the pixels in the Kernel. */
+  typedef typename TKernel::PixelType            KernelPixelType;
+
+#ifdef ITK_USE_CONCEPT_CHECKING
+  /** Begin concept checking */
+  itkConceptMacro(InputConvertibleToOutputCheck,
+    (Concept::Convertible<PixelType, typename TOutputImage::PixelType>));
+  itkConceptMacro(SameDimensionCheck1,
+     (Concept::SameDimension<InputImageDimension, OutputImageDimension>));
+  itkConceptMacro(SameDimensionCheck2,
+    (Concept::SameDimension<InputImageDimension, KernelDimension>));
+  itkConceptMacro(InputGreaterThanComparableCheck,
+    (Concept::GreaterThanComparable<PixelType>));
+  itkConceptMacro(KernelGreaterThanComparableCheck,
+    (Concept::GreaterThanComparable<KernelPixelType>));
+  /** End concept checking */
+#endif
+
+protected:
+  ConditionalGrayscaleDilateImageFilter();
+  ~ConditionalGrayscaleDilateImageFilter() {};
+
+  /** Evaluate image neighborhood with kernel to find the new value 
+   * for the center pixel value
+   *
+   * It will return the maximum value of the image pixels whose corresponding
+   * element in the structuring element is positive. This version of
+   * Evaluate is used for non-boundary pixels. */
+  PixelType Evaluate(const NeighborhoodIteratorType &nit,
+                     const KernelIteratorType kernelBegin,
+                     const KernelIteratorType kernelEnd);
+
+private:
+  ConditionalGrayscaleDilateImageFilter(const Self&); //purposely not implemented
+  void operator=(const Self&); //purposely not implemented
+
+  // Default boundary condition for dilation filter, defaults to
+  // NumericTraits<PixelType>::NonpositiveMin()
+  DefaultBoundaryConditionType m_DilateBoundaryCondition;
+
+}; // end of class
+
+} // end namespace itk
+  
+#ifndef ITK_MANUAL_INSTANTIATION
+#include "clitkConditionalGrayscaleDilateImageFilter.txx"
+#endif
+
+#endif
+
+#endif
diff --git a/itk/clitkConditionalGrayscaleDilateImageFilter.txx b/itk/clitkConditionalGrayscaleDilateImageFilter.txx
new file mode 100644 (file)
index 0000000..84ed968
--- /dev/null
@@ -0,0 +1,86 @@
+/*=========================================================================
+
+  Program:   Insight Segmentation & Registration Toolkit
+  Module:    $RCSfile: itkConditionalGrayscaleDilateImageFilter.txx,v $
+  Language:  C++
+  Date:      $Date: 2009-04-28 14:36:20 $
+  Version:   $Revision: 1.17 $
+
+  Copyright (c) Insight Software Consortium. All rights reserved.
+  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm 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.
+
+=========================================================================*/
+#ifndef __clitkConditionalGrayscaleDilateImageFilter_txx
+#define __clitkConditionalGrayscaleDilateImageFilter_txx
+
+// First make sure that the configuration is available.
+// This line can be removed once the optimized versions
+// gets integrated into the main directories.
+#include "itkConfigure.h"
+
+#ifdef ITK_USE_CONSOLIDATED_MORPHOLOGY
+#include "itkOptGrayscaleDilateImageFilter.txx"
+#else
+
+
+#include "clitkConditionalGrayscaleDilateImageFilter.h"
+
+namespace itk {
+
+template<class TInputImage, class TOutputImage, class TKernel>
+ConditionalGrayscaleDilateImageFilter<TInputImage, TOutputImage, TKernel>
+::ConditionalGrayscaleDilateImageFilter()
+{
+  m_DilateBoundaryCondition.SetConstant( NumericTraits<PixelType>::NonpositiveMin() );
+  this->OverrideBoundaryCondition( &m_DilateBoundaryCondition );
+}
+
+template<class TInputImage, class TOutputImage, class TKernel>
+typename ConditionalGrayscaleDilateImageFilter<TInputImage, TOutputImage, TKernel>::PixelType
+ConditionalGrayscaleDilateImageFilter<TInputImage, TOutputImage, TKernel>
+::Evaluate(const NeighborhoodIteratorType &nit,
+           const KernelIteratorType kernelBegin,
+           const KernelIteratorType kernelEnd)
+{
+  unsigned int i;
+  PixelType max = NumericTraits<PixelType>::NonpositiveMin();
+  PixelType temp;
+
+  KernelIteratorType kernel_it;
+
+  PixelType center = nit.GetCenterPixel ();
+  // if (center != NumericTraits<KernelPixelType>::Zero)  {
+  //   DD((int)center);
+  // }
+
+  if (center > NumericTraits<KernelPixelType>::Zero) return center;
+  
+  for( i=0, kernel_it=kernelBegin; kernel_it<kernelEnd; ++kernel_it, ++i )
+    {
+    // if structuring element is positive, use the pixel under that element
+    // in the image
+    if( *kernel_it > NumericTraits<KernelPixelType>::Zero )
+      {
+      // note we use GetPixel() on the SmartNeighborhoodIterator to
+      // respect boundary conditions
+      temp = nit.GetPixel(i);
+
+      if( temp > max )
+        {
+        max = temp;
+        }
+      }
+    }
+  
+  return max;
+} 
+
+
+}// end namespace itk
+#endif
+
+#endif
index 68033a05225f698da19f0adccfac13c5f08ad8b1..3ab61cbd141b02d815a58e1476caf48df8fef1bf 100644 (file)
@@ -97,8 +97,9 @@ namespace clitk
     itkGetConstMacro( Outside, InternalPixelType);  
     itkSetMacro( ErosionPaddingValue, OutputPixelType);
     itkGetConstMacro( ErosionPaddingValue, OutputPixelType);  
-    void SetRadius ( const SizeType& s){ m_Radius=s; this->Modified();}
+    void SetRadius ( const SizeType& s) { m_Radius=s; this->Modified();}
     SizeType GetRadius(void){return m_Radius;}
+    void SetRadius(const int r) { for(uint i=0; i<InputImageDimension; i++) m_Radius[i] = r; SetRadius(m_Radius); }
     itkSetMacro( NumberOfNewLabels, unsigned int);
     itkGetConstMacro( NumberOfNewLabels, unsigned int);
     itkSetMacro( MinimumObjectSize, unsigned int);
index c464c08ea50b4b827dc3ef1a828c3e8cf0e2a133..1c2f6a3a76eb601964a73c5b0f2e4846493c4e78 100644 (file)
@@ -84,6 +84,7 @@ namespace clitk
     itkSetMacro( Verbose, bool);
     itkGetConstReferenceMacro( Verbose, bool);
     void SetRadius ( const SizeType& s){ m_Radius=s; this->Modified();}
+    void SetRadius(const int r) { for(uint i=0; i<InputImageDimension; i++) m_Radius[i] = r; SetRadius(m_Radius); }
     SizeType GetRadius(void){return m_Radius;}
     itkSetMacro( ErosionPaddingValue, OutputPixelType);
     itkGetConstMacro( ErosionPaddingValue, OutputPixelType)
diff --git a/itk/clitkReconstructWithConditionalGrayscaleDilateImageFilter.h b/itk/clitkReconstructWithConditionalGrayscaleDilateImageFilter.h
new file mode 100644 (file)
index 0000000..0b0de84
--- /dev/null
@@ -0,0 +1,108 @@
+/*=========================================================================
+  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 clitkReconstructWithConditionalGrayscaleDilateImageFilter_h
+#define clitkReconstructWithConditionalGrayscaleDilateImageFilter_h
+
+// clitk include
+#include "clitkIO.h"
+#include "clitkCommon.h"
+#include "clitkConditionalGrayscaleDilateImageFilter.h"
+
+namespace clitk 
+{
+  /*
+    This filter takes as input a multilabel image (and a bg value).
+    It performs several greyscale dilatation of radius 1, but only in
+    the bg pixels. It means that when two objects (with different
+    labels) will dilate inside each other (collistion), the dilatation
+    is stopped.
+   */
+
+  template <class ImageType>
+  class ITK_EXPORT ReconstructWithConditionalGrayscaleDilateImageFilter :
+    public itk::ImageToImageFilter<ImageType, ImageType>
+  {
+  public:
+    //----------------------------------------
+    // ITK
+    //----------------------------------------
+    typedef ReconstructWithConditionalGrayscaleDilateImageFilter Self;
+    typedef itk::ImageToImageFilter<ImageType, ImageType>        Superclass;
+    typedef itk::SmartPointer<Self>                              Pointer;
+    typedef itk::SmartPointer<const Self>                        ConstPointer;
+   
+    // Method for creation through the object factory
+    itkNewMacro(Self);  
+
+    // Run-time type information (and related methods)
+    itkTypeMacro( ReconstructWithConditionalGrayscaleDilateImageFilter, ImageToImageFilter);
+
+    /** Dimension of the domain space. */
+    itkStaticConstMacro(ImageDimension, unsigned int, Superclass::InputImageDimension);
+
+    //----------------------------------------
+    // Typedefs
+    //----------------------------------------
+    typedef typename ImageType::PixelType PixelType;
+    typedef typename ImageType::SizeType SizeType;
+
+    //----------------------------------------
+    // Set & Get
+    //----------------------------------------    
+    itkBooleanMacro(Verbose);
+    itkSetMacro( Verbose, bool);
+    itkGetConstReferenceMacro( Verbose, bool);
+
+    itkSetMacro(IterationNumber, int);
+    itkGetConstMacro(IterationNumber, int);
+
+    itkSetMacro(BackgroundValue, PixelType);
+    itkGetConstMacro(BackgroundValue, PixelType);
+
+  protected:
+
+    //----------------------------------------  
+    // Constructor & Destructor
+    //----------------------------------------  
+    ReconstructWithConditionalGrayscaleDilateImageFilter();
+    ~ReconstructWithConditionalGrayscaleDilateImageFilter() {};
+
+    //----------------------------------------  
+    // Update
+    //----------------------------------------  
+    // Generate Data
+    void GenerateData(void);
+
+    //----------------------------------------  
+    // Data members
+    //----------------------------------------
+    bool m_Verbose;
+    PixelType m_BackgroundValue;
+    int m_IterationNumber;
+  };
+
+} // end namespace clitk
+
+#ifndef ITK_MANUAL_INSTANTIATION
+#include "clitkReconstructWithConditionalGrayscaleDilateImageFilter.txx"
+#endif
+
+#endif // #define clitkReconstructWithConditionalGrayscaleDilateImageFilter_h
+
+
diff --git a/itk/clitkReconstructWithConditionalGrayscaleDilateImageFilter.txx b/itk/clitkReconstructWithConditionalGrayscaleDilateImageFilter.txx
new file mode 100644 (file)
index 0000000..7a68818
--- /dev/null
@@ -0,0 +1,79 @@
+/*=========================================================================
+  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 clitkReconstructWithConditionalGrayscaleDilateImageFilter_txx
+#define clitkReconstructWithConditionalGrayscaleDilateImageFilter_txx
+
+#include <itkGrayscaleDilateImageFilter.h>
+
+namespace clitk
+{
+
+  //-------------------------------------------------------------------
+  template<class ImageType>
+  ReconstructWithConditionalGrayscaleDilateImageFilter<ImageType>::ReconstructWithConditionalGrayscaleDilateImageFilter()
+  {
+   m_Verbose=false;
+   m_BackgroundValue=0;
+   m_IterationNumber = 5;
+  }
+  //-------------------------------------------------------------------
+
+  //-------------------------------------------------------------------
+  template<class ImageType> 
+  void 
+  ReconstructWithConditionalGrayscaleDilateImageFilter<ImageType>::GenerateData()
+  {
+    // Get input image 
+    typename ImageType::ConstPointer input = this->GetInput();
+
+    // Main loop
+    typename ImageType::Pointer output;
+    for(int r=0; r<GetIterationNumber(); r++) {
+      
+      // Create kernel for GrayscaleDilateImageFilter
+      typedef itk::BinaryBallStructuringElement<PixelType,ImageDimension > KernelType;
+      KernelType k;
+      k.SetRadius(1);
+      k.CreateStructuringElement();
+    
+      // Check that BG is 0, because ConditionalGrayscaleDilateImageFilter consider BG is 0
+      if (GetBackgroundValue() !=0) {
+        FATAL("FATAL -> BG is not 0, check ReconstructWithConditionalGrayscaleDilateImageFilter");
+        // TODO -> replace 0 with new label, replace BG with 0 ; reverse at the end
+      }
+      
+      // ConditionalGrayscaleDilateImageFilter -> Dilate only BG value
+      typedef itk::ConditionalGrayscaleDilateImageFilter<ImageType, ImageType, KernelType> FilterType;
+      typename FilterType::Pointer m = FilterType::New();
+      m->SetKernel(k);
+      if (r==0) {
+        m->SetInput(input); // First time
+      }
+      else m->SetInput(output);
+      m->Update();
+      output = m->GetOutput();
+    }
+
+    //---------------------------------
+    this->SetNthOutput(0, output);
+  }
+
+}//end clitk
+#endif //#define clitkReconstructWithConditionalGrayscaleDilateImageFilter_txx
index 532abd7009a87f836f33d5f677b3cb9a01e5373c..4d7129821eabf8aeac167f0b5699dcf878e372da 100644 (file)
@@ -308,6 +308,15 @@ namespace clitk {
          bool extendSupport);
   //--------------------------------------------------------------------
 
+
+  //--------------------------------------------------------------------
+  template<class ImageType>
+  typename ImageType::Pointer 
+  Opening(const ImageType * image, typename ImageType::SizeType radius,
+          typename ImageType::PixelType BG, typename ImageType::PixelType FG);
+  //--------------------------------------------------------------------
+
+
   //--------------------------------------------------------------------
   template<class ValueType, class VectorType>
   void ConvertOption(std::string optionName, uint given, 
@@ -389,6 +398,15 @@ namespace clitk {
   //--------------------------------------------------------------------
 
 
+  //--------------------------------------------------------------------
+  template<class ImageType>
+  typename ImageType::Pointer
+  SliceBySliceKeepMainCCL(const ImageType * input, 
+                          typename ImageType::PixelType BG,
+                          typename ImageType::PixelType FG);
+  //--------------------------------------------------------------------
+  
+
 }
 
 #include "clitkSegmentationUtils.txx"
index 16c184c0d1e36ff0e3ace5cec61df5c94de295a4..36594aa43b3e0aecfcb0cee56686e83f68cdd73a 100644 (file)
@@ -32,6 +32,7 @@
 #include <itkBinaryDilateImageFilter.h>
 #include <itkConstantPadImageFilter.h>
 #include <itkImageSliceIteratorWithIndex.h>
+#include <itkBinaryMorphologicalOpeningImageFilter.h>
 
 namespace clitk {
 
@@ -730,6 +731,34 @@ namespace clitk {
   //--------------------------------------------------------------------
 
 
+  //--------------------------------------------------------------------
+  template<class ImageType>
+  typename ImageType::Pointer 
+  Opening(const ImageType * image, typename ImageType::SizeType radius,
+         typename ImageType::PixelType BG,
+         typename ImageType::PixelType FG)
+  {
+    // Kernel 
+    typedef itk::BinaryBallStructuringElement<typename ImageType::PixelType, 
+                                              ImageType::ImageDimension> KernelType;    
+    KernelType structuringElement;
+    structuringElement.SetRadius(radius);
+    structuringElement.CreateStructuringElement();
+    
+    // Filter
+    typedef itk::BinaryMorphologicalOpeningImageFilter<ImageType, ImageType , KernelType> OpeningFilterType;
+    typename OpeningFilterType::Pointer open = OpeningFilterType::New();
+    open->SetInput(image);
+    open->SetBackgroundValue(BG);
+    open->SetForegroundValue(FG);
+    open->SetKernel(structuringElement);
+    open->Update();
+    return open->GetOutput();
+  }
+  //--------------------------------------------------------------------
+
+
+
   //--------------------------------------------------------------------
   template<class ValueType, class VectorType>
   void ConvertOption(std::string optionName, uint given, 
@@ -1020,5 +1049,37 @@ namespace clitk {
   //--------------------------------------------------------------------
 
 
+  //--------------------------------------------------------------------
+  template<class ImageType>
+  typename ImageType::Pointer
+  SliceBySliceKeepMainCCL(const ImageType * input, 
+                          typename ImageType::PixelType BG,
+                          typename ImageType::PixelType FG)  {
+    
+    // Extract slices
+    const int d = ImageType::ImageDimension-1;
+    typedef typename itk::Image<typename ImageType::PixelType, d> SliceType;
+    std::vector<typename SliceType::Pointer> slices;
+    clitk::ExtractSlices<ImageType>(input, d, slices);
+    DD(slices.size());
+    
+    // Labelize and keep the main one
+    std::vector<typename SliceType::Pointer> o;
+    for(uint i=0; i<slices.size(); i++) {
+      DD(i);
+      o.push_back(clitk::Labelize<SliceType>(slices[i], BG, false, 1));
+      o[i] = clitk::KeepLabels<SliceType>(o[i], BG, FG, 1, 1, true);
+    }
+    
+    // Join slices
+    DD("join");
+    typename ImageType::Pointer output;
+    output = clitk::JoinSlices<ImageType>(o, input, d);
+    DD("return");
+    return output;
+  }
+  //--------------------------------------------------------------------
+
+
 } // end of namespace
 
diff --git a/segmentation/clitkDecomposeAndReconstructImageFilter.h b/segmentation/clitkDecomposeAndReconstructImageFilter.h
deleted file mode 100644 (file)
index 3cc9ee0..0000000
+++ /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 InputImageType, class OutputImageType>
-  class ITK_EXPORT DecomposeAndReconstructImageFilter :
-    public itk::ImageToImageFilter<InputImageType, OutputImageType>
-  {
-  public:
-    //----------------------------------------
-    // ITK
-    //----------------------------------------
-    typedef DecomposeAndReconstructImageFilter                                                 Self;
-    typedef itk::ImageToImageFilter<InputImageType, OutputImageType>  Superclass;
-    typedef itk::SmartPointer<Self>                                   Pointer;
-    typedef itk::SmartPointer<const Self>                             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 (file)
index f21b56d..0000000
+++ /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<class InputImageType, class OutputImageType>
-  DecomposeAndReconstructImageFilter<InputImageType, OutputImageType>::DecomposeAndReconstructImageFilter()
-  {
-   m_Verbose=false;
-   for (unsigned int i=0; i<InputImageDimension; i++)
-     m_Radius[i]=1;
-   m_NumberOfNewLabels=1;
-   m_FullyConnected=true;
-   m_BackgroundValue=0;
-   m_ForegroundValue=1;
-   m_MaximumNumberOfLabels=10;
-   m_MinimumObjectSize=10;
-   m_MinimumNumberOfIterations=1;
-
-  }
-
-
-  //-------------------------------------------------------------------
-  // Update with the number of dimensions and the pixeltype
-  //-------------------------------------------------------------------
-  template <class InputImageType, class  OutputImageType> 
-  void 
-  DecomposeAndReconstructImageFilter<InputImageType, OutputImageType>::GenerateData()
-  {
-
-
-    // Internal type
-    typedef itk::Image<InternalPixelType, InputImageDimension> InternalImageType;
-
-    // Filters used
-    typedef clitk::DecomposeThroughErosionImageFilter<InputImageType, InternalImageType> DecomposeThroughErosionImageFilterType;
-    typedef clitk::ReconstructThroughDilationImageFilter<InternalImageType, InputImageType> 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 (file)
index 032a6c2..0000000
+++ /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 InputImageType, class OutputImageType>
-  class ITK_EXPORT DecomposeThroughErosionImageFilter :
-    public itk::ImageToImageFilter<InputImageType, OutputImageType>
-  {
-  public:
-    //----------------------------------------
-    // ITK
-    //----------------------------------------
-    typedef DecomposeThroughErosionImageFilter                                                 Self;
-    typedef itk::ImageToImageFilter<InputImageType, OutputImageType>  Superclass;
-    typedef itk::SmartPointer<Self>                                   Pointer;
-    typedef itk::SmartPointer<const Self>                             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 (file)
index 6a7ffbc..0000000
+++ /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<class InputImageType, class OutputImageType>
-  DecomposeThroughErosionImageFilter<InputImageType, OutputImageType>::DecomposeThroughErosionImageFilter()
-  {
-   m_Verbose=false;
-   m_Lower =1;
-   m_Upper=1;
-   m_Inside=1;
-   m_Outside=0;
-   m_ErosionPaddingValue=static_cast<OutputPixelType>(-1);
-   for (unsigned int i=0; i<InputImageDimension; i++)
-     m_Radius[i]=1;
-   m_NumberOfNewLabels=1;
-   m_FullyConnected=true;
-   m_MinimumObjectSize=10;
-   m_MinimumNumberOfIterations=1;
-  }
-
-
-  //-------------------------------------------------------------------
-  // Update with the number of dimensions and the pixeltype
-  //-------------------------------------------------------------------
-  template<class InputImageType, class  OutputImageType> 
-  void 
-  DecomposeThroughErosionImageFilter<InputImageType, OutputImageType>::GenerateData()
-  {
-
-    //---------------------------------
-    // Typedefs 
-    //--------------------------------- 
-
-    // Internal type
-    typedef itk::Image<InternalPixelType, InputImageDimension> InternalImageType;
-
-    // Filters used
-    typedef itk::BinaryThresholdImageFilter<InputImageType, InternalImageType> InputBinaryThresholdImageFilter;
-    typedef itk::BinaryBallStructuringElement<InputPixelType,InputImageDimension > KernelType;
-    typedef itk::BinaryErodeImageFilter<InternalImageType, InternalImageType , KernelType> BinaryErodeImageFilterType;
-    typedef itk::BinaryThresholdImageFilter<InternalImageType, InternalImageType> BinaryThresholdImageFilterType;
-    typedef itk::StatisticsImageFilter<InternalImageType> StatisticsImageFilterType;
-    typedef itk::ConnectedComponentImageFilter<InternalImageType, InternalImageType> ConnectFilterType;
-    typedef itk::RelabelComponentImageFilter<InternalImageType, InternalImageType> RelabelImageFilterType;
-    typedef clitk::SetBackgroundImageFilter<InternalImageType, InternalImageType, InternalImageType> 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..."<<std::endl;
-    inputBinarizer->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..."<<std::endl;
-    //   inputConnectFilter->Update();
-    //---------------------------------
-    // Count the initial labels
-    //---------------------------------
-    typename StatisticsImageFilterType::Pointer inputStatisticsImageFilter=StatisticsImageFilterType::New();
-    inputStatisticsImageFilter->SetInput(inputConnectFilter->GetOutput());
-    if(m_Verbose) std::cout<<"Counting the initial labels..."<<std::endl;
-    inputStatisticsImageFilter->Update();
-    unsigned int initialNumberOfLabels= inputStatisticsImageFilter->GetMaximum();
-    if(m_Verbose) std::cout<<"The input contained "<<initialNumberOfLabels<<" disctictive label(s)..."<<std::endl;
-    if(m_Verbose) std::cout<<"Performing erosions till at least "<<initialNumberOfLabels+m_NumberOfNewLabels<<" distinctive labels are counted..."<<std::endl;
-    //---------------------------------
-    // Structuring element
-    //---------------------------------
-    KernelType structuringElement;
-    structuringElement.SetRadius(m_Radius);
-    structuringElement.CreateStructuringElement();
-
-    //---------------------------------
-    // Repeat while not decomposed
-    //---------------------------------
-    typename InternalImageType::Pointer current=inputBinarizer->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 "<<iteration<<")..."<<std::endl;
-       
-       //---------------------------------
-       // Erode
-       //---------------------------------
-       typename BinaryErodeImageFilterType::Pointer erosionFilter=BinaryErodeImageFilterType::New();
-       erosionFilter->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..."<<std::endl;
-       //binarizer->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..."<<std::endl;
-       //connectFilter->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 "<<max<<" label (s) larger then "<<m_MinimumObjectSize<<" voxels..."<<std::endl;
-       output=statisticsImageFilter->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..."<<std::endl;
-    //binarizer->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..."<<std::endl;
-    connectFilter->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 "<<m_ErosionPaddingValue<<"..."<<std::endl;
-        
-    //---------------------------------
-    // Cast
-    //---------------------------------
-    typedef itk::CastImageFilter<InternalImageType, OutputImageType> 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 (file)
index 0db736b..0000000
+++ /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 TInputImage, class TOutputImage>
-class ITK_EXPORT ExtractImageFilter:
-    public itk::ImageToImageFilter<TInputImage,TOutputImage>
-{
-public:
-  /** Standard class typedefs. */
-  typedef ExtractImageFilter         Self;
-  typedef itk::ImageToImageFilter<TInputImage,TOutputImage>  Superclass;
-  typedef itk::SmartPointer<Self>  Pointer;
-  typedef itk::SmartPointer<const Self>  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<InputImagePixelType, OutputImagePixelType>));
-  /** 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 (file)
index ed7574f..0000000
+++ /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 <class TInputImage, class TOutputImage>
-ExtractImageFilter<TInputImage,TOutputImage>
-::ExtractImageFilter() 
-{
-}
-
-
-/**
- *
- */
-template <class TInputImage, class TOutputImage>
-void 
-ExtractImageFilter<TInputImage,TOutputImage>
-::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<class TInputImage, class TOutputImage>
-void 
-ExtractImageFilter<TInputImage,TOutputImage>
-::CallCopyOutputRegionToInputRegion(InputImageRegionType &destRegion,
-                                    const OutputImageRegionType &srcRegion)
-{
-  ExtractImageFilterRegionCopierType extractImageRegionCopier;
-  extractImageRegionCopier(destRegion, srcRegion, m_ExtractionRegion);
-}
-
-
-template <class TInputImage, class TOutputImage>
-void 
-ExtractImageFilter<TInputImage,TOutputImage>
-::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 <class TInputImage, class TOutputImage>
-void 
-ExtractImageFilter<TInputImage,TOutputImage>
-::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<InputImageDimension> *phyData;
-
-  phyData
-    = dynamic_cast<const itk::ImageBase<InputImageDimension>*>(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<unsigned int>(OutputImageDimension) > 
-         static_cast<unsigned int>(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<InputImageDimension>*).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 <class TInputImage, class TOutputImage>
-void 
-ExtractImageFilter<TInputImage,TOutputImage>
-::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<TOutputImage> OutputIterator;
-  typedef itk::ImageRegionConstIterator<TInputImage> 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<OutputImagePixelType>(inIt.Get()));
-    ++outIt; 
-    ++inIt; 
-    progress.CompletedPixel();
-    }
-}
-
-} // end namespace clitk
-
-#endif
diff --git a/segmentation/clitkReconstructThroughDilationImageFilter.h b/segmentation/clitkReconstructThroughDilationImageFilter.h
deleted file mode 100644 (file)
index 3f0b88a..0000000
+++ /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 InputImageType, class OutputImageType>
-  class ITK_EXPORT ReconstructThroughDilationImageFilter :
-    public itk::ImageToImageFilter<InputImageType, OutputImageType>
-  {
-  public:
-    //----------------------------------------
-    // ITK
-    //----------------------------------------
-    typedef ReconstructThroughDilationImageFilter                                                 Self;
-    typedef itk::ImageToImageFilter<InputImageType, OutputImageType>  Superclass;
-    typedef itk::SmartPointer<Self>                                   Pointer;
-    typedef itk::SmartPointer<const Self>                             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
-
-
index e196b3515826abc17411ca80a86246dea48cc716..f6b22c2916ff7a8e6d9d36f22cdf68e21a57a6f1 100644 (file)
@@ -9,8 +9,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>371</width>
-    <height>413</height>
+    <width>302</width>
+    <height>396</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -38,7 +38,7 @@
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p align=&quot;justify&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:10px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/common/icons/weNeedYou.png&quot; style=&quot;float: left;&quot; /&gt;&lt;span style=&quot; font-weight:600; color:#0000c0;&quot;&gt;Welcome to VV !&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We wish to keep an estimate of the number of persons using VV. This is really important for us to justify the ressources spent in developing this software.&lt;/p&gt;
+&lt;p align=&quot;justify&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:10px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/common/icons/weNeedYou.png&quot; style=&quot;float: left;&quot; /&gt;&lt;span style=&quot; font-size:11pt; font-weight:600; color:#0000c0;&quot;&gt;Welcome to VV !&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We wish to keep an estimate of the number of persons using VV. This is really important for us to justify the ressources spent in developing this software.&lt;/p&gt;
 &lt;p align=&quot;justify&quot; style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:10px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
 &lt;p align=&quot;justify&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:10px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Please, take a few seconds to fill in the following fields and send us the information by clicking OK. If you still prefer to remain anonymous, simply click &amp;quot;No, thanks&amp;quot; (you can still register afterwards using the help menu).&lt;/p&gt;
 &lt;p align=&quot;justify&quot; style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:10px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;