13#include <itksys/SystemTools.hxx>
16#include "mitkIOUtil.h"
17#include "mitkImageReadAccessor.h"
26 m_NumberOfRGBBytes(0),
30 m_RGBCaptureHeight(0),
31 m_ConnectionCheck(false),
33 m_ToFImageType(ToFImageType3D),
34 m_DistanceImage(nullptr),
35 m_AmplitudeImage(nullptr),
36 m_IntensityImage(nullptr),
38 m_DistanceInfile(nullptr),
39 m_AmplitudeInfile(nullptr),
40 m_IntensityInfile(nullptr),
42 m_IntensityArray(nullptr),
43 m_DistanceArray(nullptr),
44 m_AmplitudeArray(nullptr),
46 m_DistanceImageFileName(
""),
47 m_AmplitudeImageFileName(
""),
48 m_IntensityImageFileName(
""),
49 m_RGBImageFileName(
""),
50 m_PixelStartInFile(0),
62void ToFCameraMITKPlayerController::CleanUp()
109 this->m_AmplitudeImageFileName.empty() &&
110 this->m_IntensityImageFileName.empty() &&
111 this->m_RGBImageFileName.empty())
113 throw std::logic_error(
"No image data file names set");
122 MITK_ERROR <<
"ToF distance image data file empty";
130 MITK_WARN <<
"ToF amplitude image data file empty";
138 MITK_WARN <<
"ToF intensity image data file empty";
146 MITK_WARN <<
"ToF RGB image data file empty";
168 mitk::Image::Pointer infoImage =
nullptr;
186 if (infoImage->GetDimension() == 2)
189 else if (infoImage->GetDimension() == 3)
192 else if (infoImage->GetDimension() == 4)
196 throw std::logic_error(
"Error opening ToF data file: Invalid dimension.");
235 catch(std::exception& e)
237 MITK_ERROR <<
"Error opening ToF data file " << this->
m_InputFileName <<
" " << e.what();
238 throw std::logic_error(
"Error opening ToF data file");
290 itksys::SystemTools::Delay(50);
293void ToFCameraMITKPlayerController::AccessData(
int frame, Image::Pointer image,
float* &data)
297 ImageReadAccessor imgAcc(image, image->GetSliceData(frame));
298 memcpy(data, imgAcc.GetData(), this->m_NumberOfBytes );
302 ImageReadAccessor imgAcc(image, image->GetVolumeData(frame));
303 memcpy(data, imgAcc.GetData(), this->m_NumberOfBytes);
virtual bool CloseCameraConnection()
closes the connection to the camera
unsigned char * m_RGBArray
member holding the current rgb frame
virtual void UpdateCamera()
updates the current image frames from input
Image::Pointer m_RGBImage
~ToFCameraMITKPlayerController() override
float * m_DistanceArray
member holding the current distance frame
Image::Pointer m_DistanceImage
int m_PixelNumber
holds the number of pixels contained in the image
Image::Pointer m_AmplitudeImage
int m_NumberOfBytes
holds the number of bytes contained in the image
std::string m_InputFileName
int m_RGBCaptureHeight
same for RGB image which can be different then depth etc.
ToFImageType m_ToFImageType
type of the ToF image to be played: 3D Volume (ToFImageType3D), temporal 2D image stack (ToFImageType...
virtual void GetIntensities(float *intensityArray)
gets the current intensity frame from the input as a greyscale image
int m_NumberOfRGBBytes
same for RGB image
std::string m_AmplitudeImageFileName
file name of the amplitude image to be played
virtual bool OpenCameraConnection()
opens a connection to the ToF camera
float * m_AmplitudeArray
member holding the current amplitude frame
std::string m_DistanceImageFileName
file name of the distance image to be played
int m_CaptureHeight
holds the height of the image
std::string m_IntensityImageFileName
file name of the intensity image to be played
virtual void GetDistances(float *distanceArray)
gets the current distance frame from the inpug measuring the distance between the camera and the diff...
std::string m_RGBImageFileName
file name of the rgb image to be played
virtual void GetRgb(unsigned char *rgbArray)
gets the current RGB frame from the input if available
int m_CaptureWidth
holds the width of the image
std::vector< bool > m_ImageStatus
int m_RGBPixelNumber
same for RGB image
virtual void SetInputFileName(std::string inputFileName)
virtual void GetAmplitudes(float *amplitudeArray)
gets the current amplitude frame from the input These values can be used to determine the quality of ...
Image::Pointer m_IntensityImage
float * m_IntensityArray
member holding the current intensity frame
ToFCameraMITKPlayerController()
bool m_ConnectionCheck
flag showing whether the camera is connected (true) or not (false)
int m_RGBCaptureWidth
same for RGB image which can be different then depth etc.