18#ifndef itkCannyEdgeDetectionImageFilter_h
19#define itkCannyEdgeDetectionImageFilter_h
32template <
typename TValue>
85template <
typename TInputImage,
typename TOutputImage>
155 for (
unsigned int i = 0; i < TInputImage::ImageDimension; ++i)
172 for (
unsigned int i = 0; i < TInputImage::ImageDimension; ++i)
281#ifndef ITK_MANUAL_INSTANTIATION
282# include "itkCannyEdgeDetectionImageFilter.hxx"
typename TInputImage::PixelType InputImagePixelType
ListNodeStorageType::Pointer m_NodeStore
void SetMaximumError(const typename ArrayType::ValueType v)
~CannyEdgeDetectionImageFilter() override=default
ImageToImageFilter< TInputImage, TOutputImage > Superclass
typename TInputImage::SizeValueType SizeValueType
static constexpr unsigned int OutputImageDimension
std::slice m_ComputeCannyEdgeSlice[ImageDimension]
void ThreadedCompute2ndDerivative(const OutputImageRegionType &outputRegionForThread)
ZeroFluxNeumannBoundaryCondition< OutputImageType > DefaultBoundaryConditionType
void HysteresisThresholding()
OutputImageType::Pointer m_UpdateBuffer1
ListNode< IndexType > ListNodeType
ListPointerType m_NodeList
SparseFieldLayer< ListNodeType > ListType
GaussianImageFilterType::Pointer m_GaussianFilter
MultiplyImageFilter< OutputImageType, OutputImageType, OutputImageType > MultiplyImageFilterType
ObjectStore< ListNodeType > ListNodeStorageType
OutputImagePixelType ComputeCannyEdge(const NeighborhoodType &it, void *globalData)
OutputImagePixelType m_UpperThreshold
void SetVariance(const typename ArrayType::ValueType v)
FixedArray< double, Self::ImageDimension > ArrayType
OutputImageType * m_OutputImage
typename ListType::Pointer ListPointerType
OutputImageType * GetNonMaximumSuppressionImage()
typename TOutputImage::PixelType OutputImagePixelType
void ThreadedCompute2ndDerivativePos(const OutputImageRegionType &outputRegionForThread)
typename TInputImage::RegionType InputImageRegionType
MultiplyImageFilterType::Pointer m_MultiplyImageFilter
OutputImagePixelType m_LowerThreshold
typename TInputImage::IndexType IndexType
CannyEdgeDetectionImageFilter()
DerivativeOperator< OutputImagePixelType, Self::ImageDimension > m_ComputeCannyEdge1stDerivativeOper
DiscreteGaussianImageFilter< InputImageType, OutputImageType > GaussianImageFilterType
void GenerateData() override
typename TOutputImage::RegionType OutputImageRegionType
void FollowEdge(IndexType index, const OutputImageType *multiplyImageFilterOutput)
TOutputImage OutputImageType
TInputImage InputImageType
void PrintSelf(std::ostream &os, Indent indent) const override
DerivativeOperator< OutputImagePixelType, Self::ImageDimension > m_ComputeCannyEdge2ndDerivativeOper
void AllocateUpdateBuffer()
SmartPointer< Self > Pointer
ConstNeighborhoodIterator< OutputImageType, DefaultBoundaryConditionType > NeighborhoodType
CannyEdgeDetectionImageFilter Self
static constexpr unsigned int ImageDimension
SizeValueType m_Stride[ImageDimension]
SmartPointer< const Self > ConstPointer
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
A NeighborhoodOperator for taking an n-th order derivative at a pixel.
Blurs an image by separable convolution with discrete gaussian kernels. This filter performs Gaussian...
SmartPointer< Self > Pointer
Simulate a standard C array with copy semantics.
Control indentation during Print() invocation.
Pixel-wise multiplication of two images.
SmartPointer< Self > Pointer
A specialized memory management object for allocating and destroying contiguous blocks of objects.
SmartPointer< Self > Pointer
virtual void Modified() const
Implements transparent reference counting.
A very simple linked list that is used to manage nodes in a layer of a sparse field level-set solver.
SmartPointer< Self > Pointer
A function object that determines a neighborhood of values at an image boundary according to a Neuman...
#define itkConceptMacro(name, concept)
bool NotExactlyEquals(const TInput1 &x1, const TInput2 &x2)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....