17 #ifndef itkCannyEdgeDetectionRecursiveGaussianImageFilter_h
18 #define itkCannyEdgeDetectionRecursiveGaussianImageFilter_h
38 template <
typename TValueType>
92 template<
typename TInputImage,
typename TOutputImage>
144 static constexpr
unsigned int ImageDimension = TInputImage::ImageDimension;
145 static constexpr
unsigned int OutputImageDimension = TOutputImage::ImageDimension;
160 this->m_Threshold = th;
161 this->m_UpperThreshold = m_Threshold;
162 this->m_LowerThreshold = m_Threshold/2.0;
163 itkLegacyReplaceBodyMacro(SetThreshold, 2.2, SetUpperThreshold);
168 itkLegacyReplaceBodyMacro(GetThreshold, 2.2, GetUpperThreshold);
169 return this->m_Threshold;
173 itkSetMacro(UpperThreshold, OutputImagePixelType );
174 itkGetMacro(UpperThreshold, OutputImagePixelType);
176 itkSetMacro(LowerThreshold, OutputImagePixelType );
177 itkGetMacro(LowerThreshold, OutputImagePixelType);
180 itkSetMacro(OutsideValue, OutputImagePixelType);
181 itkGetMacro(OutsideValue, OutputImagePixelType);
185 return this->m_MultiplyImageFilter->GetOutput();
197 #ifdef ITK_USE_CONCEPT_CHECKING
216 void PrintSelf(std::ostream& os,
Indent indent)
const override;
218 void GenerateData()
override;
233 void AllocateUpdateBuffer();
236 void HysteresisThresholding();
248 void Compute2ndDerivative();
267 outputRegionForThread,
int threadId);
273 Compute2ndDerivativeThreaderCallback(
void * arg );
285 void Compute2ndDerivativePos();
293 outputRegionForThread,
int threadId);
299 Compute2ndDerivativePosThreaderCallback(
void *arg );
338 std::slice m_ComputeCannyEdgeSlice[ImageDimension];
340 unsigned long m_Stride[ImageDimension];
350 #ifndef ITK_MANUAL_INSTANTIATION
351 #include "itkCannyEdgeDetectionRecursiveGaussianImageFilter.hxx"
OutputImagePixelType m_LowerThreshold
A function object that determines a neighborhood of values at an image boundary according to a Neuman...
void SetThreshold(const OutputImagePixelType th)
typename TInputImage::IndexType IndexType
OutputImagePixelType m_Threshold
DerivativeOperator< OutputImagePixelType, itkGetStaticConstMacro(ImageDimension)> m_ComputeCannyEdge1stDerivativeOper
typename GaussianImageFilterType::ScalarRealType ScalarRealType
CannyEdgeDetectionRecursiveGaussianImageFilter * Filter
ListPointerType m_NodeList
OutputImagePixelType m_UpperThreshold
typename NumericTraits< PixelType >::ScalarRealType ScalarRealType
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
~CannyEdgeDetectionRecursiveGaussianImageFilter() override
typename GaussianImageFilterType::SigmaArrayType SigmaArrayType
Base class for all process objects that output image data.
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
TInputImage InputImageType
OutputImageType * GetNonMaximumSuppressionImage() const
void ITK_THREAD_RETURN_TYPE
typename OutputImageType::PixelType OutputImagePixelType
typename InputImageType::PixelType InputImagePixelType
ListNodeStorageType::Pointer m_NodeStore
typename ListType::Pointer ListPointerType
DerivativeOperator< OutputImagePixelType, itkGetStaticConstMacro(ImageDimension)> m_ComputeCannyEdge2ndDerivativeOper
OutputImageType::Pointer m_UpdateBuffer1
typename OutputImageType::RegionType OutputImageRegionType
ImageBaseType::IndexType IndexType
MultiplyImageFilterType::Pointer m_MultiplyImageFilter
TOutputImage OutputImageType
GaussianImageFilterType::Pointer m_GaussianFilter
Computes the smoothing of an image by convolution with the Gaussian kernels implemented as IIR filter...
A class for performing multithreaded execution.
OutputImagePixelType GetThreshold(OutputImagePixelType)
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.
OutputImagePixelType m_OutsideValue
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...
CannyEdgeDetectionRecursiveGaussianImageFilter(const Self &)