Skip to content
Snippets Groups Projects
Commit a1aa949e authored by Rashad Kanavath's avatar Rashad Kanavath
Browse files

BUG: wrong computation of lastusable index (error when running subsamplefilter in MT mode)

parent da00d647
No related branches found
No related tags found
No related merge requests found
......@@ -75,7 +75,7 @@ SubsampledImageRegionConstIterator<TImage>
for (unsigned int i = 0; i < ImageIteratorDimension; ++i)
{
m_FirstUsableIndex[i] = startIndex[i];
m_LastUsableIndex[i] = startIndex[i] + static_cast<IndexValueType>(size[i] - 1);
m_LastUsableIndex[i] = startIndex[i] + size[i];
}
}
......@@ -92,7 +92,7 @@ SubsampledImageRegionConstIterator<TImage>
for (unsigned int i = 0; i < ImageIteratorDimension; ++i)
{
m_FirstUsableIndex[i] = startIndex[i];
m_LastUsableIndex[i] = startIndex[i] + static_cast<IndexValueType>(size[i] - 1);
m_LastUsableIndex[i] = startIndex[i] + size[i];
}
m_SubSampledEndOffset = this->m_Image->ComputeOffset(m_LastUsableIndex) + 1;
......@@ -123,12 +123,13 @@ SubsampledImageRegionConstIterator<TImage>
{
m_FirstUsableIndex[i] = startIndex[i];
while (m_FirstUsableIndex[i]
!= (m_SubsampleFactor[i] * (m_FirstUsableIndex[i] / m_SubsampleFactor[i])))
!= (m_SubsampleFactor[i] * (m_FirstUsableIndex[i] / m_SubsampleFactor[i])))
{
++m_FirstUsableIndex[i];
}
m_LastUsableIndex[i] = startIndex[i]
+ static_cast<IndexValueType>(m_SubsampleFactor[i] * ((size[i] - 1) / m_SubsampleFactor[i]));
+ m_SubsampleFactor[i]
* (size[i] / m_SubsampleFactor[i]);
}
m_SubSampledBeginOffset = this->m_Image->ComputeOffset(m_FirstUsableIndex);
......
......@@ -102,7 +102,6 @@ protected:
SubsampleImageFilter ()
{
m_SubsampleFactor.Fill(1);
//this->SetNumberOfThreads(1);
}
~SubsampleImageFilter() ITK_OVERRIDE {}
......
......@@ -51,7 +51,6 @@ WaveletFilterBank<TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD>
m_UpSampleFilterFactor = 0;
m_SubsampleImageFactor = 1;
//this->SetNumberOfThreads(1);
}
template <class TInputImage, class TOutputImage, class TWaveletOperator>
......@@ -1169,7 +1168,6 @@ WaveletFilterBank<TInputImage, TOutputImage, TWaveletOperator, Wavelet::INVERSE>
typename FilterType::Pointer overSampledLowPass = FilterType::New();
overSampledLowPass->SetInput(cropedLowPass);
overSampledLowPass->SetSubsampleFactor(delta);
overSampledLowPass->SetNumberOfThreads(1);
overSampledLowPass->Update();
InputImagePointerType cropedHighPass = InputImageType::New();
......@@ -1188,7 +1186,6 @@ WaveletFilterBank<TInputImage, TOutputImage, TWaveletOperator, Wavelet::INVERSE>
typename FilterType::Pointer overSampledHighPass = FilterType::New();
overSampledHighPass->SetInput(cropedHighPass);
overSampledHighPass->SetSubsampleFactor(delta);
overSampledHighPass->SetNumberOfThreads(1);
overSampledHighPass->Update();
InnerProductType innerProduct;
......
......@@ -31,8 +31,6 @@ WaveletImageFilter<TInputImage, TOutputImage, TMotherWaveletOperator>
m_WaveletTransform->SetSubsampleImageFactor(2);
m_WaveletBandsListToWaveletsSynopsis = WaveletBandsListToWaveletsSynopsisImageFilterType::New();
// Force to use a unique thread otherwise there is a bug on Mac
//m_WaveletBandsListToWaveletsSynopsis->SetNumberOfThreads(1);
m_WaveletBandsListToWaveletsSynopsis->SetInput( m_WaveletTransform->GetOutput() );
}
......
......@@ -28,7 +28,6 @@ WaveletInverseImageFilter<TInputImage, TOutputImage, TMotherWaveletOperator>
::WaveletInverseImageFilter() : m_NumberOfDecompositions(2)
{
m_SynopsisImageToWaveletsBandsList = WaveletsSynopsisImageToWaveletsBandsListFilterType::New();
//m_SynopsisImageToWaveletsBandsList->SetNumberOfThreads(1);
m_SynopsisImageToWaveletsBandsList->SetDecimationRatio(2);
m_WaveletTransform = WaveletInverseTransformFilterType::New();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment