Medical Imaging Interaction Toolkit  2018.4.99-bd7b41ba
Medical Imaging Interaction Toolkit
mitk::ToFCameraDevice Class Referenceabstract

Virtual interface and base class for all Time-of-Flight devices. More...

#include <mitkToFCameraDevice.h>

Inheritance diagram for mitk::ToFCameraDevice:
Collaboration diagram for mitk::ToFCameraDevice:

Public Member Functions

 mitkClassMacroItkParent (ToFCameraDevice, itk::Object)
 
virtual bool OnConnectCamera ()=0
 Opens a connection to the ToF camera. Has to be implemented in the specialized inherited classes. More...
 
virtual bool ConnectCamera ()
 ConnectCamera Internally calls OnConnectCamera() of the respective device implementation. More...
 
virtual bool DisconnectCamera ()=0
 closes the connection to the camera More...
 
virtual void StartCamera ()=0
 starts the continuous updating of the camera. A separate thread updates the source data, the main thread processes the source data and creates images and coordinates More...
 
virtual void StopCamera ()
 stops the continuous updating of the camera More...
 
virtual bool IsCameraActive ()
 returns true if the camera is connected and started More...
 
virtual bool IsCameraConnected ()
 returns true if the camera is connected More...
 
virtual void UpdateCamera ()=0
 updates the camera for image acquisition More...
 
virtual void GetAmplitudes (float *amplitudeArray, int &imageSequence)=0
 gets the amplitude data from the ToF camera as the strength of the active illumination of every pixel These values can be used to determine the quality of the distance values. The higher the amplitude value, the higher the accuracy of the according distance value More...
 
virtual void GetIntensities (float *intensityArray, int &imageSequence)=0
 gets the intensity data from the ToF camera as a greyscale image More...
 
virtual void GetDistances (float *distanceArray, int &imageSequence)=0
 gets the distance data from the ToF camera measuring the distance between the camera and the different object points in millimeters More...
 
virtual void GetAllImages (float *distanceArray, float *amplitudeArray, float *intensityArray, char *sourceDataArray, int requiredImageSequence, int &capturedImageSequence, unsigned char *rgbDataArray=nullptr)=0
 gets the 3 images (distance, amplitude, intensity) from the ToF camera. Caution! The user is responsible for allocating and deleting the images. More...
 
virtual int GetCaptureWidth ()
 get the currently set capture width More...
 
virtual int GetCaptureHeight ()
 get the currently set capture height More...
 
virtual int GetSourceDataSize ()
 get the currently set source data size More...
 
virtual int GetBufferSize ()
 get the currently set buffer size More...
 
virtual int GetMaxBufferSize ()
 get the currently set max buffer size More...
 
void SetBoolProperty (const char *propertyKey, bool boolValue)
 set a bool property in the property list More...
 
void SetIntProperty (const char *propertyKey, int intValue)
 set an int property in the property list More...
 
void SetFloatProperty (const char *propertyKey, float floatValue)
 set a float property in the property list More...
 
void SetStringProperty (const char *propertyKey, const char *stringValue)
 set a string property in the property list More...
 
virtual void SetProperty (const char *propertyKey, BaseProperty *propertyValue)
 set a BaseProperty property in the property list More...
 
virtual BasePropertyGetProperty (const char *propertyKey)
 get a BaseProperty from the property list More...
 
bool GetBoolProperty (const char *propertyKey, bool &boolValue)
 get a bool from the property list More...
 
bool GetStringProperty (const char *propertyKey, std::string &string)
 get a string from the property list More...
 
bool GetIntProperty (const char *propertyKey, int &integer)
 get an int from the property list More...
 
virtual int GetRGBCaptureWidth ()
 
virtual int GetRGBCaptureHeight ()
 

Protected Member Functions

 ToFCameraDevice ()
 
 ~ToFCameraDevice () override
 
virtual void AllocatePixelArrays ()
 method for allocating memory for pixel arrays m_IntensityArray, m_DistanceArray and m_AmplitudeArray More...
 
