18#ifndef itkIsoContourDistanceImageFilter_h
19#define itkIsoContourDistanceImageFilter_h
58template <
typename TInputImage,
typename TOutputImage>
77 using typename Superclass::InputImageType;
78 using typename Superclass::OutputImageType;
82 static constexpr unsigned int ImageDimension = TInputImage::ImageDimension;
83 static constexpr unsigned int OutputImageDimension = TOutputImage::ImageDimension;
87 using PixelType =
typename OutputImageType::PixelType;
123 itkSetMacro(NarrowBanding,
bool);
124 itkGetConstMacro(NarrowBanding,
bool);
125 itkBooleanMacro(NarrowBanding);
138#ifdef ITK_USE_CONCEPT_CHECKING
163 itkExceptionMacro(
"This class requires threadId so it must use classic multi-threading model");
195 const std::vector<OffsetValueType> & stride);
203 bool m_NarrowBanding{};
205 std::vector<RegionType> m_NarrowBandRegion{};
207 std::mutex m_Mutex{};
211#ifndef ITK_MANUAL_INSTANTIATION
212# include "itkIsoContourDistanceImageFilter.hxx"
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
Base class for all data objects in ITK.
Base class for all process objects that output image data.
typename OutputImageType::RegionType OutputImageRegionType
Base class for filters that take an image as input and produce an image as output.
Control indentation during Print() invocation.
Compute an approximate distance from an interpolated isocontour to the close grid points.
IsoContourDistanceImageFilter()
void ThreadedGenerateData(const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId) override
typename NarrowBandType::Iterator BandIterator
void BeforeThreadedGenerateData() override
~IsoContourDistanceImageFilter() override=default
typename InputImageType::SizeType InputSizeType
typename NarrowBandType::RegionType RegionType
typename OutputImageType::SizeType SizeType
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION ThreaderFullCallback(void *arg)
typename OutputImageType::IndexType IndexType
typename InputImageType::SpacingType InputSpacingType
typename NarrowBandType::ConstIterator ConstBandIterator
void ThreadedGenerateDataBand(const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId)
void DynamicThreadedGenerateData(const OutputImageRegionType &) override
void ThreadedGenerateDataFull(const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId)
void PrintSelf(std::ostream &os, Indent indent) const override
typename NumericTraits< InputPixelType >::RealType PixelRealType
typename NarrowBandType::Pointer NarrowBandPointer
NarrowBandPointer GetNarrowBand() const
void SetNarrowBand(NarrowBandType *ptr)
typename InputImageType::PixelType InputPixelType
void GenerateData() override
typename InputImageType::IndexType InputIndexType
typename OutputImageType::PixelType PixelType
void EnlargeOutputRequestedRegion(DataObject *) override
void GenerateInputRequestedRegion() override
void ComputeValue(const InputNeighbordIteratorType &inNeigIt, OutputNeighborhoodIteratorType &outNeigIt, unsigned int center, const std::vector< OffsetValueType > &stride)
typename NodeContainerType::const_iterator ConstIterator
typename NodeContainerType::iterator Iterator
Defines iteration of a local N-dimensional neighborhood of pixels across an itk::Image.
Define additional traits for native types such as int or float.
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
SmartPointer< Self > Pointer
#define itkConceptMacro(name, concept)
ImageBaseType::RegionType RegionType
ImageBaseType::IndexType IndexType
ImageBaseType::SizeType SizeType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned int ThreadIdType
itk::ITK_THREAD_RETURN_TYPE ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION