diff --git a/test/Baseline/itkHalideDiscreteGaussianImageFilterTestOutput.mha.sha512 b/test/Baseline/itkHalideDiscreteGaussianImageFilterTestOutput.mha.sha512 deleted file mode 100644 index c811785..0000000 --- a/test/Baseline/itkHalideDiscreteGaussianImageFilterTestOutput.mha.sha512 +++ /dev/null @@ -1 +0,0 @@ -34cdd2aafce413dcf7efc692a707d53b7b57ebb006d0fbc20ecb42343f8a078b2252eff2137b17d3ab583d133f780438e247241ebf213c3289bd9ba1525081b7 diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 7195662..eac7dcc 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -6,11 +6,14 @@ set(HalideFiltersTests CreateTestDriver(HalideFilters "${HalideFilters-Test_LIBRARIES}" "${HalideFiltersTests}") +# NOTE: Input data is CTChest Slicer sample data: anisotropic image with blur variance 9mm. +# Reference output generated with itk::DiscreteGaussianImageFilter (via Slicer Simple Filters). itk_add_test(NAME itkHalideDiscreteGaussianImageFilterTest - COMMAND HalideFiltersTestDriver - --compare - DATA{Baseline/itkHalideDiscreteGaussianImageFilterTestOutput.mha} - ${ITK_TEST_OUTPUT_DIR}/itkHalideDiscreteGaussianImageFilterTestOutput.mha + COMMAND + HalideFiltersTestDriver + --compare DATA{CTChest/ReferenceOutput.mha} ${ITK_TEST_OUTPUT_DIR}/Output.mha itkHalideDiscreteGaussianImageFilterTest - ${ITK_TEST_OUTPUT_DIR}/itkHalideDiscreteGaussianImageFilterTestOutput.mha + DATA{CTChest/Input.mha} + ${ITK_TEST_OUTPUT_DIR}/Output.mha + 9 ) diff --git a/test/CTChest/Input.mha.sha512 b/test/CTChest/Input.mha.sha512 new file mode 100644 index 0000000..5177f22 --- /dev/null +++ b/test/CTChest/Input.mha.sha512 @@ -0,0 +1 @@ +813f7605a1bbc3c6cd3405cf7231b9c3eb8b3e2102ad64294b8e7349989111cafd5cf47d367e488cebde2eab50f1a19b21d8327f8f8d8b42caf579cc2f645bd0 diff --git a/test/CTChest/ReferenceOutput.mha.sha512 b/test/CTChest/ReferenceOutput.mha.sha512 new file mode 100644 index 0000000..6711af4 --- /dev/null +++ b/test/CTChest/ReferenceOutput.mha.sha512 @@ -0,0 +1 @@ +6c9594313ea163d3b5f3d808fd1f1cd34b8073cb8d028056d58b6f1bf24ae5aef3a232b1a71cec5e6e0d062ffc16e36df8527c95be51d70c0dbce49da44c87ff diff --git a/test/itkHalideDiscreteGaussianImageFilterTest.cxx b/test/itkHalideDiscreteGaussianImageFilterTest.cxx index fe94b1e..04ba22d 100644 --- a/test/itkHalideDiscreteGaussianImageFilterTest.cxx +++ b/test/itkHalideDiscreteGaussianImageFilterTest.cxx @@ -20,6 +20,7 @@ #include "itkCommand.h" #include "itkImageFileWriter.h" +#include "itkImageFileReader.h" #include "itkTestingMacros.h" namespace @@ -55,15 +56,21 @@ class ShowProgress : public itk::Command int itkHalideDiscreteGaussianImageFilterTest(int argc, char * argv[]) { - if (argc < 2) + if (argc < 4) { std::cerr << "Missing parameters." << std::endl; std::cerr << "Usage: " << itkNameOfTestExecutableMacro(argv); + std::cerr << " inputImage"; std::cerr << " outputImage"; + std::cerr << " variance"; std::cerr << std::endl; return EXIT_FAILURE; } - const char * outputImageFileName = argv[1]; + const char * inputImageFileName = argv[1]; + const char * outputImageFileName = argv[2]; + const char * varianceString = argv[3]; + + float variance = std::stof(varianceString); constexpr unsigned int Dimension = 3; using PixelType = float; @@ -74,18 +81,15 @@ itkHalideDiscreteGaussianImageFilterTest(int argc, char * argv[]) ITK_EXERCISE_BASIC_OBJECT_METHODS(filter, HalideDiscreteGaussianImageFilter, ImageToImageFilter); - // Create input image to avoid test dependencies. - ImageType::SizeType size; - size.Fill(128); - ImageType::Pointer image = ImageType::New(); - image->SetRegions(size); - image->Allocate(); - image->FillBuffer(1.1f); + using ReaderType = itk::ImageFileReader; + ReaderType::Pointer reader = ReaderType::New(); + reader->SetFileName(inputImageFileName); + reader->Update(); ShowProgress::Pointer showProgress = ShowProgress::New(); filter->AddObserver(itk::ProgressEvent(), showProgress); - filter->SetInput(image); - filter->SetSigma(2); + filter->SetInput(reader->GetOutput()); + filter->SetVariance(variance); using WriterType = itk::ImageFileWriter; WriterType::Pointer writer = WriterType::New();