virtual void CleanupPixelArrays ()
 method for cleanup memory allocated for pixel arrays m_IntensityArray, m_DistanceArray and m_AmplitudeArray More...
 

Protected Attributes

float * m_IntensityArray
 float array holding the intensity image More...
 
float * m_DistanceArray
 float array holding the distance image More...
 
float * m_AmplitudeArray
 float array holding the amplitude image More...
 
int m_BufferSize
 buffer size of the image buffer needed for loss-less acquisition of range data More...
 
int m_MaxBufferSize
 maximal buffer size needed for initialization of data arrays. Default value is 100. More...
 
int m_CurrentPos
 current position in the buffer which will be retrieved by the Get methods More...
 
int m_FreePos
 current position in the buffer which will be filled with data acquired from the hardware More...
 
int m_CaptureWidth
 width of the range image (x dimension) More...
 
int m_CaptureHeight
 height of the range image (y dimension) More...
 
int m_PixelNumber
 number of pixels in the range image (m_CaptureWidth*m_CaptureHeight) More...
 
int m_RGBImageWidth
 width of the RGB image (x dimension) More...
 
int m_RGBImageHeight
 height of the RGB image (y dimension) More...
 
int m_RGBPixelNumber
 number of pixels in the range image (m_RGBImageWidth*m_RGBImageHeight) More...
 
int m_SourceDataSize
 size of the PMD source data More...
 
itk::MultiThreader::Pointer m_MultiThreader
 itk::MultiThreader used for thread handling More...
 
itk::FastMutexLock::Pointer m_ImageMutex
 mutex for images provided by the range camera More...
 
itk::FastMutexLock::Pointer m_CameraActiveMutex
 mutex for the cameraActive flag More...
 
int m_ThreadID
 ID of the started thread. More...
 
bool m_CameraActive
 flag indicating if the camera is currently active or not. Caution: thread safe access only! More...
 
bool m_CameraConnected
 flag indicating if the camera is successfully connected or not. Caution: thread safe access only! More...
 
int m_ImageSequence
 counter for acquired images More...
 
PropertyList::Pointer m_PropertyList
 a list of the corresponding properties More...
 

Detailed Description

Virtual interface and base class for all Time-of-Flight devices.

Definition at line 36 of file mitkToFCameraDevice.h.

Constructor & Destructor Documentation

◆ ToFCameraDevice()

◆ ~ToFCameraDevice()

mitk::ToFCameraDevice::~ToFCameraDevice ( )
overrideprotected

Definition at line 42 of file mitkToFCameraDevice.cpp.

Member Function Documentation

◆ AllocatePixelArrays()

void mitk::ToFCameraDevice::AllocatePixelArrays ( )
protectedvirtual

method for allocating memory for pixel arrays m_IntensityArray, m_DistanceArray and m_AmplitudeArray

Reimplemented in mitk::ToFCameraPMDRawDataDevice.

Definition at line 129 of file mitkToFCameraDevice.cpp.

References CleanupPixelArrays(), m_AmplitudeArray, m_DistanceArray, m_IntensityArray, and m_PixelNumber.

Referenced by mitk::ToFCameraMITKPlayerDevice::OnConnectCamera(), and mitk::ToFCameraPMDDevice::OnConnectCamera().

◆ CleanupPixelArrays()

void mitk::ToFCameraDevice::CleanupPixelArrays ( )
protectedvirtual

method for cleanup memory allocated for pixel arrays m_IntensityArray, m_DistanceArray and m_AmplitudeArray

Reimplemented in mitk::ToFCameraPMDRawDataDevice.

Definition at line 113 of file mitkToFCameraDevice.cpp.

References m_AmplitudeArray, m_DistanceArray, and m_IntensityArray.

Referenced by AllocatePixelArrays(), and mitk::ToFCameraPMDDevice::~ToFCameraPMDDevice().

