Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
mitkImageVtkMapper2DLookupTableTest.cpp
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 // MITK
15 #include "mitkTestingMacros.h"
16 #include <mitkIOUtil.h>
17 #include <mitkLookupTable.h>
21 
22 // VTK
23 #include <vtkLookupTable.h>
24 
25 int mitkImageVtkMapper2DLookupTableTest(int argc, char *argv[])
26 {
27  try
28  {
29  mitk::RenderingTestHelper openGlTest(640, 480);
30  }
31  catch (const mitk::TestNotRunException &e)
32  {
33  MITK_WARN << "Test not run: " << e.GetDescription();
34  return 77;
35  }
36  // load all arguments into a datastorage, take last argument as reference rendering
37  // setup a renderwindow of fixed size X*Y
38  // render the datastorage
39  // compare rendering to reference image
40  MITK_TEST_BEGIN("mitkImageVtkMapper2DLookupTableTest")
41 
42  mitk::RenderingTestHelper renderingHelper(640, 480, argc, argv);
43 
44  // define an arbitrary lookupTable
45  vtkSmartPointer<vtkLookupTable> lookupTable = vtkSmartPointer<vtkLookupTable>::New();
46  // use linear interpolation
47  lookupTable->SetRampToLinear();
48  // use the scalar range of the image to have a nice lookuptable
49  lookupTable->SetTableRange(0, 255);
50  lookupTable->Build();
51 
52  // Fill in a few known colors, the rest will be generated
53  lookupTable->SetTableValue(0, 1.0, 0.0, 0.0, 1.0); // map from red
54  lookupTable->SetTableValue(255, 0.0, 0.0, 1.0, 1.0); // to blue
55 
57  myLookupTable->SetVtkLookupTable(lookupTable);
58 
59  // set the rendering mode to use the transfer function
60  renderingHelper.SetImageProperty("Image Rendering.Mode",
62  // set the property for the image
63  renderingHelper.SetImageProperty("LookupTable", mitk::LookupTableProperty::New(myLookupTable));
64 
65  //### Usage of CompareRenderWindowAgainstReference: See docu of mitkRrenderingTestHelper
66  MITK_TEST_CONDITION(renderingHelper.CompareRenderWindowAgainstReference(argc, argv, 20.0) == true,
67  "CompareRenderWindowAgainstReference test result positive?");
68 
69  // use this to generate a reference screenshot or save the file:
70  if (false)
71  {
72  renderingHelper.SaveReferenceScreenShot("/media/hdd/thomasHdd/Pictures/tmp/output.png");
73  }
74 
75  MITK_TEST_END();
76 }
int mitkImageVtkMapper2DLookupTableTest(int argc, char *argv[])
section GeneralTestsDeprecatedOldTestingStyle Deprecated macros All tests with MITK_TEST_BEGIN()
void SaveReferenceScreenShot(std::string fileName)
SaveReferenceScreenShot Convenience method to save a reference screen shot.
bool CompareRenderWindowAgainstReference(int argc, char *argv[], double threshold=10.0)
CompareRenderWindowAgainstReference Convenience method to compare the image rendered in the internal ...
void SetImageProperty(const char *propertyKey, mitk::BaseProperty *property)
This method set the property of the member datastorage.
#define MITK_WARN
Definition: mitkLogMacros.h:19
static Pointer New()
#define MITK_TEST_CONDITION(COND, MSG)
Specialized mitk::Exception for skipped tests.
and MITK_TEST_END()
static Pointer New()