18 #ifndef itkCannyEdgeDetectionImageFilter_h
19 #define itkCannyEdgeDetectionImageFilter_h
32 template<
typename TValue >
86 template<
typename TInputImage,
typename TOutputImage >
136 itkStaticConstMacro(ImageDimension,
unsigned int,
137 TInputImage::ImageDimension);
138 itkStaticConstMacro(OutputImageDimension,
unsigned int,
139 TOutputImage::ImageDimension);
147 itkGetConstMacro(Variance,
const ArrayType);
153 itkGetConstMacro(MaximumError,
const ArrayType);
159 for (
unsigned int i = 0; i < TInputImage::ImageDimension; i++ )
175 for (
unsigned int i = 0; i < TInputImage::ImageDimension; i++ )
179 m_MaximumError.Fill(v);
197 itkSetMacro(UpperThreshold, OutputImagePixelType);
198 itkGetConstMacro(UpperThreshold, OutputImagePixelType);
200 itkSetMacro(LowerThreshold, OutputImagePixelType);
201 itkGetConstMacro(LowerThreshold, OutputImagePixelType);
205 return this->m_MultiplyImageFilter->GetOutput();
215 virtual void GenerateInputRequestedRegion() ITK_OVERRIDE;
217 #ifdef ITK_USE_CONCEPT_CHECKING
234 void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
236 void GenerateData() ITK_OVERRIDE;
246 virtual ~CannyEdgeDetectionImageFilter() ITK_OVERRIDE {}
255 void AllocateUpdateBuffer();
258 void HysteresisThresholding();
266 void Compute2ndDerivative();
291 Compute2ndDerivativeThreaderCallback(
void *arg);
303 void Compute2ndDerivativePos();
317 Compute2ndDerivativePosThreaderCallback(
void *arg);
344 std::slice m_ComputeCannyEdgeSlice[ImageDimension];
356 #ifndef ITK_MANUAL_INSTANTIATION
357 #include "itkCannyEdgeDetectionImageFilter.hxx"
FixedArray< double, itkGetStaticConstMacro(ImageDimension) > ArrayType
A function object that determines a neighborhood of values at an image boundary according to a Neuman...
TInputImage::RegionType InputImageRegionType
Light weight base class for most itk classes.
SparseFieldLayer< ListNodeType > ListType
TInputImage::IndexType IndexType
TInputImage::SizeValueType SizeValueType
ObjectStore< ListNodeType > ListNodeStorageType
CannyEdgeDetectionImageFilter * Filter
ConstNeighborhoodIterator< OutputImageType, DefaultBoundaryConditionType > NeighborhoodType
void SetVariance(const typename ArrayType::ValueType v)
DerivativeOperator< OutputImagePixelType, itkGetStaticConstMacro(ImageDimension) > m_ComputeCannyEdge1stDerivativeOper
OutputImagePixelType m_LowerThreshold
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
unsigned long SizeValueType
#define ITK_THREAD_RETURN_TYPE
ImageToImageFilter< TInputImage, TOutputImage > Superclass
ListNodeStorageType::Pointer m_NodeStore
GaussianImageFilterType::Pointer m_GaussianFilter
OutputImagePixelType m_UpperThreshold
TOutputImage OutputImageType
SmartPointer< Self > Pointer
MultiplyImageFilterType::Pointer m_MultiplyImageFilter
ListType::Pointer ListPointerType
DerivativeOperator< OutputImagePixelType, itkGetStaticConstMacro(ImageDimension) > m_ComputeCannyEdge2ndDerivativeOper
OutputImageType * GetNonMaximumSuppressionImage()
ZeroFluxNeumannBoundaryCondition< OutputImageType > DefaultBoundaryConditionType
SmartPointer< const Self > ConstPointer
OutputImageType::PixelType OutputImagePixelType
TInputImage::PixelType InputImagePixelType
bool NotExactlyEquals(const TInput1 &x1, const TInput2 &x2)
unsigned int ThreadIdType
TOutputImage::RegionType OutputImageRegionType
OutputImageType::Pointer m_UpdateBuffer1
CannyEdgeDetectionImageFilter Self
Base class for filters that take an image as input and produce an image as output.
OutputImageType::RegionType OutputImageRegionType
Control indentation during Print() invocation.
Pixel-wise multiplication of two images.
ListNode< IndexType > ListNodeType
ImageType OutputImageType
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...
TInputImage InputImageType
void SetMaximumError(const typename ArrayType::ValueType v)
Blurs an image by separable convolution with discrete gaussian kernels. This filter performs Gaussian...
TOutputImage::PixelType OutputImagePixelType
OutputImageType * m_OutputImage
ImageBaseType::IndexType IndexType
This filter is an implementation of a Canny edge detector for scalar-valued images.
ListPointerType m_NodeList