◆ ConnectCamera()

bool mitk::ToFCameraDevice::ConnectCamera ( )
virtual

ConnectCamera Internally calls OnConnectCamera() of the respective device implementation.

Returns
True for success.

Reimplemented in mitk::ToFCameraPMDRawDataCamBoardDevice.

Definition at line 174 of file mitkToFCameraDevice.cpp.

References OnConnectCamera().

◆ DisconnectCamera()

virtual bool mitk::ToFCameraDevice::DisconnectCamera ( )
pure virtual

◆ GetAllImages()

virtual void mitk::ToFCameraDevice::GetAllImages ( float *  distanceArray,
float *  amplitudeArray,
float *  intensityArray,
char *  sourceDataArray,
int  requiredImageSequence,
int &  capturedImageSequence,
unsigned char *  rgbDataArray = nullptr 
)
pure virtual

gets the 3 images (distance, amplitude, intensity) from the ToF camera. Caution! The user is responsible for allocating and deleting the images.

Parameters
distanceArraycontains the returned distance data as an array.
amplitudeArraycontains the returned amplitude data as an array.
intensityArraycontains the returned intensity data as an array.
sourceDataArraycontains the complete source data from the camera device.
requiredImageSequencethe required image sequence number
capturedImageSequencethe actually captured image sequence number

Implemented in mitk::KinectV2Device, mitk::KinectDevice, mitk::ToFCameraMESADevice, mitk::ToFCameraPMDDevice, mitk::ToFCameraPMDRawDataDevice, mitk::ToFCameraMITKPlayerDevice, and mitk::ToFCameraPMDRawDataCamBoardDevice.

◆ GetAmplitudes()

virtual void mitk::ToFCameraDevice::GetAmplitudes ( float *  amplitudeArray,
int &  imageSequence 
)
pure virtual

gets the amplitude data from the ToF camera as the strength of the active illumination of every pixel These values can be used to determine the quality of the distance values. The higher the amplitude value, the higher the accuracy of the according distance value

Parameters
imageSequencethe actually captured image sequence number
amplitudeArraycontains the returned amplitude data as an array.

Implemented in mitk::KinectV2Device, mitk::KinectDevice, mitk::ToFCameraMESADevice, mitk::ToFCameraPMDDevice, mitk::ToFCameraPMDRawDataDevice, mitk::ToFCameraMITKPlayerDevice, and mitk::ToFCameraPMDRawDataCamBoardDevice.

◆ GetBoolProperty()

bool mitk::ToFCameraDevice::GetBoolProperty ( const char *  propertyKey,
bool &  boolValue 
)

◆ GetBufferSize()

virtual int mitk::ToFCameraDevice::GetBufferSize ( )
virtual

get the currently set buffer size

Returns
buffer size

◆ GetCaptureHeight()

virtual int mitk::ToFCameraDevice::GetCaptureHeight ( )
virtual

◆ GetCaptureWidth()

virtual int mitk::ToFCameraDevice::GetCaptureWidth ( )
virtual

◆ GetDistances()

virtual void mitk::ToFCameraDevice::GetDistances ( float *  distanceArray,
int &  imageSequence 
)
pure virtual

gets the distance data from the ToF camera measuring the distance between the camera and the different object points in millimeters

Parameters
distanceArraycontains the returned distances data as an array.
imageSequencethe actually captured image sequence number

Implemented in mitk::KinectV2Device, mitk::KinectDevice, mitk::ToFCameraMESADevice, mitk::ToFCameraPMDDevice, mitk::ToFCameraPMDRawDataDevice, mitk::ToFCameraMITKPlayerDevice, and mitk::ToFCameraPMDRawDataCamBoardDevice.

◆ GetIntensities()

virtual void mitk::ToFCameraDevice::GetIntensities ( float *  intensityArray,
int &  imageSequence 
)
pure virtual

gets the intensity data from the ToF camera as a greyscale image

