Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F2572275
mitkGrowCutFilterTest.cpp
j762e (Jan Sahrhage)
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Authored By
j762e
Sep 22 2022, 3:33 PM
2022-09-22 15:33:58 (UTC+2)
Size
3 KB
Referenced Files
None
Subscribers
None
mitkGrowCutFilterTest.cpp
View Options
/*============================================================================
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
Details
Attached
Mime Type
text/x-c++
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1545982
Default Alt Text
mitkGrowCutFilterTest.cpp (3 KB)
Attached To
Mode
T29313: Add a Test to check if the GrowCut algorithm produces a different output
Attached
Detach File
Event Timeline
Log In to Comment