From 8a0dbdea2f1f76f1cff821d88361d648ea7e49d6 Mon Sep 17 00:00:00 2001 From: Pablo Hernandez-Cerdan Date: Mon, 24 Sep 2018 18:28:58 -0400 Subject: [PATCH] ENH: Reset direction to identity before forward wavelet --- include/itkWaveletFrequencyForward.hxx | 6 +++++- include/itkWaveletFrequencyForwardUndecimated.hxx | 6 +++++- include/itkWaveletFrequencyInverse.hxx | 4 ++-- include/itkWaveletFrequencyInverseUndecimated.hxx | 3 ++- test/itkFrequencyShrinkTest.cxx | 5 ++++- 5 files changed, 18 insertions(+), 6 deletions(-) diff --git a/include/itkWaveletFrequencyForward.hxx b/include/itkWaveletFrequencyForward.hxx index 3b01962..97f568d 100644 --- a/include/itkWaveletFrequencyForward.hxx +++ b/include/itkWaveletFrequencyForward.hxx @@ -482,18 +482,22 @@ WaveletFrequencyForward< TInputImage, TOutputImage, auto changeInputInfoFilter = ChangeInformationFilterType::New(); typename InputImageType::PointType origin_old = inputPerLevel->GetOrigin(); typename InputImageType::SpacingType spacing_old = inputPerLevel->GetSpacing(); + typename InputImageType::DirectionType direction_old = inputPerLevel->GetDirection(); typename InputImageType::PointType origin_new = origin_old; origin_new.Fill(0); typename InputImageType::SpacingType spacing_new = spacing_old; spacing_new.Fill(1); + typename InputImageType::DirectionType direction_new = direction_old; + direction_new.SetIdentity(); changeInputInfoFilter->SetInput(inputPerLevel); - changeInputInfoFilter->ChangeDirectionOff(); changeInputInfoFilter->ChangeRegionOff(); + changeInputInfoFilter->ChangeDirectionOn(); changeInputInfoFilter->ChangeSpacingOn(); changeInputInfoFilter->ChangeOriginOn(); changeInputInfoFilter->UseReferenceImageOff(); changeInputInfoFilter->SetOutputOrigin(origin_new); changeInputInfoFilter->SetOutputSpacing(spacing_new); + changeInputInfoFilter->SetOutputDirection(direction_new); changeInputInfoFilter->Update(); // Generate WaveletFilterBank. diff --git a/include/itkWaveletFrequencyForwardUndecimated.hxx b/include/itkWaveletFrequencyForwardUndecimated.hxx index 9c0d337..4179b03 100644 --- a/include/itkWaveletFrequencyForwardUndecimated.hxx +++ b/include/itkWaveletFrequencyForwardUndecimated.hxx @@ -330,18 +330,22 @@ WaveletFrequencyForwardUndecimated< TInputImage, TOutputImage, auto changeInputInfoFilter = ChangeInformationFilterType::New(); typename InputImageType::PointType origin_old = inputPerLevel->GetOrigin(); typename InputImageType::SpacingType spacing_old = inputPerLevel->GetSpacing(); + typename InputImageType::DirectionType direction_old = inputPerLevel->GetDirection(); typename InputImageType::PointType origin_new = origin_old; origin_new.Fill(0); typename InputImageType::SpacingType spacing_new = spacing_old; spacing_new.Fill(1); + typename InputImageType::DirectionType direction_new = direction_old; + direction_new.SetIdentity(); changeInputInfoFilter->SetInput(inputPerLevel); - changeInputInfoFilter->ChangeDirectionOff(); changeInputInfoFilter->ChangeRegionOff(); + changeInputInfoFilter->ChangeDirectionOn(); changeInputInfoFilter->ChangeSpacingOn(); changeInputInfoFilter->ChangeOriginOn(); changeInputInfoFilter->UseReferenceImageOff(); changeInputInfoFilter->SetOutputOrigin(origin_new); changeInputInfoFilter->SetOutputSpacing(spacing_new); + changeInputInfoFilter->SetOutputDirection(direction_new); changeInputInfoFilter->Update(); // Generate WaveletFilterBank. diff --git a/include/itkWaveletFrequencyInverse.hxx b/include/itkWaveletFrequencyInverse.hxx index f86b73e..334ca4b 100644 --- a/include/itkWaveletFrequencyInverse.hxx +++ b/include/itkWaveletFrequencyInverse.hxx @@ -391,8 +391,8 @@ WaveletFrequencyInverse< TInputImage, TOutputImage, changeWaveletInfoFilter->SetInput(waveletLow); changeWaveletInfoFilter->UseReferenceImageOn(); changeWaveletInfoFilter->SetReferenceImage( low_pass_per_level ); - changeWaveletInfoFilter->ChangeDirectionOff(); changeWaveletInfoFilter->ChangeRegionOn(); + changeWaveletInfoFilter->ChangeDirectionOn(); changeWaveletInfoFilter->ChangeSpacingOn(); changeWaveletInfoFilter->ChangeOriginOn(); changeWaveletInfoFilter->Update(); @@ -435,8 +435,8 @@ WaveletFrequencyInverse< TInputImage, TOutputImage, changeWaveletHighInfoFilter->SetInput(highPassMasks[band]); changeWaveletHighInfoFilter->UseReferenceImageOn(); changeWaveletHighInfoFilter->SetReferenceImage( bandInputImage ); - changeWaveletHighInfoFilter->ChangeDirectionOff(); changeWaveletHighInfoFilter->ChangeRegionOff(); + changeWaveletHighInfoFilter->ChangeDirectionOn(); changeWaveletHighInfoFilter->ChangeSpacingOn(); changeWaveletHighInfoFilter->ChangeOriginOn(); changeWaveletHighInfoFilter->UpdateLargestPossibleRegion(); diff --git a/include/itkWaveletFrequencyInverseUndecimated.hxx b/include/itkWaveletFrequencyInverseUndecimated.hxx index 78a1485..0859329 100644 --- a/include/itkWaveletFrequencyInverseUndecimated.hxx +++ b/include/itkWaveletFrequencyInverseUndecimated.hxx @@ -351,13 +351,14 @@ WaveletFrequencyInverseUndecimated< TInputImage, TOutputImage, bandInputImage = const_cast< InputImageType * >(this->GetInput(nInput)); reconstructed->SetSpacing(bandInputImage->GetSpacing()); reconstructed->SetOrigin(bandInputImage->GetOrigin()); + reconstructed->SetDirection(bandInputImage->GetDirection()); auto changeWaveletHighInfoFilter = ChangeInformationFilterType::New(); changeWaveletHighInfoFilter->SetInput(highPassMasks[band]); changeWaveletHighInfoFilter->UseReferenceImageOn(); changeWaveletHighInfoFilter->SetReferenceImage( bandInputImage ); - changeWaveletHighInfoFilter->ChangeDirectionOff(); changeWaveletHighInfoFilter->ChangeRegionOff(); + changeWaveletHighInfoFilter->ChangeDirectionOn(); changeWaveletHighInfoFilter->ChangeSpacingOn(); changeWaveletHighInfoFilter->ChangeOriginOn(); changeWaveletHighInfoFilter->UpdateLargestPossibleRegion(); diff --git a/test/itkFrequencyShrinkTest.cxx b/test/itkFrequencyShrinkTest.cxx index ce090bb..5203c04 100644 --- a/test/itkFrequencyShrinkTest.cxx +++ b/test/itkFrequencyShrinkTest.cxx @@ -246,14 +246,17 @@ runFrequencyShrinkTest( const std::string & inputImage, const std::string & outp origin_new.Fill(0); typename ComplexImageType::SpacingType spacing_new; spacing_new.Fill(1); + typename ComplexImageType::DirectionType direction_new; + direction_new.SetIdentity(); changeInputInfoFilter->SetInput(fftFilter->GetOutput()); - changeInputInfoFilter->ChangeDirectionOff(); + changeInputInfoFilter->ChangeDirectionOn(); changeInputInfoFilter->ChangeRegionOff(); changeInputInfoFilter->ChangeSpacingOn(); changeInputInfoFilter->ChangeOriginOn(); changeInputInfoFilter->UseReferenceImageOff(); changeInputInfoFilter->SetOutputOrigin(origin_new); changeInputInfoFilter->SetOutputSpacing(spacing_new); + changeInputInfoFilter->SetOutputDirection(direction_new); changeInputInfoFilter->Update(); auto shrinkBandFilter = ShrinkType::New();