Parameters
intensityArraycontains the returned intensities data as an array.
imageSequencethe actually captured image sequence number

Implemented in mitk::KinectV2Device, mitk::KinectDevice, mitk::ToFCameraMESADevice, mitk::ToFCameraPMDDevice, mitk::ToFCameraPMDRawDataDevice, mitk::ToFCameraMITKPlayerDevice, and mitk::ToFCameraPMDRawDataCamBoardDevice.

◆ GetIntProperty()

bool mitk::ToFCameraDevice::GetIntProperty ( const char *  propertyKey,
int &  integer 
)

◆ GetMaxBufferSize()

virtual int mitk::ToFCameraDevice::GetMaxBufferSize ( )
virtual

get the currently set max buffer size

Returns
max buffer size

◆ GetProperty()

BaseProperty * mitk::ToFCameraDevice::GetProperty ( const char *  propertyKey)
virtual

get a BaseProperty from the property list

Definition at line 71 of file mitkToFCameraDevice.cpp.

References m_PropertyList.

Referenced by mitk::KinectV2Device::Acquire(), GetBoolProperty(), GetIntProperty(), and GetStringProperty().

◆ GetRGBCaptureHeight()

int mitk::ToFCameraDevice::GetRGBCaptureHeight ( )
virtual

Reimplemented in mitk::KinectV2Device, and mitk::KinectDevice.

Definition at line 147 of file mitkToFCameraDevice.cpp.

References m_RGBImageHeight.

◆ GetRGBCaptureWidth()

int mitk::ToFCameraDevice::GetRGBCaptureWidth ( )
virtual

Reimplemented in mitk::KinectV2Device, and mitk::KinectDevice.

Definition at line 142 of file mitkToFCameraDevice.cpp.

References m_RGBImageWidth.

◆ GetSourceDataSize()

virtual int mitk::ToFCameraDevice::GetSourceDataSize ( )
virtual

get the currently set source data size

Returns
source data size

◆ GetStringProperty()

bool mitk::ToFCameraDevice::GetStringProperty ( const char *  propertyKey,
std::string &  string 
)

get a string from the property list

Definition at line 86 of file mitkToFCameraDevice.cpp.

References GetProperty().

Referenced by mitk::ToFCameraPMDPlayerDevice::SetProperty(), and mitk::ToFCameraMITKPlayerDevice::SetProperty().

◆ IsCameraActive()

bool mitk::ToFCameraDevice::IsCameraActive ( )
virtual

◆ IsCameraConnected()

bool mitk::ToFCameraDevice::IsCameraConnected ( )
virtual

returns true if the camera is connected

Definition at line 181 of file mitkToFCameraDevice.cpp.

References m_CameraConnected.

◆ mitkClassMacroItkParent()

mitk::ToFCameraDevice::mitkClassMacroItkParent ( ToFCameraDevice  ,
itk::Object   
)

◆ OnConnectCamera()

virtual bool mitk::ToFCameraDevice::OnConnectCamera ( )
pure virtual

Opens a connection to the ToF camera. Has to be implemented in the specialized inherited classes.

Returns
True for success.

Implemented in mitk::KinectV2Device, mitk::KinectDevice, mitk::ToFCameraPMDDevice, mitk::ToFCameraMESADevice, mitk::ToFCameraMITKPlayerDevice, and mitk::ToFCameraPMDRawDataDevice.

Referenced by ConnectCamera().

◆ SetBoolProperty()

void mitk::ToFCameraDevice::SetBoolProperty ( const char *  propertyKey,
bool  boolValue 
)

set a bool property in the property list

Definition at line 46 of file mitkToFCameraDevice.cpp.

References mitk::BoolProperty::New(), and SetProperty().

Referenced by mitk::ToFCameraMITKPlayerDevice::OnConnectCamera(), and mitk::KinectDevice::OnConnectCamera().

◆ SetFloatProperty()

void mitk::ToFCameraDevice::SetFloatProperty ( const char *  propertyKey,
float  floatValue 
)

