19 #ifndef rtkForwardDifferenceGradientImageFilter_h 20 #define rtkForwardDifferenceGradientImageFilter_h 22 #include <itkImageToImageFilter.h> 23 #include <itkCovariantVector.h> 24 #include <itkImageRegionIterator.h> 50 template <
typename TInputImage,
51 typename TOperatorValueType = float,
52 typename TOuputValue = float,
53 typename TOuputImage =
54 itk::Image<itk::CovariantVector<TOuputValue, TInputImage::ImageDimension>, TInputImage::ImageDimension>>
56 :
public itk::ImageToImageFilter<TInputImage, TOuputImage>
62 static constexpr
unsigned int InputImageDimension = TInputImage::ImageDimension;
63 static constexpr
unsigned int OutputImageDimension = TOuputImage::ImageDimension;
75 using Superclass = itk::ImageToImageFilter<InputImageType, OutputImageType>;
99 GenerateInputRequestedRegion()
override;
106 this->SetUseImageSpacing(
true);
114 this->SetUseImageSpacing(
false);
120 itkGetConstMacro(UseImageSpacing,
bool);
127 SetDimensionsProcessed(
bool * DimensionsProcessed);
131 OverrideBoundaryCondition(itk::ImageBoundaryCondition<TInputImage> * boundaryCondition);
134 itkConceptMacro(InputConvertibleToOutputCheck, (itk::Concept::Convertible<InputPixelType, OutputValueType>));
135 itkConceptMacro(OutputHasNumericTraitsCheck, (itk::Concept::HasNumericTraits<OutputValueType>));
149 itkGetConstMacro(UseImageDirection,
bool);
150 itkBooleanMacro(UseImageDirection);
157 PrintSelf(std::ostream & os, itk::Indent indent)
const override;
170 DynamicThreadedGenerateData(
const OutputImageRegionType & outputRegionForThread)
override;
173 GenerateOutputInformation()
override;
194 template <
typename T>
198 it.Value() = gradient;
211 bool m_DimensionsProcessed[TInputImage::ImageDimension];
218 #ifndef ITK_MANUAL_INSTANTIATION 219 # include "rtkForwardDifferenceGradientImageFilter.hxx" typename InputImageType::PixelType InputPixelType
itk::ImageToImageFilter< InputImageType, OutputImageType > Superclass
void SetUseImageSpacingOn()
typename InputImageType::Pointer InputImagePointer
bool m_IsBoundaryConditionOverriden
typename OutputImageType::RegionType OutputImageRegionType
TInputImage InputImageType
itk::ImageBoundaryCondition< TInputImage, TInputImage > * m_BoundaryCondition
itk::SmartPointer< Self > Pointer
#define itkSetMacro(name, type)
Computes the gradient of an image using forward difference.
void SetUseImageSpacingOff()
itk::SmartPointer< const Self > ConstPointer
TOperatorValueType OperatorValueType
TOuputValue OutputValueType
typename OutputImageType::Pointer OutputImagePointer
void SetOutputPixel(itk::ImageRegionIterator< T > &it, CovariantVectorType &gradient)
typename OutputImageType::PixelType CovariantVectorType
TOuputImage OutputImageType