NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkRescaleImageUsingHistogramPercentilesFilter.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef itkRescaleImageUsingHistogramPercentilesFilter_h
16 #define itkRescaleImageUsingHistogramPercentilesFilter_h
17 
18 #include <itkImageToImageFilter.h>
19 
20 
21 namespace itk {
22 
28 template<class TInputImage, class TOutputImage>
30  public ImageToImageFilter< TInputImage, TOutputImage >
31 {
32 public:
35  typedef ImageToImageFilter< TInputImage,TOutputImage > Superclass;
36  typedef SmartPointer< Self > Pointer;
37  typedef SmartPointer< const Self > ConstPointer;
38 
40  itkTypeMacro( RescaleImageUsingHistogramPercentilesFilter, ImageToImageFilter );
41 
43  itkNewMacro(Self);
44 
46  itkStaticConstMacro(ImageDimension, unsigned int,
47  TInputImage::ImageDimension);
48 
50  typedef TInputImage InputImageType;
51  typedef typename InputImageType::Pointer InputImagePointer;
52  typedef typename InputImageType::ConstPointer InputImageConstPointer;
55  typedef typename InputImageType::SpacingType InputImageSpacingType;
56  typedef typename InputImageType::PointType InputImagePointType;
57 
58  typedef typename NumericTraits<InputImagePixelType>::RealType RealType;
59 
61  typedef TOutputImage OutputImageType;
62  typedef typename OutputImageType::Pointer OutputImagePointer;
66  typedef typename OutputImageType::PointType OutputImagePointType;
67 
68  typedef OutputImagePointType OriginType;
69 
71  void SetDebug(bool b) { itk::Object::SetDebug(b); }
73  void DebugOn() { this->SetDebug(true); }
75  void DebugOff() { this->SetDebug(false); }
76 
78  void SetVerbose(bool b) { m_FlgVerbose = b; }
80  void VerboseOn() { this->SetVerbose(true); }
82  void VerboseOff() { this->SetVerbose(false); }
83 
85  void ClipTheOutput() { m_FlgClipTheOutput = true; }
86 
88  itkSetMacro( InLowerPercentile, RealType );
90  itkGetMacro( InLowerPercentile, RealType );
91 
93  itkSetMacro( InUpperPercentile, RealType );
95  itkGetMacro( InUpperPercentile, RealType );
96 
98  itkSetMacro( OutLowerLimit, RealType );
100  itkGetMacro( OutLowerLimit, RealType );
101 
103  itkSetMacro( OutUpperLimit, RealType );
105  itkGetMacro( OutUpperLimit, RealType );
106 
107 
108 #ifdef ITK_USE_CONCEPT_CHECKING
109 
110  itkConceptMacro(InputHasNumericTraitsCheck,
111  (Concept::HasNumericTraits<InputImagePixelType>));
112  itkConceptMacro(OutputHasPixelTraitsCheck,
113  (Concept::HasPixelTraits<OutputImagePixelType>));
115 #endif
116 
117 
118 protected:
121  void PrintSelf(std::ostream& os, Indent indent) const;
122 
124  virtual void GenerateData(void);
125 
128 
131 
136 
138  RealType m_OutLowerLimit;
140  RealType m_OutUpperLimit;
141 
142 
143 
144 private:
145  RescaleImageUsingHistogramPercentilesFilter(const Self&); //purposely not implemented
146  void operator=(const Self&); //purposely not implemented
147 };
148 
149 } // end namespace itk
150 
151 #ifndef ITK_MANUAL_INSTANTIATION
152 #include "itkRescaleImageUsingHistogramPercentilesFilter.txx"
153 #endif
154 
155 #endif
bool m_FlgClipTheOutput
Clip the output image to the output limits.
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:130
NumericTraits< InputImagePixelType >::RealType RealType
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:58
SmartPointer< Self > Pointer
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:36
InputImageType::Pointer InputImagePointer
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:51
OutputImageType::PointType OutputImagePointType
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:66
InputImageType::PixelType InputImagePixelType
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:54
TOutputImage OutputImageType
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:61
SmartPointer< const Self > ConstPointer
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:37
Filter to rescale an image, with the input limits being specified as percentiles of the input image h...
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:29
RealType m_InUpperPercentile
The upper percentile for the input image range.
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:135
void SetVerbose(bool b)
Set the verbose output.
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:78
Definition: niftkITKAffineResampleImage.cxx:74
ImageType::IndexType IndexType
Definition: niftkMakeLapUSProbeBasicModel.cxx:32
GLdouble GLdouble GLdouble b
Definition: glew.h:7885
OutputImageType::IndexType OutputImageIndexType
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:65
OutputImageType::PixelType OutputImagePixelType
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:64
TInputImage InputImageType
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:50
InputImageType::PointType InputImagePointType
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:56
float PixelType
Definition: niftkBreastDCEandADC.cxx:88
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
void ClipTheOutput()
Clip the output image to the output limits.
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:85
InputImageType::ConstPointer InputImageConstPointer
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:52
RealType m_OutLowerLimit
The lower limit for the output image range.
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:138
RescaleImageUsingHistogramPercentilesFilter Self
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:34
OutputImageType::Pointer OutputImagePointer
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:62
RealType m_InLowerPercentile
The lower percentile for the input image range.
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:133
bool m_FlgVerbose
Flag indicating verbsoe output.
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:127
void DebugOff()
Set debugging output off.
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:75
ImageToImageFilter< TInputImage, TOutputImage > Superclass
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:35
RealType m_OutUpperLimit
The upper limit for the output image range.
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:140
void VerboseOff()
Set verbose output off.
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:82
OutputImageType::RegionType OutputImageRegionType
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:63
void VerboseOn()
Set verbose output on.
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:80
OutputImagePointType OriginType
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:68
InputImageType::SpacingType InputImageSpacingType
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:55
void DebugOn()
Set debugging output on.
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:73
void SetDebug(bool b)
Set the debugging output.
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:71
InputImageType::RegionType InputImageRegionType
Definition: itkRescaleImageUsingHistogramPercentilesFilter.h:53