|
If an imaging filter can be implemented as a multithreaded algorithm, the filter will provide an implementation of ThreadedGenerateData(). This superclass will automatically split the output image into a number of pieces, spawn multiple threads, and call ThreadedGenerateData() in each thread. Prior to spawning threads, the BeforeThreadedGenerateData() method is called. After all the threads have completed, the AfterThreadedGenerateData() method is called. If an image processing filter cannot support threading, that filter should provide an implementation of the GenerateData() method instead of providing an implementation of ThreadedGenerateData(). If a filter provides a GenerateData() method as its implementation, then the filter is responsible for allocating the output data. If a filter provides a ThreadedGenerateData() method as its implementation, then the output memory will allocated automatically by this superclass. The ThreadedGenerateData() method should only produce the output specified by "outputThreadRegion" parameter. ThreadedGenerateData() cannot write to any other portion of the output image (as this is responsibility of a different thread).
-
See also:
-
GenerateData(), SplitRequestedRegion()
Reimplemented in itk::HistogramMatchingImageFilter< TInputImage, TOutputImage >, itk::BilateralImageFilter< TInputImage, TOutputImage >, itk::BinaryFunctorImageFilter< TInputImage1, TInputImage2, TOutputImage, TFunction >, itk::BinaryMedianImageFilter< TInputImage, TOutputImage >, itk::ConstantPadImageFilter< TInputImage, TOutputImage >, itk::ExpandImageFilter< TInputImage, TOutputImage >, itk::ExtractImageFilter< TInputImage, TOutputImage >, itk::FlipImageFilter< TImage >, itk::GradientMagnitudeImageFilter< TInputImage, TOutputImage >, itk::InterpolateImageFilter< TInputImage, TOutputImage >, itk::MeanImageFilter< TInputImage, TOutputImage >, itk::MedianImageFilter< TInputImage, TOutputImage >, itk::MirrorPadImageFilter< TInputImage, TOutputImage >, itk::MorphologyImageFilter< TInputImage, TOutputImage, TKernel >, itk::NaryFunctorImageFilter< TInputImage, TOutputImage, TFunction >, itk::NeighborhoodOperatorImageFilter< TInputImage, TOutputImage >, itk::PermuteAxesImageFilter< TImage >, itk::RandomImageSource< TOutputImage >, itk::ResampleImageFilter< TInputImage, TOutputImage >, itk::ShiftScaleImageFilter< TInputImage, TOutputImage >, itk::ShrinkImageFilter< TInputImage, TOutputImage >, itk::TernaryFunctorImageFilter< TInputImage1, TInputImage2, TInputImage3, TOutputImage, TFunction >, itk::ThresholdImageFilter< TImage >, itk::TwoOutputExampleImageFilter< TImage >, itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, TFunction >, itk::VectorExpandImageFilter< TInputImage, TOutputImage >, itk::VectorNeighborhoodOperatorImageFilter< TInputImage, TOutputImage >, itk::WarpImageFilter< TInputImage, TOutputImage, TDeformationField >, itk::WrapPadImageFilter< TInputImage, TOutputImage >, itk::ZeroCrossingImageFilter< TInputImage, TOutputImage >, itk::DifferenceImageFilter< TInputImage, TOutputImage >, itk::BinaryFunctorImageFilter< TInputImage1, TInputImage2, TOutputImage, Function::Minimum< TInputImage1::PixelType, TInputImage2::PixelType, TOutputImage::PixelType > >, itk::BinaryFunctorImageFilter< TInputImage1, TInputImage2, TOutputImage, Function::Div< TInputImage1::PixelType, TInputImage2::PixelType, TOutputImage::PixelType > >, itk::BinaryFunctorImageFilter< TInputImage1, TInputImage2, TOutputImage, Function::Sub2< TInputImage1::PixelType, TInputImage2::PixelType, TOutputImage::PixelType > >, itk::BinaryFunctorImageFilter< TInputImage1, TInputImage2, TOutputImage, Function::Maximum< TInputImage1::PixelType, TInputImage2::PixelType, TOutputImage::PixelType > >, itk::BinaryFunctorImageFilter< TInputImage1, TInputImage2, TOutputImage, Function::Mult< TInputImage1::PixelType, TInputImage2::PixelType, TOutputImage::PixelType > >, itk::BinaryFunctorImageFilter< TInputImage1, TInputImage2, TOutputImage, Functor::Atan2< TInputImage1::PixelType, TInputImage2::PixelType, TOutputImage::PixelType > >, itk::BinaryFunctorImageFilter< TInputImage1, TInputImage2, TOutputImage, Functor::Add2< TInputImage1::PixelType, TInputImage2::PixelType, TOutputImage::PixelType > >, itk::BinaryFunctorImageFilter< TInputImage, TMaskImage, TOutputImage, Functor::MaskInput< TInputImage::PixelType, TMaskImage::PixelType, TOutputImage::PixelType > >, itk::BinaryFunctorImageFilter< TInputImage1, TInputImage2, Functor::MakeJoin< TInputImage1, TInputImage2 >::ImageType, Functor::MakeJoin< TInputImage1, TInputImage2 >::FunctorType >, itk::BinaryFunctorImageFilter< TInputImage1, TInputImage2, TOutputImage, Functor::Modulus2< TInputImage1::PixelType, TInputImage2::PixelType, TOutputImage::PixelType > >, itk::NaryFunctorImageFilter< TInputImage, TOutputImage, Functor::Add1< TInputImage::PixelType, TOutputImage::PixelType > >, itk::TernaryFunctorImageFilter< TInputImage1, TInputImage2, TInputImage3, TOutputImage, Function::Add3< TInputImage1::PixelType, TInputImage2::PixelType, TInputImage3::PixelType, TOutputImage::PixelType > >, itk::TernaryFunctorImageFilter< TInputImage1, TInputImage2, TInputImage3, TOutputImage, Function::Modulus3< TInputImage1::PixelType, TInputImage2::PixelType, TInputImage3::PixelType, TOutputImage::PixelType > >, itk::TernaryFunctorImageFilter< TInputImage1, TInputImage2, TInputImage3, TOutputImage, Function::ModulusSquare3< TInputImage1::PixelType, TInputImage2::PixelType, TInputImage3::PixelType, TOutputImage::PixelType > >, itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Functor::Atan< TInputImage::PixelType, TOutputImage::PixelType > >, itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Functor::Cos< TInputImage::PixelType, TOutputImage::PixelType > >, itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Functor::Acos< TInputImage::PixelType, TOutputImage::PixelType > >, itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Function::Log< TInputImage::PixelType, TOutputImage::PixelType > >, itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Function::Exp< TInputImage::PixelType, TOutputImage::PixelType > >, itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Functor::Cast< TInputImage::PixelType, TOutputImage::PixelType > >, itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Functor::VectorCast< TInputImage::PixelType, TOutputImage::PixelType > >, itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Functor::ScalarToArrayCast< TInputImage::PixelType, TOutputImage::PixelType > >, itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Functor::IntensityLinearTransform< TInputImage::PixelType, TOutputImage::PixelType > >, itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Function::Tan< TInputImage::PixelType, TOutputImage::PixelType > >, itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Function::ExpNegative< TInputImage::PixelType, TOutputImage::PixelType > >, itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Function::Sin< TInputImage::PixelType, TOutputImage::PixelType > >, itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Function::Sqrt< TInputImage::PixelType, TOutputImage::PixelType > >, itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Functor::BinaryThreshold< TInputImage::PixelType, TOutputImage::PixelType > >, itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Function::Log10< TInputImage::PixelType, TOutputImage::PixelType > >, itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Functor::AccessorFunctor< TInputImage::PixelType, TAccessor > >, itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Functor::Asin< TInputImage::PixelType, TOutputImage::PixelType > >, itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Functor::EdgePotential< TInputImage::PixelType, TOutputImage::PixelType > >, itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Functor::VectorIndexSelectionCast< TInputImage::PixelType, TOutputImage::PixelType > >, and itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Functor::GradientMagnitude< TInputImage::PixelType, TOutputImage::PixelType > >. |