Skip to content

Commit 78d51af

Browse files
committed
TEST: Write output for RieszWaveletPhaseAnalysisTest.
1 parent 0f781c7 commit 78d51af

File tree

1 file changed

+26
-8
lines changed

1 file changed

+26
-8
lines changed

test/itkRieszWaveletPhaseAnalysisTest.cxx

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
#include "itkImage.h"
3535
#include "itkImageFileReader.h"
3636
#include "itkImageFileWriter.h"
37+
#include "itkCastImageFilter.h"
38+
#include "itkNumberToString.h"
3739

3840
#include "itkTestingMacros.h"
3941

@@ -42,9 +44,15 @@
4244
// Visualize for dev/debug purposes. Set in cmake file. Requires VTK
4345
#ifdef ITK_VISUALIZE_TESTS
4446
#include "itkViewImage.h"
45-
#include "itkNumberToString.h"
4647
#endif
4748

49+
std::string
50+
AppendToFilenameRiesz(const std::string& filename, const std::string & appendix)
51+
{
52+
std::size_t foundDot = filename.find_last_of('.');
53+
return filename.substr( 0, foundDot ) + appendix + filename.substr( foundDot );
54+
}
55+
4856
// 1. Wavelet analysis (forward) on input image.
4957
// 2. Create a Monogenic Signal (from Riesz function ) on each wavelet output..
5058
// 3. Do a PhaseAnalysis on each Monogenic Signal.
@@ -54,7 +62,7 @@
5462
template< unsigned int VDimension, typename TWaveletFunction >
5563
int
5664
runRieszWaveletPhaseAnalysisTest( const std::string& inputImage,
57-
const std::string &, // outputImage
65+
const std::string & outputImage,
5866
const unsigned int& inputLevels,
5967
const unsigned int& inputBands,
6068
const bool applySoftThreshold)
@@ -65,6 +73,7 @@ runRieszWaveletPhaseAnalysisTest( const std::string& inputImage,
6573
typedef itk::Image< PixelType, Dimension > ImageType;
6674
typedef itk::ImageFileReader< ImageType > ReaderType;
6775

76+
itk::NumberToString< unsigned int > n2s;
6877
typename ReaderType::Pointer reader = ReaderType::New();
6978
reader->SetFileName( inputImage );
7079
reader->Update();
@@ -153,7 +162,6 @@ runRieszWaveletPhaseAnalysisTest( const std::string& inputImage,
153162
{
154163
for ( unsigned int i = 0; i < forwardWavelet->GetNumberOfOutputs(); ++i )
155164
{
156-
itk::NumberToString< unsigned int > n2s;
157165
typename InverseFFTFilterType::Pointer inverseFFT = InverseFFTFilterType::New();
158166
inverseFFT->SetInput(analysisWavelets[i]);
159167
inverseFFT->Update();
@@ -184,12 +192,22 @@ runRieszWaveletPhaseAnalysisTest( const std::string& inputImage,
184192
itk::Testing::ViewImage( inverseFFT->GetOutput(), "Inverse Wavelet" );
185193
#endif
186194

195+
// Cast To Float for save as tiff.
196+
typedef itk::Image< float, Dimension > ImageFloatType;
197+
typedef itk::CastImageFilter< ImageType, ImageFloatType> CastFloatType;
198+
typename CastFloatType::Pointer caster = CastFloatType::New();
199+
caster->SetInput(inverseFFT->GetOutput());
200+
caster->Update();
201+
187202
// typedef itk::ImageFileWriter< typename InverseFFTFilterType::OutputImageType > WriterType;
188-
// typename WriterType::Pointer writer = WriterType::New();
189-
// writer->SetFileName( outputImage );
190-
// writer->SetInput( inverseFFT->GetOutput() );
191-
//
192-
// TRY_EXPECT_NO_EXCEPTION( writer->Update() );
203+
typedef itk::ImageFileWriter< ImageFloatType > WriterType;
204+
typename WriterType::Pointer writer = WriterType::New();
205+
std::string appendString = "_" + n2s(inputLevels) + "_" + n2s(inputBands);
206+
std::string outputFile = AppendToFilenameRiesz(outputImage, appendString);
207+
writer->SetFileName( outputFile );
208+
writer->SetInput( caster->GetOutput() );
209+
210+
TRY_EXPECT_NO_EXCEPTION( writer->Update() );
193211
//
194212
return EXIT_SUCCESS;
195213
}

0 commit comments

Comments
 (0)