Skip to content

Commit

Permalink
Merge pull request #1797 from blowekamp/FixReproducibleNoiseTBB
Browse files Browse the repository at this point in the history
BUG: Disable dynamic threading in noise filter.
  • Loading branch information
blowekamp committed May 15, 2020
2 parents 27258ef + af780e8 commit 62f3af1
Show file tree
Hide file tree
Showing 8 changed files with 20 additions and 16 deletions.
Expand Up @@ -106,7 +106,7 @@ class ITK_TEMPLATE_EXPORT AdditiveGaussianNoiseImageFilter : public NoiseBaseIma
PrintSelf(std::ostream & os, Indent indent) const override;

void
DynamicThreadedGenerateData(const OutputImageRegionType & outputRegionForThread) override;
ThreadedGenerateData(const OutputImageRegionType & outputRegionForThread, ThreadIdType threadId) override;


private:
Expand Down
Expand Up @@ -30,14 +30,15 @@ template <class TInputImage, class TOutputImage>
AdditiveGaussianNoiseImageFilter<TInputImage, TOutputImage>::AdditiveGaussianNoiseImageFilter()

{
this->DynamicMultiThreadingOn();
this->DynamicMultiThreadingOff();
this->ThreaderUpdateProgressOff();
}

template <class TInputImage, class TOutputImage>
void
AdditiveGaussianNoiseImageFilter<TInputImage, TOutputImage>::DynamicThreadedGenerateData(
const OutputImageRegionType & outputRegionForThread)
AdditiveGaussianNoiseImageFilter<TInputImage, TOutputImage>::ThreadedGenerateData(
const OutputImageRegionType & outputRegionForThread,
ThreadIdType)
{
const InputImageType * inputPtr = this->GetInput();
OutputImageType * outputPtr = this->GetOutput(0);
Expand Down
Expand Up @@ -126,7 +126,7 @@ class ITK_TEMPLATE_EXPORT SaltAndPepperNoiseImageFilter : public NoiseBaseImageF
PrintSelf(std::ostream & os, Indent indent) const override;

void
DynamicThreadedGenerateData(const OutputImageRegionType & outputRegionForThread) override;
ThreadedGenerateData(const OutputImageRegionType & outputRegionForThread, ThreadIdType threadId) override;

private:
double m_Probability{ 0.01 };
Expand Down
Expand Up @@ -31,14 +31,15 @@ SaltAndPepperNoiseImageFilter<TInputImage, TOutputImage>::SaltAndPepperNoiseImag
: m_SaltValue(NumericTraits<OutputImagePixelType>::max())
, m_PepperValue(NumericTraits<OutputImagePixelType>::NonpositiveMin())
{
this->DynamicMultiThreadingOn();
this->DynamicMultiThreadingOff();
this->ThreaderUpdateProgressOff();
}

template <class TInputImage, class TOutputImage>
void
SaltAndPepperNoiseImageFilter<TInputImage, TOutputImage>::DynamicThreadedGenerateData(
const OutputImageRegionType & outputRegionForThread)
SaltAndPepperNoiseImageFilter<TInputImage, TOutputImage>::ThreadedGenerateData(
const OutputImageRegionType & outputRegionForThread,
ThreadIdType)
{
const InputImageType * inputPtr = this->GetInput();
OutputImageType * outputPtr = this->GetOutput(0);
Expand Down
Expand Up @@ -143,7 +143,7 @@ class ITK_TEMPLATE_EXPORT ShotNoiseImageFilter : public NoiseBaseImageFilter<TIn
PrintSelf(std::ostream & os, Indent indent) const override;

void
DynamicThreadedGenerateData(const OutputImageRegionType & outputRegionForThread) override;
ThreadedGenerateData(const OutputImageRegionType & outputRegionForThread, ThreadIdType threadId) override;


private:
Expand Down
Expand Up @@ -31,14 +31,15 @@ template <class TInputImage, class TOutputImage>
ShotNoiseImageFilter<TInputImage, TOutputImage>::ShotNoiseImageFilter()

{
this->DynamicMultiThreadingOn();
this->DynamicMultiThreadingOff();
this->ThreaderUpdateProgressOff();
}

template <class TInputImage, class TOutputImage>
void
ShotNoiseImageFilter<TInputImage, TOutputImage>::DynamicThreadedGenerateData(
const OutputImageRegionType & outputRegionForThread)
ShotNoiseImageFilter<TInputImage, TOutputImage>::ThreadedGenerateData(
const OutputImageRegionType & outputRegionForThread,
ThreadIdType)
{
const InputImageType * inputPtr = this->GetInput();
OutputImageType * outputPtr = this->GetOutput(0);
Expand Down
Expand Up @@ -102,7 +102,7 @@ class ITK_TEMPLATE_EXPORT SpeckleNoiseImageFilter : public NoiseBaseImageFilter<
PrintSelf(std::ostream & os, Indent indent) const override;

void
DynamicThreadedGenerateData(const OutputImageRegionType & outputRegionForThread) override;
ThreadedGenerateData(const OutputImageRegionType & outputRegionForThread, ThreadIdType threadId) override;

private:
double m_StandardDeviation{ 1.0 };
Expand Down
Expand Up @@ -31,14 +31,15 @@ template <class TInputImage, class TOutputImage>
SpeckleNoiseImageFilter<TInputImage, TOutputImage>::SpeckleNoiseImageFilter()

{
this->DynamicMultiThreadingOn();
this->DynamicMultiThreadingOff();
this->ThreaderUpdateProgressOff();
}

template <class TInputImage, class TOutputImage>
void
SpeckleNoiseImageFilter<TInputImage, TOutputImage>::DynamicThreadedGenerateData(
const OutputImageRegionType & outputRegionForThread)
SpeckleNoiseImageFilter<TInputImage, TOutputImage>::ThreadedGenerateData(
const OutputImageRegionType & outputRegionForThread,
ThreadIdType)
{
const InputImageType * inputPtr = this->GetInput();
OutputImageType * outputPtr = this->GetOutput(0);
Expand Down

0 comments on commit 62f3af1

Please sign in to comment.