]> Creatis software - FrontAlgorithms.git/blobdiff - appli/CTBronchi/MoriLabelling.h
...
[FrontAlgorithms.git] / appli / CTBronchi / MoriLabelling.h
diff --git a/appli/CTBronchi/MoriLabelling.h b/appli/CTBronchi/MoriLabelling.h
new file mode 100644 (file)
index 0000000..105c7d0
--- /dev/null
@@ -0,0 +1,80 @@
+// =========================================================================
+// @author Leonardo Florez Valencia
+// @email florez-l@javeriana.edu.co
+// =========================================================================
+
+#ifndef __CTBronchi__MoriLabelling__h__
+#define __CTBronchi__MoriLabelling__h__
+
+#include <itkImageToImageFilter.h>
+
+namespace CTBronchi
+{
+  /**
+   */
+  template< class _TInputImage, class _TLabelImage >
+  class MoriLabelling
+    : public itk::ImageToImageFilter< _TLabelImage, _TLabelImage >
+  {
+  public:
+    typedef MoriLabelling                                         Self;
+    typedef itk::ImageToImageFilter< _TLabelImage, _TLabelImage > Superclass;
+    typedef itk::SmartPointer< Self >                             Pointer;
+    typedef itk::SmartPointer< const Self >                       ConstPointer;
+
+    typedef _TInputImage TInputImage;
+    typedef _TLabelImage TLabelImage;
+    typedef typename TInputImage::PixelType  TPixel;
+    typedef typename TLabelImage::PixelType  TLabel;
+    typedef typename TLabelImage::RegionType TRegion;
+
+  public:
+    itkNewMacro( Self );
+    itkTypeMacro( MoriLabelling, itk::ImageToImageFilter );
+
+    itkGetConstMacro( UpperThreshold, TPixel );
+    itkSetMacro( UpperThreshold, TPixel );
+
+    itkGetConstMacro( InsideValue, TLabel );
+    itkSetMacro( InsideValue, TLabel );
+
+    itkGetConstMacro( InsideLabel, TLabel );
+    itkSetMacro( InsideLabel, TLabel );
+
+    itkGetConstMacro( OutsideLabel, TLabel );
+    itkSetMacro( OutsideLabel, TLabel );
+
+  public:
+    const TLabelImage* GetInputLabelImage( ) const;
+    void SetInputLabelImage( TLabelImage* image );
+
+    const TInputImage* GetInputRawImage( ) const;
+    void SetInputRawImage( TInputImage* image );
+
+  protected:
+    MoriLabelling( );
+    virtual ~MoriLabelling( );
+
+    virtual void ThreadedGenerateData( const TRegion& region, itk::ThreadIdType threadId ) override;
+
+  private:
+    // Purposely not implemented.
+    MoriLabelling( const Self& other );
+    Self& operator=( const Self& other );
+
+  protected:
+    TPixel m_UpperThreshold;
+    TLabel m_InsideValue;
+    TLabel m_InsideLabel;
+    TLabel m_OutsideLabel;
+  };
+
+} // ecapseman
+
+#ifndef ITK_MANUAL_INSTANTIATION
+#  include <CTBronchi/MoriLabelling.hxx>
+#endif // ITK_MANUAL_INSTANTIATION
+
+#endif // __CTBronchi__MoriLabelling__h__
+
+// eof - $RCSfile$