18 #ifndef __itkCannyEdgeDetectionImageFilter_h
19 #define __itkCannyEdgeDetectionImageFilter_h
31 template<
class TValueType >
83 template<
class TInputImage,
class TOutputImage >
133 itkStaticConstMacro(ImageDimension,
unsigned int,
134 TInputImage::ImageDimension);
135 itkStaticConstMacro(OutputImageDimension,
unsigned int,
136 TOutputImage::ImageDimension);
144 itkGetConstMacro(Variance,
const ArrayType);
146 itkGetConstMacro(MaximumError,
const ArrayType);
153 for (
unsigned int i = 0; i < TInputImage::ImageDimension; i++ )
155 if ( m_Variance[i] != v )
169 for (
unsigned int i = 0; i < TInputImage::ImageDimension; i++ )
171 if ( m_MaximumError[i] != v )
173 m_MaximumError.Fill(v);
191 itkSetMacro(UpperThreshold, OutputImagePixelType);
192 itkGetConstMacro(UpperThreshold, OutputImagePixelType);
194 itkSetMacro(LowerThreshold, OutputImagePixelType);
195 itkGetConstMacro(LowerThreshold, OutputImagePixelType);
197 OutputImageType * GetNonMaximumSuppressionImage()
199 return this->m_MultiplyImageFilter->GetOutput();
209 virtual void GenerateInputRequestedRegion()
212 #ifdef ITK_USE_CONCEPT_CHECKING
230 void PrintSelf(std::ostream & os,
Indent indent)
const;
241 void operator=(
const Self &);
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];
360 #ifndef ITK_MANUAL_INSTANTIATION
361 #include "itkCannyEdgeDetectionImageFilter.hxx"