18 #ifndef itkGPUBinaryThresholdImageFilter_h
19 #define itkGPUBinaryThresholdImageFilter_h
32 template <
typename TInput,
typename TOutput>
40 m_OutsideValue = TOutput{};
49 m_LowerThreshold = thresh;
54 m_UpperThreshold = thresh;
59 m_InsideValue = value;
64 m_OutsideValue = value;
72 KernelManager->SetKernelArg(KernelHandle, 0,
sizeof(TInput), &(m_LowerThreshold));
73 KernelManager->SetKernelArg(KernelHandle, 1,
sizeof(TInput), &(m_UpperThreshold));
74 KernelManager->SetKernelArg(KernelHandle, 2,
sizeof(TOutput), &(m_InsideValue));
75 KernelManager->SetKernelArg(KernelHandle, 3,
sizeof(TOutput), &(m_OutsideValue));
81 TInput m_LowerThreshold{};
82 TInput m_UpperThreshold{};
83 TOutput m_InsideValue{};
84 TOutput m_OutsideValue{};
98 template <
typename TInputImage,
typename TOutputImage>
103 Functor::GPUBinaryThreshold<typename TInputImage::PixelType, typename TOutputImage::PixelType>,
104 BinaryThresholdImageFilter<TInputImage, TOutputImage>>
134 itkGetOpenCLSourceFromKernelMacro(GPUBinaryThresholdImageFilterKernel);
147 GPUGenerateData()
override;
175 return "A Factory for GPUBinaryThresholdImageFilter";
180 itkFactorylessNewMacro(
Self);
195 #define OverrideThresholdFilterTypeMacro(ipt, opt, dm) \
197 using InputImageType = itk::Image<ipt, dm>; \
198 using OutputImageType = itk::Image<opt, dm>; \
199 this->RegisterOverride( \
200 typeid(itk::BinaryThresholdImageFilter<InputImageType, OutputImageType>).name(), \
201 typeid(itk::GPUBinaryThresholdImageFilter<InputImageType, OutputImageType>).name(), \
202 "GPU Binary Threshold Image Filter Override", \
204 itk::CreateObjectFunction<GPUBinaryThresholdImageFilter<InputImageType, OutputImageType>>::New()); \
206 ITK_MACROEND_NOOP_STATEMENT
239 #ifndef ITK_MANUAL_INSTANTIATION
240 # include "itkGPUBinaryThresholdImageFilter.hxx"