MITK-IGT
IGT Extension of MITK
Loading...
Searching...
No Matches
mitkToFCameraMITKPlayerControllerTest.cpp
Go to the documentation of this file.
1/*============================================================================
2
3The Medical Imaging Interaction Toolkit (MITK)
4
5Copyright (c) German Cancer Research Center (DKFZ)
6All rights reserved.
7
8Use of this source code is governed by a 3-clause BSD license that can be
9found in the LICENSE file.
10
11============================================================================*/
12
13#include <mitkTestingMacros.h>
16#include <mitkToFImageGrabber.h>
17
18#include <mitkPixelType.h>
19
20#include <mitkImageWriter.h>
21
22namespace mitk
23{
25 {
26
27 public:
28 inline ToFCameraMITKPlayerController::Pointer GetController(){return m_Controller;};
29
32 private:
33 };
34} // end namespace mitk
35
39void ReadFileFormatTestCase(std::string extension, mitk::ToFImageGrabber::Pointer grabber)
40{
41 MITK_INFO<<"Checking image processing with file format " << extension.c_str();
42 //create some test image
43 unsigned int* dim = new unsigned int[3];
44 dim[0] = 100;
45 dim[1] = 100;
46 dim[2] = 1;
47 int end = dim[0]*dim[1]*dim[2];
48 float* data = new float[end];
49 int index = 0;
50
51 while(index != end)
52 {
53 data[index] = (float) index;
54 index++;
55 }
56
57 mitk::Image::Pointer testImage = mitk::Image::New();
58
59 mitk::PixelType FloatType = mitk::MakeScalarPixelType<float>();
60 testImage->Initialize( FloatType, 3, dim);
61 testImage->SetVolume(data);
62
63 // save image as dist, ampl and inten image to file.
64 std::string distanceImageFileName("distTestImage");
65 std::string amplitudeImageFileName("amplTestImage");
66 std::string intensityImageFileName("intenTestImage");
67
68 mitk::ImageWriter::Pointer writer = mitk::ImageWriter::New();
69 writer->SetInput(testImage);
70 writer->SetExtension(extension);
71 writer->SetFileName(distanceImageFileName);
72 writer->Update();
73
74 writer->SetFileName(amplitudeImageFileName);
75 writer->Update();
76
77 writer->SetFileName(intensityImageFileName);
78 writer->Update();
79
80 // load the files from directory
81
82 grabber->SetStringProperty("DistanceImageFileName", (distanceImageFileName.append(extension)).c_str());
83 grabber->SetStringProperty("AmplitudeImageFileName", (amplitudeImageFileName.append(extension)).c_str());
84 grabber->SetStringProperty("IntensityImageFileName", (intensityImageFileName.append(extension)).c_str());
85
86 MITK_TEST_CONDITION_REQUIRED(grabber->ConnectCamera() ,"Are the image files loaded correctly?");
87
88 mitk::ToFCameraMITKPlayerController::Pointer testObject = static_cast<mitk::ToFCameraMITKPlayerDeviceImpl*>(grabber->GetCameraDevice())->GetController();
89 // test load image from image grabber
90 testObject->UpdateCamera();
91 index = 0;
92 bool distOK = true;
93 bool amplOK = true;
94 bool intenOK = true;
95 float* dist = new float[end];
96 float* ampl = new float[end];
97 float* inten = new float[end];
98 testObject->GetDistances( dist );
99 testObject->GetAmplitudes( ampl );
100 testObject->GetIntensities( inten );
101
102 while( index != end )
103 {
104 if( dist[index] != data[index])
105 {
106 distOK = false;
107 }
108 if( ampl[index] != data[index])
109 {
110 amplOK = false;
111 }
112 if( inten[index] != data[index])
113 {
114 intenOK = false;
115 }
116 index++;
117 }
118
119 MITK_TEST_CONDITION_REQUIRED(distOK ,"Testing correct loading and passing of distance image information!");
120 MITK_TEST_CONDITION_REQUIRED(amplOK ,"Testing correct loading and passing of amplitude image information!");
121 MITK_TEST_CONDITION_REQUIRED(intenOK ,"Testing correct loading and passing of intensity image information!");
122 MITK_TEST_CONDITION_REQUIRED(testObject->CloseCameraConnection(),"Testing disconnection of controller");
123
124 //clean up and delete saved image files
125 if(remove(distanceImageFileName.c_str())!=0)
126 {
127 MITK_ERROR<<"File: "<<distanceImageFileName<<" not successfully deleted!";
128 }
129
130 if(std::remove(amplitudeImageFileName.c_str())!=0)
131 {
132 MITK_ERROR<<"File: "<<amplitudeImageFileName<<" not successfully deleted!";
133 }
134 if(remove(intensityImageFileName.c_str())!=0)
135 {
136 MITK_ERROR<<"File: "<<intensityImageFileName<<" not successfully deleted!";
137 }
138 delete[] dist;
139 delete[] ampl;
140 delete[] inten;
141 delete[] dim;
142}
143
144int mitkToFCameraMITKPlayerControllerTest(int /* argc */, char* /*argv*/[])
145{
146 MITK_TEST_BEGIN("ToFCameraMITKPlayerController");
147
148 mitk::ToFCameraMITKPlayerController::Pointer testObject = mitk::ToFCameraMITKPlayerController::New();
150 mitk::ToFImageGrabber::Pointer imageGrabber = mitk::ToFImageGrabber::New();
151 imageGrabber->SetCameraDevice(deviceImpl);
152
153 MITK_TEST_CONDITION_REQUIRED(!(testObject.GetPointer() == nullptr) ,"Testing initialization class");
154 MITK_TEST_CONDITION_REQUIRED(testObject->GetCaptureHeight()== 0 ,"Testing initialization of CaptureHeight");
155 MITK_TEST_CONDITION_REQUIRED(testObject->GetCaptureWidth()== 0 ,"Testing initialization of CaptureWidth");
156
157 //test correct order of file name member
158 testObject->SetDistanceImageFileName("distTest");
159 testObject->SetAmplitudeImageFileName("amplTest");
160 testObject->SetIntensityImageFileName("intenTest");
161 MITK_TEST_CONDITION_REQUIRED(testObject->GetDistanceImageFileName()== "distTest" ,"Testing correct filename passing - Dist");
162 MITK_TEST_CONDITION_REQUIRED(testObject->GetAmplitudeImageFileName()== "amplTest" ,"Testing correct filename passing - Ampl");
163 MITK_TEST_CONDITION_REQUIRED(testObject->GetIntensityImageFileName()== "intenTest" ,"Testing correct filename passing - Inten");
164
165 //test passing of file name from image grabber
166 imageGrabber->SetStringProperty("DistanceImageFileName", "distPropertyTestName");
167 imageGrabber->SetStringProperty("AmplitudeImageFileName", "amplPropertyTestName");
168 imageGrabber->SetStringProperty("IntensityImageFileName", "intenPropertyTestName");
169 testObject = deviceImpl->GetController();
170 MITK_TEST_CONDITION_REQUIRED(testObject->GetDistanceImageFileName()== "distPropertyTestName" ,"Testing correct filename passing from Image Grabber- Dist");
171 MITK_TEST_CONDITION_REQUIRED(testObject->GetAmplitudeImageFileName()== "amplPropertyTestName" ,"Testing correct filename passing from Image Grabber- Ampl");
172 MITK_TEST_CONDITION_REQUIRED(testObject->GetIntensityImageFileName()== "intenPropertyTestName" ,"Testing correct filename passing from Image Grabber- Inten");
173
174 ReadFileFormatTestCase(".nrrd", imageGrabber);
175
176 deviceImpl->Delete();
177 // end of test
178 MITK_TEST_END();
179
180}
ToFCameraMITKPlayerController::Pointer GetController()
Device class representing a player for MITK-ToF images.
ToFCameraMITKPlayerController::Pointer m_Controller
member holding the corresponding controller
int mitkToFCameraMITKPlayerControllerTest(int, char *[])
void ReadFileFormatTestCase(std::string extension, mitk::ToFImageGrabber::Pointer grabber)
IGT Exceptions.