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);
149 itkGetConstMacro(MaximumError,
const ArrayType);
156 for (
unsigned int i = 0; i < TInputImage::ImageDimension; i++ )
172 for (
unsigned int i = 0; i < TInputImage::ImageDimension; i++ )
176 m_MaximumError.Fill(v);
194 itkSetMacro(UpperThreshold, OutputImagePixelType);
195 itkGetConstMacro(UpperThreshold, OutputImagePixelType);
197 itkSetMacro(LowerThreshold, OutputImagePixelType);
198 itkGetConstMacro(LowerThreshold, OutputImagePixelType);
202 return this->m_MultiplyImageFilter->GetOutput();
212 virtual void GenerateInputRequestedRegion() ITK_OVERRIDE;
214 #ifdef ITK_USE_CONCEPT_CHECKING
231 void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
233 void GenerateData() ITK_OVERRIDE;
243 virtual ~CannyEdgeDetectionImageFilter(){}
252 void AllocateUpdateBuffer();
255 void HysteresisThresholding();
263 void Compute2ndDerivative();
288 Compute2ndDerivativeThreaderCallback(
void *arg);
300 void Compute2ndDerivativePos();
314 Compute2ndDerivativePosThreaderCallback(
void *arg);
347 std::slice m_ComputeCannyEdgeSlice[ImageDimension];
359 #ifndef ITK_MANUAL_INSTANTIATION
360 #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
This filter is an implementation of a Canny edge detector for scalar-valued images.
ListPointerType m_NodeList