Skip to content

Commit

Permalink
FIX: Verification Test
Browse files Browse the repository at this point in the history
Change the test to blur CTChest. The reference output was generated with itk::DiscreteGaussianImageFilter directly, so the Halide output is verified to be numerically compatible.
  • Loading branch information
allemangD committed Sep 6, 2024
1 parent 145195d commit ac69530
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 17 deletions.

This file was deleted.

13 changes: 8 additions & 5 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
)
1 change: 1 addition & 0 deletions test/CTChest/Input.mha.sha512
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
813f7605a1bbc3c6cd3405cf7231b9c3eb8b3e2102ad64294b8e7349989111cafd5cf47d367e488cebde2eab50f1a19b21d8327f8f8d8b42caf579cc2f645bd0
1 change: 1 addition & 0 deletions test/CTChest/ReferenceOutput.mha.sha512
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
6c9594313ea163d3b5f3d808fd1f1cd34b8073cb8d028056d58b6f1bf24ae5aef3a232b1a71cec5e6e0d062ffc16e36df8527c95be51d70c0dbce49da44c87ff
26 changes: 15 additions & 11 deletions test/itkHalideDiscreteGaussianImageFilterTest.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

#include "itkCommand.h"
#include "itkImageFileWriter.h"
#include "itkImageFileReader.h"
#include "itkTestingMacros.h"

namespace
Expand Down Expand Up @@ -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;
Expand All @@ -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<ImageType>;
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<ImageType>;
WriterType::Pointer writer = WriterType::New();
Expand Down

0 comments on commit ac69530

Please sign in to comment.