ITK
5.0.0
Insight Segmentation and Registration Toolkit
|
#include <itkUnaryFrequencyDomainFilter.h>
Performs a unary operation on a frequency domain image.
A frequency filtering functor needs to be supplied via one of SetFunctor() overloads. The functor should take FrequencyIteratorType reference as its only parameter. If functor configurability is required, those parameters should be passed directly to the functor at the place of definition.
Filters in the module ITKImageFrequency work with input images in the frequency domain. This filter is templated over a TFrequencyIterator depending on the frequency layout of the input image.
Images in the dual space can be acquired experimentally, from scattering experiments or other techniques. In that case use FrequencyImageRegionIteratorWithIndex because the layout of dual space images is the same as spatial domain images.
Frequency-domain images can be computed from any spatial-domain applying a Fourier Transform. If ForwardFFTImageFilter was used, template this filter with the FrequencyFFTLayoutImageRegionIteratorWithIndex. Please note that FrequencyFFTLayoutImageRegionIteratorWithIndex requires a full FFT, and is not compatible with the Hermitian optimization.
To use this filter with Hermitian (halved-frequency) FFTs, use FrequencyHalfHermitianFFTLayoutImageRegionIteratorWithIndex or its const version.
If the output of the FFT is shifted, for example after applying FFTShiftImageFilter, use FrequencyShiftedFFTLayoutImageRegionIteratorWithIndex.
Definition at line 61 of file itkUnaryFrequencyDomainFilter.h.
Public Types | |
using | ConstPointer = SmartPointer< const Self > |
using | ConstRefFunctionType = double(const FrequencyIteratorType &) |
using | FrequencyIteratorType = TFrequencyIterator |
using | FrequencyValueType = typename FrequencyIteratorType::FrequencyValueType |
using | ImageConstPointer = typename ImageType::ConstPointer |
using | ImagePointer = typename ImageType::Pointer |
using | ImageRegionType = typename TImageType::RegionType |
using | ImageType = TImageType |
using | IndexType = typename TImageType::IndexType |
using | PixelType = typename TImageType::PixelType |
using | Pointer = SmartPointer< Self > |
using | Self = UnaryFrequencyDomainFilter |
using | Superclass = InPlaceImageFilter< TImageType, TImageType > |
using | ValueFunctionType = void(FrequencyIteratorType &) |
Public Types inherited from itk::InPlaceImageFilter< TImageType, TImageType > | |
using | ConstPointer = SmartPointer< const Self > |
using | InputImageConstPointer = typename InputImageType::ConstPointer |
using | InputImagePixelType = typename InputImageType::PixelType |
using | InputImagePointer = typename InputImageType::Pointer |
using | InputImageRegionType = typename InputImageType::RegionType |
using | InputImageType = TImageType |
using | OutputImagePixelType = typename Superclass::OutputImagePixelType |
using | OutputImagePointer = typename Superclass::OutputImagePointer |
using | OutputImageRegionType = typename Superclass::OutputImageRegionType |
using | OutputImageType = typename Superclass::OutputImageType |
using | Pointer = SmartPointer< Self > |
using | Self = InPlaceImageFilter |
using | Superclass = ImageToImageFilter< TImageType, TImageType > |
Public Types inherited from itk::ImageToImageFilter< TImageType, TImageType > | |
using | ConstPointer = SmartPointer< const Self > |
using | InputImageConstPointer = typename InputImageType::ConstPointer |
using | InputImagePixelType = typename InputImageType::PixelType |
using | InputImagePointer = typename InputImageType::Pointer |
using | InputImageRegionType = typename InputImageType::RegionType |
using | InputImageType = TImageType |
using | OutputImagePixelType = typename Superclass::OutputImagePixelType |
using | OutputImageRegionType = typename Superclass::OutputImageRegionType |
using | Pointer = SmartPointer< Self > |
using | Self = ImageToImageFilter |
using | Superclass = ImageSource< TImageType > |
Public Types inherited from itk::ImageSource< TImageType > | |
using | ConstPointer = SmartPointer< const Self > |
using | DataObjectIdentifierType = Superclass::DataObjectIdentifierType |
using | DataObjectPointer = DataObject::Pointer |
using | DataObjectPointerArraySizeType = Superclass::DataObjectPointerArraySizeType |
using | OutputImagePixelType = typename OutputImageType::PixelType |
using | OutputImagePointer = typename OutputImageType::Pointer |
using | OutputImageRegionType = typename OutputImageType::RegionType |
using | OutputImageType = TImageType |
using | Pointer = SmartPointer< Self > |
using | Self = ImageSource |
using | Superclass = ProcessObject |
Public Types inherited from itk::ProcessObject | |
using | ConstPointer = SmartPointer< const Self > |
using | DataObjectIdentifierType = DataObject::DataObjectIdentifierType |
using | DataObjectPointer = DataObject::Pointer |
using | DataObjectPointerArray = std::vector< DataObjectPointer > |
using | DataObjectPointerArraySizeType = DataObjectPointerArray::size_type |
using | MultiThreaderType = MultiThreaderBase |
using | NameArray = std::vector< DataObjectIdentifierType > |
using | Pointer = SmartPointer< Self > |
using | Self = ProcessObject |
using | Superclass = Object |
Public Types inherited from itk::Object | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = Object |
using | Superclass = LightObject |
Public Types inherited from itk::LightObject | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = LightObject |
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from itk::Object | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool flag) |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static constexpr unsigned int | ImageDimension = TImageType::ImageDimension |
Static Public Attributes inherited from itk::InPlaceImageFilter< TImageType, TImageType > | |
static constexpr unsigned int | InputImageDimension |
static constexpr unsigned int | OutputImageDimension |
Static Public Attributes inherited from itk::ImageToImageFilter< TImageType, TImageType > | |
static constexpr unsigned int | InputImageDimension |
static constexpr unsigned int | OutputImageDimension |
Static Public Attributes inherited from itk::ImageSource< TImageType > | |
static constexpr unsigned int | OutputImageDimension |
Private Attributes | |
bool | m_ActualXDimensionIsOdd {false} |
std::function< void(const ImageRegionType &) > | m_DynamicThreadedGenerateDataFunction |
Additional Inherited Members | |
Protected Types inherited from itk::ImageToImageFilter< TImageType, TImageType > | |
using | InputToOutputRegionCopierType = ImageToImageFilterDetail::ImageRegionCopier< Self::OutputImageDimension, Self::InputImageDimension > |
using | OutputToInputRegionCopierType = ImageToImageFilterDetail::ImageRegionCopier< Self::InputImageDimension, Self::OutputImageDimension > |
Static Protected Member Functions inherited from itk::ImageSource< TImageType > | |
static const ImageRegionSplitterBase * | GetGlobalDefaultSplitter () |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ThreaderCallback (void *arg) |
Protected Attributes inherited from itk::ImageSource< TImageType > | |
bool | m_DynamicMultiThreading |
Protected Attributes inherited from itk::ProcessObject | |
TimeStamp | m_OutputInformationMTime |
bool | m_Updating |
Protected Attributes inherited from itk::LightObject | |
std::atomic< int > | m_ReferenceCount |
using itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::ConstPointer = SmartPointer<const Self> |
Definition at line 71 of file itkUnaryFrequencyDomainFilter.h.
using itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::ConstRefFunctionType = double( const FrequencyIteratorType& ) |
Returns factor with which the current frequency should be multiplied.
Definition at line 111 of file itkUnaryFrequencyDomainFilter.h.
using itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::FrequencyIteratorType = TFrequencyIterator |
Frequency Iterator types
Definition at line 97 of file itkUnaryFrequencyDomainFilter.h.
using itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::FrequencyValueType = typename FrequencyIteratorType::FrequencyValueType |
Definition at line 98 of file itkUnaryFrequencyDomainFilter.h.
using itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::ImageConstPointer = typename ImageType::ConstPointer |
Definition at line 82 of file itkUnaryFrequencyDomainFilter.h.
using itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::ImagePointer = typename ImageType::Pointer |
Definition at line 81 of file itkUnaryFrequencyDomainFilter.h.
using itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::ImageRegionType = typename TImageType::RegionType |
Typedef to describe the image region type.
Definition at line 87 of file itkUnaryFrequencyDomainFilter.h.
using itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::ImageType = TImageType |
Typedef to images
Definition at line 80 of file itkUnaryFrequencyDomainFilter.h.
using itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::IndexType = typename TImageType::IndexType |
Definition at line 83 of file itkUnaryFrequencyDomainFilter.h.
using itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::PixelType = typename TImageType::PixelType |
Definition at line 84 of file itkUnaryFrequencyDomainFilter.h.
using itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::Pointer = SmartPointer<Self> |
Definition at line 70 of file itkUnaryFrequencyDomainFilter.h.
using itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::Self = UnaryFrequencyDomainFilter |
Standard class type alias.
Definition at line 68 of file itkUnaryFrequencyDomainFilter.h.
using itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::Superclass = InPlaceImageFilter<TImageType, TImageType> |
Definition at line 69 of file itkUnaryFrequencyDomainFilter.h.
using itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::ValueFunctionType = void( FrequencyIteratorType& ) |
Directly modifies the frequency as needed.
Definition at line 114 of file itkUnaryFrequencyDomainFilter.h.
|
protected |
|
virtual |
Set to true when the you are dealing with images in the frequency domain that have been computed using RealToHalfHermitianFFT, and the original image in the spatial domain was odd. Only needed when using HermitianFrequencyIterator and the original image was odd.
|
virtual |
Set to true when the you are dealing with images in the frequency domain that have been computed using RealToHalfHermitianFFT, and the original image in the spatial domain was odd. Only needed when using HermitianFrequencyIterator and the original image was odd.
|
virtual |
Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.
Reimplemented from itk::Object.
|
overrideprotected |
UnaryFrequencyDomainFilter is implemented as a multithreaded filter. Therefore, this implementation provides a DynamicThreadedGenerateData() routine which is called for each processing thread.
The template method is instantiated by the SetFunctor method, and the generated code is run during the update.
|
protected |
UnaryFrequencyDomainFilter is implemented as a multithreaded filter. Therefore, this implementation provides a DynamicThreadedGenerateData() routine which is called for each processing thread.
The template method is instantiated by the SetFunctor method, and the generated code is run during the update.
Referenced by itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::SetFunctor().
|
virtual |
Set to true when the you are dealing with images in the frequency domain that have been computed using RealToHalfHermitianFFT, and the original image in the spatial domain was odd. Only needed when using HermitianFrequencyIterator and the original image was odd.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::InPlaceImageFilter< TImageType, TImageType >.
Reimplemented in itk::FrequencyBandImageFilter< TImageType, TFrequencyIterator >.
|
static |
Method for creation through the object factory.
|
overrideprotectedvirtual |
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from itk::ProcessObject.
|
virtual |
Set to true when the you are dealing with images in the frequency domain that have been computed using RealToHalfHermitianFFT, and the original image in the spatial domain was odd. Only needed when using HermitianFrequencyIterator and the original image was odd.
|
inline |
The functor returns factor with which the current frequency should be multiplied.
Definition at line 118 of file itkUnaryFrequencyDomainFilter.h.
References itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::DynamicThreadedGenerateDataWithFunctor(), itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::m_DynamicThreadedGenerateDataFunction, and itk::Object::Modified().
|
inline |
The functor directly modifies the frequency as needed.
Definition at line 130 of file itkUnaryFrequencyDomainFilter.h.
References itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::DynamicThreadedGenerateDataWithFunctor(), itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::m_DynamicThreadedGenerateDataFunction, and itk::Object::Modified().
|
inline |
The functor returns factor with which the current frequency should be multiplied.
Definition at line 140 of file itkUnaryFrequencyDomainFilter.h.
References itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::DynamicThreadedGenerateDataWithFunctor(), itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::m_DynamicThreadedGenerateDataFunction, and itk::Object::Modified().
|
inline |
The functor directly modifies the frequency as needed.
Definition at line 152 of file itkUnaryFrequencyDomainFilter.h.
References itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::DynamicThreadedGenerateDataWithFunctor(), itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::m_DynamicThreadedGenerateDataFunction, and itk::Object::Modified().
|
inline |
Set the frequency functor by a "Functor Object"
The functor defines an operation done per scalar frequency. A single copy of the argument is created an used for all threads, so the functor must be concurrent thread-safe. The functor must a have an operator() method which accept arguments of FrequencyIteratorType&.
Definition at line 169 of file itkUnaryFrequencyDomainFilter.h.
References itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::DynamicThreadedGenerateDataWithFunctor(), itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::m_DynamicThreadedGenerateDataFunction, and itk::Object::Modified().
|
static |
Definition at line 89 of file itkUnaryFrequencyDomainFilter.h.
|
private |
Definition at line 199 of file itkUnaryFrequencyDomainFilter.h.
|
private |
Definition at line 197 of file itkUnaryFrequencyDomainFilter.h.
Referenced by itk::UnaryFrequencyDomainFilter< TImageType, TFrequencyIterator >::SetFunctor().