set a float property in the property list

Definition at line 56 of file mitkToFCameraDevice.cpp.

References mitk::FloatProperty::New(), and SetProperty().

◆ SetIntProperty()

void mitk::ToFCameraDevice::SetIntProperty ( const char *  propertyKey,
int  intValue 
)

set an int property in the property list

Definition at line 51 of file mitkToFCameraDevice.cpp.

References mitk::IntProperty::New(), and SetProperty().

◆ SetProperty()

◆ SetStringProperty()

void mitk::ToFCameraDevice::SetStringProperty ( const char *  propertyKey,
const char *  stringValue 
)

set a string property in the property list

Definition at line 61 of file mitkToFCameraDevice.cpp.

References mitk::StringProperty::New(), and SetProperty().

◆ StartCamera()

virtual void mitk::ToFCameraDevice::StartCamera ( )
pure virtual

starts the continuous updating of the camera. A separate thread updates the source data, the main thread processes the source data and creates images and coordinates

Implemented in mitk::KinectV2Device, mitk::KinectDevice, mitk::ToFCameraPMDDevice, mitk::ToFCameraMESADevice, mitk::ToFCameraMITKPlayerDevice, and mitk::ToFCameraPMDRawDataDevice.

◆ StopCamera()

void mitk::ToFCameraDevice::StopCamera ( )
virtual

stops the continuous updating of the camera

Reimplemented in mitk::KinectV2Device, mitk::KinectDevice, mitk::ToFCameraMESADevice, and mitk::ToFCameraPMDRawDataDevice.

Definition at line 152 of file mitkToFCameraDevice.cpp.

References m_CameraActive, m_CameraActiveMutex, m_MultiThreader, and m_ThreadID.

◆ UpdateCamera()

virtual void mitk::ToFCameraDevice::UpdateCamera ( )
pure virtual

Member Data Documentation

◆ m_AmplitudeArray

◆ m_BufferSize

◆ m_CameraActive

bool mitk::ToFCameraDevice::m_CameraActive
protected

flag indicating if the camera is currently active or not. Caution: thread safe access only!

Definition at line 217 of file mitkToFCameraDevice.h.

Referenced by mitk::ToFCameraPMDRawDataCamBoardDevice::GetAllImages(), mitk::ToFCameraPMDRawDataDevice::GetAllImages(), mitk::ToFCameraPMDDevice::GetAllImages(), mitk::ToFCameraMESADevice::GetAllImages(), mitk::KinectDevice::GetAllImages(), mitk::KinectV2Device::GetAllImages(), mitk::ToFCameraPMDRawDataCamBoardDevice::GetAmplitudes(), mitk::ToFCameraPMDRawDataDevice::GetAmplitudes(), mitk::ToFCameraPMDDevice::GetAmplitudes(), mitk::ToFCameraMESADevice::GetAmplitudes(), mitk::KinectDevice::GetAmplitudes(), mitk::KinectV2Device::GetAmplitudes(), mitk::ToFCameraPMDRawDataCamBoardDevice::GetDistances(), mitk::ToFCameraPMDRawDataDevice::GetDistances(), mitk::ToFCameraPMDDevice::GetDistances(), mitk::ToFCameraMESADevice::GetDistances(), mitk::KinectDevice::GetDistances(), mitk::KinectV2Device::GetDistances(), mitk::ToFCameraPMDRawDataCamBoardDevice::GetIntensities(), mitk::ToFCameraPMDRawDataDevice::GetIntensities(), mitk::ToFCameraPMDDevice::GetIntensities(), mitk::ToFCameraMESADevice::GetIntensities(), mitk::ToFCameraPMDRawDataDevice::IsCameraActive(), mitk::ToFCameraMESADevice::IsCameraActive(), IsCameraActive(), mitk::KinectDevice::IsCameraActive(), mitk::KinectV2Device::IsCameraActive(), mitk::ToFCameraPMDRawDataDevice::StartCamera(), mitk::ToFCameraMITKPlayerDevice::StartCamera(), mitk::ToFCameraMESADevice::StartCamera(), mitk::ToFCameraPMDDevice::StartCamera(), mitk::KinectDevice::StartCamera(), mitk::KinectV2Device::StartCamera(), mitk::ToFCameraPMDRawDataDevice::StopCamera(), mitk::ToFCameraMESADevice::StopCamera(), mitk::KinectDevice::StopCamera(), StopCamera(), and mitk::KinectV2Device::StopCamera().

