Page MenuHomePhabricator

mitkGrowCutFilterTest.cpp

Authored By
j762e
Sep 22 2022, 3:33 PM
Size
3 KB
Referenced Files
None
Subscribers
None

mitkGrowCutFilterTest.cpp

/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
// Testing
#include <mitkTestFixture.h>
#include <mitkTestingMacros.h>
// other
#include <mitkIOUtil.h>
#include <mitkImage.h>
#include "mitkGrowCutTool.h"
#include "mitkGrowCutSegmentationFilter.h"
#include "mitkImageCast.h"
#include <mitkCompareImageDataFilter.h>
class mitkGrowCutFilterTestSuite : public mitk::TestFixture
{
CPPUNIT_TEST_SUITE(mitkGrowCutFilterTestSuite);
MITK_TEST(Test_Filter_Result);
CPPUNIT_TEST_SUITE_END();
public:
void Test_Filter_Result()
{
mitk::Image::Pointer inputImage = mitk::IOUtil::Load<mitk::Image>(GetTestDataFilePath("Pic3D.nrrd"));
CPPUNIT_ASSERT_MESSAGE("Failed to load image for test: [Pic3D.nrrd]", inputImage.IsNotNull());
mitk::Image::Pointer inputSeedImage = mitk::IOUtil::Load<mitk::Image>(GetTestDataFilePath("SegmentationTestData/GrowCut/InputSeedImage.nrrd"));
CPPUNIT_ASSERT_MESSAGE("Failed to load image for test: [SegmentationTestData/GrowCut/InputSeedImage.nrrd]", inputSeedImage.IsNotNull());
mitk::Image::Pointer expectedResultImage = mitk::IOUtil::Load<mitk::Image>(GetTestDataFilePath("SegmentationTestData/GrowCut/ExpectedResultImage.nrrd"));
CPPUNIT_ASSERT_MESSAGE("Failed to load image for test: [SegmentationTestData/GrowCut/ExpectedResultImage.nrrd]", expectedResultImage.IsNotNull());
mitk::LabelSetImage::Pointer expectedResultLabelSetImage = mitk::LabelSetImage::New();
expectedResultLabelSetImage->InitializeByLabeledImage(expectedResultImage);
CPPUNIT_ASSERT_MESSAGE("Could not cast resultImage (ExpectedResultImage.nrrd) to LabelSetImage",
expectedResultLabelSetImage.IsNotNull());
mitk::GrowCutSegmentationFilter::Pointer growCutFilter = mitk::GrowCutSegmentationFilter::New();
itk::Image<unsigned short, 3>::Pointer itkSeedImage = itk::Image<unsigned short, 3>::New();
CastToItkImage(inputSeedImage, itkSeedImage);
CPPUNIT_ASSERT_MESSAGE("Failed to cast mitk::Image [InputSeedImage] to itk::Image<unsigned short, 3>", itkSeedImage.IsNotNull());
growCutFilter->SetInput(inputImage);
growCutFilter->SetDistancePenalty(0);
growCutFilter->SetSeedImage(itkSeedImage);
try
{
growCutFilter->Update();
}
catch (...)
{
mitkThrow() << "itkGrowCutFilter error";
}
auto growCutFilterOutput = growCutFilter->GetOutput();
mitk::LabelSetImage::Pointer growCutFilterOutputImage = mitk::LabelSetImage::New();
growCutFilterOutputImage->InitializeByLabeledImage(growCutFilterOutput);
CPPUNIT_ASSERT_MESSAGE("Could not cast output of GrowCutFilter to LabelSetImage",
growCutFilterOutputImage.IsNotNull());
mitk::CompareImageDataFilter::Pointer compareImageDataFilter = mitk::CompareImageDataFilter::New();
compareImageDataFilter->SetInput(0, expectedResultLabelSetImage);
compareImageDataFilter->SetInput(1, growCutFilterOutputImage);
try
{
compareImageDataFilter->Update();
}
catch (...)
{
mitkThrow() << "compareImageDataFilter error";
}
CPPUNIT_ASSERT_EQUAL(true ,compareImageDataFilter->GetResult(0));
}
};
MITK_TEST_SUITE_REGISTRATION(mitkGrowCutFilter)

File Metadata

Mime Type
text/x-c++
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1545982
Default Alt Text
mitkGrowCutFilterTest.cpp (3 KB)

Event Timeline