16 #ifndef __mitkToFCompositeFilter_h
17 #define __mitkToFCompositeFilter_h
21 #include <MitkToFProcessingExports.h>
23 #include <itkBilateralImageFilter.h>
49 itkFactorylessNewMacro(
Self)
53 itkSetMacro(ApplyTemporalMedianFilter,
bool);
54 itkGetConstMacro(ApplyTemporalMedianFilter,
bool);
55 itkSetMacro(ApplyAverageFilter,
bool);
56 itkGetConstMacro(ApplyAverageFilter,
bool);
57 itkSetMacro(ApplyMedianFilter,
bool);
58 itkGetConstMacro(ApplyMedianFilter,
bool);
59 itkSetMacro(ApplyThresholdFilter,
bool);
60 itkGetConstMacro(ApplyThresholdFilter,
bool);
61 itkSetMacro(ApplyMaskSegmentation,
bool);
62 itkGetConstMacro(ApplyMaskSegmentation,
bool);
63 itkSetMacro(ApplyBilateralFilter,
bool);
64 itkGetConstMacro(ApplyBilateralFilter,
bool);
70 virtual void SetInput(
Image* distanceImage);
77 virtual void SetInput(
unsigned int idx,
Image* distanceImage);
87 Image* GetInput(
unsigned int idx);
92 void SetTemporalMedianFilterParameter(
int tmporalMedianFilterNumOfFrames);
98 void SetThresholdFilterParameter(
int min,
int max);
105 void SetBilateralFilterParameter(
double domainSigma,
double rangeSigma,
int kernelRadius);
116 virtual void GenerateOutputInformation()
override;
121 virtual void GenerateData()
override;
129 void CreateOutputsForAllInputs();
135 void ProcessSegmentation(IplImage* inputIplImage);
145 void ProcessCVBilateralFilter(IplImage* inputIplImage, IplImage* outputIplImage);
150 void ProcessCVMedianFilter(IplImage* inputIplImage, IplImage* outputIplImage,
int radius = 3);
154 void ProcessStreamedQuickSelectMedianImageFilter(IplImage* inputIplImage);
162 float quick_select(
float arr[],
int n);
bool m_ApplyMaskSegmentation
Flag indicating if a mask segmentation is performed.
bool m_ApplyBilateralFilter
Flag indicating if the bilateral filter is currently active for processing the distance image...
itk::SmartPointer< Self > Pointer
itk::Image< float, 2 > ItkImageType2D
bool m_ApplyThresholdFilter
Flag indicating if the threshold filter is currently active for processing the distance image...
double m_BilateralFilterRangeSigma
Parameter of the bilateral filter controlling the edge preserving effect of the filter. Default value: 60.
bool m_ApplyMedianFilter
Flag indicating if the spatial median filter is currently active for processing the distance image...
int m_ImageWidth
x-dimension of the image
Superclass of all classes generating some kind of mitk::BaseData.
bool m_ApplyAverageFilter
Flag indicating if the average filter is currently active for processing the distance image...
DataCollection - Class to facilitate loading/accessing structured data.
ItkImageType2D::Pointer m_ItkInputImage
ITK representation of the distance image.
int m_TemporalMedianFilterNumOfFrames
Number of frames to be used in the calculation of the temporal median.
itk::BilateralImageFilter< ItkImageType2D, ItkImageType2D > BilateralFilterType
IplImage * m_IplOutputImage
OpenCV-representation of the output image.
int m_ImageHeight
y-dimension of the image
int m_ThresholdFilterMin
Lower threshold of the threshold filter. Pixels with values below will be assigned value 0 when apply...
#define mitkClassMacro(className, SuperClassName)
Image class for storing images.
double m_BilateralFilterDomainSigma
Parameter of the bilateral filter controlling the smoothing effect of the filter. Default value: 2...
int m_ImageSize
size of the image in bytes
float ** m_DataBuffer
Buffer used for calculating the pixel-wise median over the last n (m_TemporalMedianFilterNumOfFrames)...
int m_DataBufferMaxSize
Maximal size for the buffer of the temporal median filter (m_DataBuffer)
Superclass of all classes having one or more Images as input and generating Images as output...
int m_BilateralFilterKernelRadius
Kernel radius of the bilateral filter mask.
mitk::Image::Pointer m_SegmentationMask
mask image used for segmenting the image
int m_DataBufferCurrentIndex
Current index in the buffer of the temporal median filter.
Applies a common filter-pipeline to the first input of this filter.
bool m_ApplyTemporalMedianFilter
Flag indicating if the temporal median filter is currently active for processing the distance image...
int m_ThresholdFilterMax
Lower threshold of the threshold filter. Pixels with values above will be assigned value 0 when apply...
IplImage * m_IplDistanceImage
OpenCV-representation of the distance image.
itk::Image< float, 3 > ItkImageType3D