18 #ifndef itkCannyEdgeDetectionImageFilter_h
19 #define itkCannyEdgeDetectionImageFilter_h
32 template<
typename TValue >
86 template<
typename TInputImage,
typename TOutputImage >
137 static constexpr
unsigned int ImageDimension = TInputImage::ImageDimension;
138 static constexpr
unsigned int OutputImageDimension = TOutputImage::ImageDimension;
145 itkGetConstMacro(Variance,
const ArrayType);
151 itkGetConstMacro(MaximumError,
const ArrayType);
157 for (
unsigned int i = 0; i < TInputImage::ImageDimension; i++ )
173 for (
unsigned int i = 0; i < TInputImage::ImageDimension; i++ )
177 m_MaximumError.Fill(v);
195 itkSetMacro(UpperThreshold, OutputImagePixelType);
196 itkGetConstMacro(UpperThreshold, OutputImagePixelType);
198 itkSetMacro(LowerThreshold, OutputImagePixelType);
199 itkGetConstMacro(LowerThreshold, OutputImagePixelType);
203 return this->m_MultiplyImageFilter->GetOutput();
206 #ifdef ITK_USE_CONCEPT_CHECKING
223 void PrintSelf(std::ostream & os,
Indent indent)
const override;
225 void GenerateData()
override;
227 using GaussianImageFilterType =
236 void AllocateUpdateBuffer();
239 void HysteresisThresholding();
281 std::slice m_ComputeCannyEdgeSlice[ImageDimension];
293 #ifndef ITK_MANUAL_INSTANTIATION
294 #include "itkCannyEdgeDetectionImageFilter.hxx"
A function object that determines a neighborhood of values at an image boundary according to a Neuman...
Light weight base class for most itk classes.
unsigned long SizeValueType
A NeighborhoodOperator for taking an n-th order derivative at a pixel.
DerivativeOperator< OutputImagePixelType, Self::ImageDimension > m_ComputeCannyEdge2ndDerivativeOper
void SetVariance(const typename ArrayType::ValueType v)
typename ListType::Pointer ListPointerType
OutputImagePixelType m_LowerThreshold
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
ListNodeStorageType::Pointer m_NodeStore
typename ImageType::SizeValueType SizeValueType
GaussianImageFilterType::Pointer m_GaussianFilter
typename OutputImageType::PixelType OutputImagePixelType
typename InputImageType::PixelType InputImagePixelType
OutputImagePixelType m_UpperThreshold
MultiplyImageFilterType::Pointer m_MultiplyImageFilter
DerivativeOperator< OutputImagePixelType, Self::ImageDimension > m_ComputeCannyEdge1stDerivativeOper
typename OutputImageType::RegionType OutputImageRegionType
ImageBaseType::IndexType IndexType
ImageType OutputImageType
OutputImageType * GetNonMaximumSuppressionImage()
bool NotExactlyEquals(const TInput1 &x1, const TInput2 &x2)
OutputImageType::Pointer m_UpdateBuffer1
typename ImageType::IndexType IndexType
typename InputImageType::RegionType InputImageRegionType
Base class for filters that take an image as input and produce an image as output.
Control indentation during Print() invocation.
Pixel-wise multiplication of two images.
ImageBaseType::RegionType RegionType
A very simple linked list that is used to manage nodes in a layer of a sparse field level-set solver...
#define itkConceptMacro(name, concept)
A specialized memory management object for allocating and destroying contiguous blocks of objects...
void SetMaximumError(const typename ArrayType::ValueType v)
Blurs an image by separable convolution with discrete gaussian kernels. This filter performs Gaussian...
OutputImageType * m_OutputImage
This filter is an implementation of a Canny edge detector for scalar-valued images.
ListPointerType m_NodeList