Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
US/USHardwareDiPhAS/ITKUltrasound/itkAnalyticSignalImageFilter.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 /*=========================================================================
13  *
14  * Copyright Insight Software Consortium
15  *
16  * Licensed under the Apache License, Version 2.0 (the "License");
17  * you may not use this file except in compliance with the License.
18  * You may obtain a copy of the License at
19  *
20  * http://www.apache.org/licenses/LICENSE-2.0.txt
21  *
22  * Unless required by applicable law or agreed to in writing, software
23  * distributed under the License is distributed on an "AS IS" BASIS,
24  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
25  * See the License for the specific language governing permissions and
26  * limitations under the License.
27  *
28  *=========================================================================*/
29 #ifndef itkAnalyticSignalImageFilter_h
30 #define itkAnalyticSignalImageFilter_h
31 
32 #include <complex>
33 
36 #include "itkImageRegionSplitterDirection.h"
37 
38 namespace itk
39 {
66 template< typename TInputImage, typename TOutputImage >
67 class AnalyticSignalImageFilter:
68  public ImageToImageFilter< TInputImage, TOutputImage >
69 {
70 public:
72  typedef TInputImage InputImageType;
73  typedef TOutputImage OutputImageType;
74  typedef typename OutputImageType::RegionType OutputImageRegionType;
75 
76  itkStaticConstMacro(ImageDimension, unsigned int, InputImageType::ImageDimension);
77 
79  typedef ImageToImageFilter< InputImageType, OutputImageType > Superclass;
82 
83  itkTypeMacro( AnalyticSignalImageFilter, ImageToImageFilter );
84  itkNewMacro( Self );
85 
87  virtual unsigned int GetDirection() const
88  {
89  return this->m_FFTRealToComplexFilter->GetDirection();
90  }
91 
93  virtual void SetDirection( const unsigned int direction )
94  {
95  if( this->m_FFTRealToComplexFilter->GetDirection() != direction )
96  {
97  this->m_FFTRealToComplexFilter->SetDirection( direction );
98  this->m_FFTComplexToComplexFilter->SetDirection( direction );
99  this->Modified();
100  }
101  }
102 
103 protected:
106 
107  void PrintSelf(std::ostream& os, Indent indent) const ITK_OVERRIDE;
108 
109  // These behave like their analogs in FFT1DRealToComplexConjugateImageFilter.
110  virtual void GenerateInputRequestedRegion() ITK_OVERRIDE;
111  virtual void EnlargeOutputRequestedRegion(DataObject *output) ITK_OVERRIDE;
112 
113  virtual void BeforeThreadedGenerateData() ITK_OVERRIDE;
114  virtual void ThreadedGenerateData( const OutputImageRegionType& outputRegionForThread, ThreadIdType threadId ) ITK_OVERRIDE;
115  virtual void AfterThreadedGenerateData() ITK_OVERRIDE;
116 
119 
122 
125  virtual const ImageRegionSplitterBase* GetImageRegionSplitter() const ITK_OVERRIDE;
126 
127 private:
128  AnalyticSignalImageFilter( const Self& ); // purposely not implemented
129  void operator=( const Self& ); // purposely not implemented
130 
131  ImageRegionSplitterDirection::Pointer m_ImageRegionSplitter;
132 };
133 }
134 
135 #ifndef ITK_MANUAL_INSTANTIATION
136 #include "itkAnalyticSignalImageFilter.hxx"
137 #endif
138 
139 #endif // itkAnalyticSignalImageFilter_h
void EnlargeOutputRequestedRegion(DataObject *output) ITK_OVERRIDE
void BeforeThreadedGenerateData() ITK_OVERRIDE
Perform the Fast Fourier Transform, in the forward direction, with real inputs, but only along one di...
Perform the Fast Fourier Transform, complex input to complex output, but only along one dimension...
const ImageRegionSplitterBase * GetImageRegionSplitter() const ITK_OVERRIDE
FFT1DComplexToComplexImageFilter< OutputImageType, OutputImageType > FFTComplexToComplexType
void GenerateInputRequestedRegion() ITK_OVERRIDE
void AfterThreadedGenerateData() ITK_OVERRIDE
itkStaticConstMacro(ImageDimension, unsigned int, InputImageType::ImageDimension)
void ThreadedGenerateData(const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId) ITK_OVERRIDE
FFT1DRealToComplexConjugateImageFilter< InputImageType, OutputImageType > FFTRealToComplexType
void PrintSelf(std::ostream &os, Indent indent) const ITK_OVERRIDE
ImageToImageFilter< InputImageType, OutputImageType > Superclass