Page MenuHomePhabricator

ExtractImageFilter.patch

Authored By
saruji
Aug 28 2013, 3:40 PM
Size
3 KB
Referenced Files
None
Subscribers
None

ExtractImageFilter.patch

diff --git a/Modules/ImageExtraction/mitkExtractImageFilter.cpp b/Modules/ImageExtraction/mitkExtractImageFilter.cpp
index 4300630..0941ec8 100644
--- a/Modules/ImageExtraction/mitkExtractImageFilter.cpp
+++ b/Modules/ImageExtraction/mitkExtractImageFilter.cpp
@@ -20,14 +20,15 @@ See LICENSE.txt or http://www.mitk.org for details.
#include "mitkITKImageImport.h"
#include "mitkImageTimeSelector.h"
-#include <mitkImageAccessByItk.h>
-
#include <itkExtractImageFilter.h>
+#include <mitkImageAccessByItk.h>
+
mitk::ExtractImageFilter::ExtractImageFilter()
:m_SliceIndex(0),
m_SliceDimension(0),
- m_TimeStep(0)
+ m_TimeStep(0),
+ m_DirectionCollapseToStrategy( DIRECTIONCOLLAPSETOGUESS )
{
MITK_WARN << "Class ExtractImageFilter is deprecated! Use ExtractSliceFilter instead.";
}
@@ -109,14 +110,32 @@ void mitk::ExtractImageFilter::ItkImageProcessing( itk::Image<TPixel,VImageDimen
typedef itk::Image< TPixel, VImageDimension > ImageType3D;
typedef itk::Image< TPixel, VImageDimension-1 > ImageType2D;
+ typedef itk::ExtractImageFilter<ImageType3D, ImageType2D> ExtractImageFilterType;
typename ImageType3D::RegionType inSliceRegion = itkImage->GetLargestPossibleRegion();
inSliceRegion.SetSize( m_SliceDimension, 0 );
- typedef itk::ExtractImageFilter<ImageType3D, ImageType2D> ExtractImageFilterType;
-
typename ExtractImageFilterType::Pointer sliceExtractor = ExtractImageFilterType::New();
- sliceExtractor->SetDirectionCollapseToSubmatrix();
+
+ typename ExtractImageFilterType::DIRECTIONCOLLAPSESTRATEGY collapseStrategy;
+ switch( m_DirectionCollapseToStrategy )
+ {
+ case DIRECTIONCOLLAPSETOUNKOWN:
+ collapseStrategy = ExtractImageFilterType::DIRECTIONCOLLAPSETOUNKOWN;
+ break;
+ case DIRECTIONCOLLAPSETOIDENTITY:
+ collapseStrategy = ExtractImageFilterType::DIRECTIONCOLLAPSETOIDENTITY;
+ break;
+ case DIRECTIONCOLLAPSETOSUBMATRIX:
+ collapseStrategy = ExtractImageFilterType::DIRECTIONCOLLAPSETOSUBMATRIX;
+ break;
+ case DIRECTIONCOLLAPSETOGUESS:
+ default:
+ collapseStrategy = ExtractImageFilterType::DIRECTIONCOLLAPSETOGUESS;
+ break;
+ }
+
+ sliceExtractor->SetDirectionCollapseToStrategy( collapseStrategy );
sliceExtractor->SetInput( itkImage );
inSliceRegion.SetIndex( m_SliceDimension, m_SliceIndex );
diff --git a/Modules/ImageExtraction/mitkExtractImageFilter.h b/Modules/ImageExtraction/mitkExtractImageFilter.h
index 125c719..8a07ac7 100644
--- a/Modules/ImageExtraction/mitkExtractImageFilter.h
+++ b/Modules/ImageExtraction/mitkExtractImageFilter.h
@@ -76,6 +76,19 @@ class ImageExtraction_EXPORT ExtractImageFilter : public ImageToImageFilter
itkSetMacro(TimeStep, unsigned int);
itkGetConstMacro(TimeStep, unsigned int);
+ typedef enum DirectionCollapseStrategyEnum {
+ DIRECTIONCOLLAPSETOUNKOWN=0,
+ DIRECTIONCOLLAPSETOIDENTITY=1,
+ DIRECTIONCOLLAPSETOSUBMATRIX=2,
+ DIRECTIONCOLLAPSETOGUESS=3
+ } DIRECTIONCOLLAPSESTRATEGY;
+
+ /**
+ \brief Collapse strategy to be used.
+ */
+ itkSetMacro(DirectionCollapseToStrategy, DIRECTIONCOLLAPSESTRATEGY);
+ itkGetConstMacro(DirectionCollapseToStrategy, DIRECTIONCOLLAPSESTRATEGY);
+
protected:
ExtractImageFilter(); // purposely hidden
@@ -92,6 +105,7 @@ class ImageExtraction_EXPORT ExtractImageFilter : public ImageToImageFilter
unsigned int m_SliceIndex;
unsigned int m_SliceDimension;
unsigned int m_TimeStep;
+ DIRECTIONCOLLAPSESTRATEGY m_DirectionCollapseToStrategy;
};
} // namespace

File Metadata

Mime Type
text/plain
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1001
Default Alt Text
ExtractImageFilter.patch (3 KB)

Event Timeline