28 MITK_TEST_BEGIN(
"mitkPlayerLoadAndRenderRGBDataTest");
32 mitk::ToFCameraMITKPlayerDevice::Pointer playerDevice = mitk::ToFCameraMITKPlayerDevice::New();
34 MITK_TEST_CONDITION_REQUIRED(argc >=2,
"Testing if enough input parameters are set. Usage: Testname, ImageName (must be in MITK_TOF_DATA_DIR), -V /path/to/reference/screenshot");
35 std::string dirname = MITK_TOF_DATA_DIR;
36 std::string rgbFileName = dirname +
"/" + argv[1];
37 playerDevice->SetProperty(
"RGBImageFileName",mitk::StringProperty::New(rgbFileName));
39 MITK_TEST_CONDITION_REQUIRED(playerDevice->IsCameraActive()==
false,
"The device (player) should not be active before starting.");
40 MITK_TEST_CONDITION_REQUIRED(playerDevice->ConnectCamera()==
true,
"ConnectCamera() should return true in case of success.");
41 MITK_TEST_OUTPUT(<<
"Device connected");
42 playerDevice->StartCamera();
43 MITK_TEST_OUTPUT(<<
"Device started");
44 MITK_TEST_CONDITION_REQUIRED(playerDevice->IsCameraActive()==
true,
"After starting the device, the device should be active.");
47 unsigned int captureWidth = playerDevice->GetCaptureWidth();
48 unsigned int captureHeight = playerDevice->GetCaptureHeight();
49 unsigned int numberOfPixels = captureWidth*captureHeight;
50 unsigned char* rgbDataArray =
new unsigned char[numberOfPixels*3];
51 int imageSequence = 0;
54 playerDevice->GetRgb(rgbDataArray, imageSequence);
57 unsigned int dimension[2];
58 dimension[0] = captureWidth;
59 dimension[1] = captureHeight;
60 mitk::Image::Pointer rgbImage = mitk::Image::New();
61 rgbImage->Initialize(mitk::PixelType(mitk::MakePixelType<
unsigned char, itk::RGBPixel<unsigned char>, 3>()), 2, dimension,1);
62 rgbImage->SetSlice(rgbDataArray);
65 mitk::DataNode::Pointer node = mitk::DataNode::New();
66 node->SetData(rgbImage);
72 mitk::RenderingTestHelper renderingHelper(640, 480, argc, argv);
73 renderingHelper.AddNodeToStorage(node);
74 renderingHelper.Render();
77 bool generateReferenceScreenshot =
false;
78 if(generateReferenceScreenshot)
80 renderingHelper.SaveReferenceScreenShot(
"/home/kilgus/Pictures/output.png");
84 MITK_TEST_CONDITION( renderingHelper.CompareRenderWindowAgainstReference(argc, argv) ==
true,
"CompareRenderWindowAgainstReference test result positive?" );
87 itksys::SystemTools::Delay(1000);
88 playerDevice->StopCamera();
89 MITK_TEST_OUTPUT(<<
"Device stopped");
90 MITK_TEST_CONDITION_REQUIRED(playerDevice->IsCameraActive()==
false,
"After stopping the device, the device should be inactive.");
91 MITK_TEST_CONDITION_REQUIRED(playerDevice->DisconnectCamera()==
true,
"DisconnectCamera() should return true in case of success.");
92 MITK_TEST_OUTPUT(<<
"Device disconnected");
93 delete[] rgbDataArray;
95 catch(std::exception &e)
97 MITK_ERROR <<
"Unknown exception occured: " << e.what();