◆ m_CameraActiveMutex

◆ m_CameraConnected

◆ m_CaptureHeight

◆ m_CaptureWidth

◆ m_CurrentPos

int mitk::ToFCameraDevice::m_CurrentPos
protected

◆ m_DistanceArray

◆ m_FreePos

◆ m_ImageMutex

◆ m_ImageSequence

int mitk::ToFCameraDevice::m_ImageSequence
protected

counter for acquired images

Definition at line 219 of file mitkToFCameraDevice.h.

Referenced by mitk::ToFCameraMITKPlayerDevice::Acquire(), mitk::ToFCameraMESADevice::Acquire(), mitk::ToFCameraPMDDevice::Acquire(), mitk::KinectDevice::Acquire(), mitk::ToFCameraPMDRawDataDevice::Acquire(), mitk::KinectV2Device::Acquire(), mitk::ToFCameraPMDRawDataCamBoardDevice::GetAllImages(), mitk::ToFCameraMITKPlayerDevice::GetAllImages(), mitk::ToFCameraPMDRawDataDevice::GetAllImages(), mitk::ToFCameraPMDDevice::GetAllImages(), mitk::ToFCameraMESADevice::GetAllImages(), mitk::KinectDevice::GetAllImages(), mitk::KinectV2Device::GetAllImages(), mitk::ToFCameraPMDRawDataCamBoardDevice::GetAmplitudes(), mitk::ToFCameraMITKPlayerDevice::GetAmplitudes(), mitk::ToFCameraPMDRawDataDevice::GetAmplitudes(), mitk::ToFCameraPMDDevice::GetAmplitudes(), mitk::ToFCameraMESADevice::GetAmplitudes(), mitk::KinectDevice::GetAmplitudes(), mitk::KinectV2Device::GetAmplitudes(), mitk::ToFCameraPMDRawDataCamBoardDevice::GetDistances(), mitk::ToFCameraMITKPlayerDevice::GetDistances(), mitk::ToFCameraPMDRawDataDevice::GetDistances(), mitk::ToFCameraPMDDevice::GetDistances(), mitk::ToFCameraMESADevice::GetDistances(), mitk::KinectDevice::GetDistances(), mitk::KinectV2Device::GetDistances(), mitk::ToFCameraPMDRawDataCamBoardDevice::GetIntensities(), mitk::ToFCameraMITKPlayerDevice::GetIntensities(), mitk::ToFCameraPMDRawDataDevice::GetIntensities(), mitk::ToFCameraPMDDevice::GetIntensities(), mitk::ToFCameraMESADevice::GetIntensities(), mitk::ToFCameraMITKPlayerDevice::GetRgb(), mitk::ToFCameraPMDRawDataDevice::StartCamera(), mitk::ToFCameraMITKPlayerDevice::StartCamera(), mitk::ToFCameraMESADevice::StartCamera(), mitk::ToFCameraPMDDevice::StartCamera(), mitk::KinectDevice::StartCamera(), and mitk::KinectV2Device::StartCamera().

◆ m_IntensityArray

◆ m_MaxBufferSize

◆ m_MultiThreader

◆ m_PixelNumber

◆ m_PropertyList

◆ m_RGBImageHeight

◆ m_RGBImageWidth

◆ m_RGBPixelNumber

◆ m_SourceDataSize

◆ m_ThreadID


The documentation for this class was generated from the following files: