Medical Imaging Interaction Toolkit  2023.04.00
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...
 
std::mutex m_ImageMutex
 mutex for images provided by the range camera More...
 
std::mutex m_CameraActiveMutex
 mutex for the cameraActive flag More...
 
std::thread m_Thread
 
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 37 of file mitkToFCameraDevice.h.

Constructor & Destructor Documentation

◆ ToFCameraDevice()

mitk::ToFCameraDevice::ToFCameraDevice ( )
protected

◆ ~ToFCameraDevice()

mitk::ToFCameraDevice::~ToFCameraDevice ( )
overrideprotected

Member Function Documentation

◆ AllocatePixelArrays()

virtual void mitk::ToFCameraDevice::AllocatePixelArrays ( )
protectedvirtual

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

Reimplemented in mitk::ToFCameraPMDRawDataDevice.

◆ CleanupPixelArrays()

virtual void mitk::ToFCameraDevice::CleanupPixelArrays ( )
protectedvirtual

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

Reimplemented in mitk::ToFCameraPMDRawDataDevice.

◆ ConnectCamera()

virtual bool mitk::ToFCameraDevice::ConnectCamera ( )
virtual

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

Returns
True for success.

Reimplemented in mitk::ToFCameraPMDRawDataCamBoardDevice.

◆ 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
rgbDataArray

Implemented in mitk::ToFCameraMITKPlayerDevice, mitk::KinectV2Device, mitk::KinectDevice, mitk::ToFCameraMESADevice, mitk::ToFCameraPMDDevice, mitk::ToFCameraPMDRawDataDevice, 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::ToFCameraMITKPlayerDevice, mitk::KinectV2Device, mitk::KinectDevice, mitk::ToFCameraMESADevice, mitk::ToFCameraPMDDevice, mitk::ToFCameraPMDRawDataDevice, and mitk::ToFCameraPMDRawDataCamBoardDevice.

◆ GetBoolProperty()

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

get a bool from the property list

◆ GetBufferSize()

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

get the currently set buffer size

Returns
buffer size

◆ GetCaptureHeight()

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

get the currently set capture height

Returns
capture height

◆ GetCaptureWidth()

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

get the currently set capture width

Returns
capture width

◆ 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::ToFCameraMITKPlayerDevice, mitk::KinectV2Device, mitk::KinectDevice, mitk::ToFCameraMESADevice, mitk::ToFCameraPMDDevice, mitk::ToFCameraPMDRawDataDevice, 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::ToFCameraMITKPlayerDevice, mitk::KinectV2Device, mitk::KinectDevice, mitk::ToFCameraMESADevice, mitk::ToFCameraPMDDevice, mitk::ToFCameraPMDRawDataDevice, and mitk::ToFCameraPMDRawDataCamBoardDevice.

◆ GetIntProperty()

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

get an int from the property list

◆ GetMaxBufferSize()

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

get the currently set max buffer size

Returns
max buffer size

◆ GetProperty()

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

get a BaseProperty from the property list

◆ GetRGBCaptureHeight()

virtual int mitk::ToFCameraDevice::GetRGBCaptureHeight ( )
virtual

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

◆ GetRGBCaptureWidth()

virtual int mitk::ToFCameraDevice::GetRGBCaptureWidth ( )
virtual

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

◆ 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

◆ IsCameraActive()

virtual bool mitk::ToFCameraDevice::IsCameraActive ( )
virtual

returns true if the camera is connected and started

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

◆ IsCameraConnected()

virtual bool mitk::ToFCameraDevice::IsCameraConnected ( )
virtual

returns true if the camera is connected

◆ 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::ToFCameraMITKPlayerDevice, mitk::KinectV2Device, mitk::KinectDevice, mitk::ToFCameraPMDDevice, mitk::ToFCameraMESADevice, and mitk::ToFCameraPMDRawDataDevice.

◆ SetBoolProperty()

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

set a bool property in the property list

◆ SetFloatProperty()

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

set a float property in the property list

◆ SetIntProperty()

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

set an int property in the property list

◆ SetProperty()

◆ SetStringProperty()

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

set a string property in the property list

◆ 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::ToFCameraMITKPlayerDevice, mitk::KinectV2Device, mitk::KinectDevice, mitk::ToFCameraPMDDevice, mitk::ToFCameraMESADevice, and mitk::ToFCameraPMDRawDataDevice.

◆ StopCamera()

virtual void mitk::ToFCameraDevice::StopCamera ( )
virtual

stops the continuous updating of the camera

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

◆ UpdateCamera()

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

Member Data Documentation

◆ m_AmplitudeArray

float* mitk::ToFCameraDevice::m_AmplitudeArray
protected

float array holding the amplitude image

Definition at line 203 of file mitkToFCameraDevice.h.

◆ m_BufferSize

int mitk::ToFCameraDevice::m_BufferSize
protected

buffer size of the image buffer needed for loss-less acquisition of range data

Definition at line 204 of file mitkToFCameraDevice.h.

◆ 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 218 of file mitkToFCameraDevice.h.

◆ m_CameraActiveMutex

std::mutex mitk::ToFCameraDevice::m_CameraActiveMutex
protected

mutex for the cameraActive flag

Definition at line 216 of file mitkToFCameraDevice.h.

◆ m_CameraConnected

bool mitk::ToFCameraDevice::m_CameraConnected
protected

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

Definition at line 219 of file mitkToFCameraDevice.h.

◆ m_CaptureHeight

int mitk::ToFCameraDevice::m_CaptureHeight
protected

height of the range image (y dimension)

Definition at line 209 of file mitkToFCameraDevice.h.

◆ m_CaptureWidth

int mitk::ToFCameraDevice::m_CaptureWidth
protected

width of the range image (x dimension)

Definition at line 208 of file mitkToFCameraDevice.h.

◆ m_CurrentPos

int mitk::ToFCameraDevice::m_CurrentPos
protected

current position in the buffer which will be retrieved by the Get methods

Definition at line 206 of file mitkToFCameraDevice.h.

◆ m_DistanceArray

float* mitk::ToFCameraDevice::m_DistanceArray
protected

float array holding the distance image

Definition at line 202 of file mitkToFCameraDevice.h.

◆ m_FreePos

int mitk::ToFCameraDevice::m_FreePos
protected

current position in the buffer which will be filled with data acquired from the hardware

Definition at line 207 of file mitkToFCameraDevice.h.

◆ m_ImageMutex

std::mutex mitk::ToFCameraDevice::m_ImageMutex
protected

mutex for images provided by the range camera

Definition at line 215 of file mitkToFCameraDevice.h.

◆ m_ImageSequence

int mitk::ToFCameraDevice::m_ImageSequence
protected

counter for acquired images

Definition at line 220 of file mitkToFCameraDevice.h.

◆ m_IntensityArray

float* mitk::ToFCameraDevice::m_IntensityArray
protected

float array holding the intensity image

Definition at line 201 of file mitkToFCameraDevice.h.

◆ m_MaxBufferSize

int mitk::ToFCameraDevice::m_MaxBufferSize
protected

maximal buffer size needed for initialization of data arrays. Default value is 100.

Definition at line 205 of file mitkToFCameraDevice.h.

◆ m_PixelNumber

int mitk::ToFCameraDevice::m_PixelNumber
protected

number of pixels in the range image (m_CaptureWidth*m_CaptureHeight)

Definition at line 210 of file mitkToFCameraDevice.h.

◆ m_PropertyList

PropertyList::Pointer mitk::ToFCameraDevice::m_PropertyList
protected

a list of the corresponding properties

Definition at line 222 of file mitkToFCameraDevice.h.

◆ m_RGBImageHeight

int mitk::ToFCameraDevice::m_RGBImageHeight
protected

height of the RGB image (y dimension)

Definition at line 212 of file mitkToFCameraDevice.h.

◆ m_RGBImageWidth

int mitk::ToFCameraDevice::m_RGBImageWidth
protected

width of the RGB image (x dimension)

Definition at line 211 of file mitkToFCameraDevice.h.

◆ m_RGBPixelNumber

int mitk::ToFCameraDevice::m_RGBPixelNumber
protected

number of pixels in the range image (m_RGBImageWidth*m_RGBImageHeight)

Definition at line 213 of file mitkToFCameraDevice.h.

◆ m_SourceDataSize

int mitk::ToFCameraDevice::m_SourceDataSize
protected

size of the PMD source data

Definition at line 214 of file mitkToFCameraDevice.h.

◆ m_Thread

std::thread mitk::ToFCameraDevice::m_Thread
protected

Definition at line 217 of file mitkToFCameraDevice.h.


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