18#ifndef itkRecursiveSeparableImageFilter_h
19#define itkRecursiveSeparableImageFilter_h
47template <
typename TInputImage,
typename TOutputImage = TInputImage>
84 itkGetConstMacro(Direction,
unsigned int);
87 itkSetMacro(Direction,
unsigned int);
173 template <
typename T1,
typename T2>
185 out = a1 * b1 + a2 * b2 + a3 * b3 + a4 * b4;
189 template <
typename T1,
typename T2>
201 const unsigned int sz = a1.GetSize();
202 if (sz != out.GetSize())
206 for (
unsigned int i = 0; i < sz; ++i)
208 out[i] = a1[i] * b1 + a2[i] * b2 + a3[i] * b3 + a4[i] * b4;
212 template <
typename T1,
typename T2>
224 out -= a1 * b1 + a2 * b2 + a3 * b3 + a4 * b4;
227 template <
typename T1,
typename T2>
239 const unsigned int sz = a1.GetSize();
240 if (sz != out.GetSize())
244 for (
unsigned int i = 0; i < sz; ++i)
246 out[i] -= a1[i] * b1 + a2[i] * b2 + a3[i] * b3 + a4[i] * b4;
257#ifndef ITK_MANUAL_INSTANTIATION
258# include "itkRecursiveSeparableImageFilter.hxx"
Base class for all data objects in ITK.
InPlaceImageFilter()=default
Control indentation during Print() invocation.
typename NumericTraits< InputPixelType >::ScalarRealType ScalarRealType
typename TInputImage::ConstPointer InputImageConstPointer
void EnlargeOutputRequestedRegion(DataObject *output) override
void BeforeThreadedGenerateData() override
void DynamicThreadedGenerateData(const OutputImageRegionType &) override
TOutputImage OutputImageType
RecursiveSeparableImageFilter()
static void MathEMAMAMAM(VariableLengthVector< T1 > &out, const VariableLengthVector< T1 > &a1, const T2 &b1, const VariableLengthVector< T1 > &a2, const T2 &b2, const VariableLengthVector< T1 > &a3, const T2 &b3, const VariableLengthVector< T1 > &a4, const T2 &b4)
void GenerateData() override
void SetInputImage(const TInputImage *)
static void MathEMAMAMAM(T1 &out, const T1 &a1, const T2 &b1, const T1 &a2, const T2 &b2, const T1 &a3, const T2 &b3, const T1 &a4, const T2 &b4)
virtual void SetUp(ScalarRealType spacing)=0
InPlaceImageFilter< TInputImage, TOutputImage > Superclass
typename TInputImage::Pointer InputImagePointer
TInputImage InputImageType
typename NumericTraits< InputPixelType >::RealType RealType
static void MathSMAMAMAM(T1 &out, const T1 &a1, const T2 &b1, const T1 &a2, const T2 &b2, const T1 &a3, const T2 &b3, const T1 &a4, const T2 &b4)
void FilterDataArray(RealType *outs, const RealType *data, RealType *scratch, SizeValueType ln) const
SmartPointer< Self > Pointer
SmartPointer< const Self > ConstPointer
typename TOutputImage::RegionType OutputImageRegionType
RecursiveSeparableImageFilter Self
void PrintSelf(std::ostream &os, Indent indent) const override
~RecursiveSeparableImageFilter() override=default
const TInputImage * GetInputImage()
static void MathSMAMAMAM(VariableLengthVector< T1 > &out, const VariableLengthVector< T1 > &a1, const T2 &b1, const VariableLengthVector< T1 > &a2, const T2 &b2, const VariableLengthVector< T1 > &a3, const T2 &b3, const VariableLengthVector< T1 > &a4, const T2 &b4)
typename TInputImage::PixelType InputPixelType
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned long SizeValueType