Medical Imaging Interaction Toolkit
2016.11.0
Medical Imaging Interaction Toolkit
|
Interface for all representations of Microsoft Kinect V2 devices. Kinect2Device internally holds an instance of Kinect2Controller and starts a thread that continuously grabs images from the controller. A buffer structure buffers the last acquired images to provide the image data loss-less. More...
#include <mitkKinectV2Device.h>
Public Member Functions | |
mitkClassMacro (KinectV2Device, ToFCameraDevice) | |
Pointer | Clone () const |
virtual bool | OnConnectCamera () |
opens a connection to the ToF camera More... | |
virtual bool | DisconnectCamera () |
closes the connection to the camera More... | |
virtual void | StartCamera () |
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 void | UpdateCamera () |
updates the camera for image acquisition More... | |
virtual bool | IsCameraActive () |
returns whether the camera is currently active or not More... | |
virtual void | GetAmplitudes (float *amplitudeArray, int &imageSequence) |
gets the amplitude data from the ToF camera as the strength of the active illumination of every pixel. Caution! The user is responsible for allocating and deleting the images. 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) |
Does nothing for Kinect V2 as there is no intensity data provided by the device. More... | |
virtual void | GetDistances (float *distanceArray, int &imageSequence) |
gets the distance data from the ToF camera measuring the distance between the camera and the different object points in millimeters. Caution! The user is responsible for allocating and deleting the images. More... | |
virtual void | GetAllImages (float *distanceArray, float *amplitudeArray, float *intensityArray, char *sourceDataArray, int requiredImageSequence, int &capturedImageSequence, unsigned char *rgbDataArray=NULL) |
gets the 3 images (distance, amplitude, intensity) from the ToF camera. Caution! The user is responsible for allocating and deleting the images. More... | |
KinectV2Controller::Pointer | GetController () |
returns the corresponding camera controller More... | |
int | GetRGBCaptureWidth () |
returns the width of the RGB image More... | |
int | GetRGBCaptureHeight () |
returns the height of the RGB image More... | |
Public Member Functions inherited from mitk::ToFCameraDevice | |
mitkClassMacroItkParent (ToFCameraDevice, itk::Object) | |
virtual bool | ConnectCamera () |
ConnectCamera Internally calls OnConnectCamera() of the respective device implementation. More... | |
virtual bool | IsCameraConnected () |
returns true if the camera is connected 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 BaseProperty * | GetProperty (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... | |
Static Public Member Functions | |
static Pointer | New () |
Protected Member Functions | |
KinectV2Device () | |
~KinectV2Device () | |
Protected Member Functions inherited from mitk::ToFCameraDevice | |
ToFCameraDevice () | |
~ToFCameraDevice () | |
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... | |
Static Protected Member Functions | |
static ITK_THREAD_RETURN_TYPE | Acquire (void *pInfoStruct) |
Thread method continuously acquiring images from the ToF hardware. More... | |
Protected Attributes | |
KinectV2Controller::Pointer | m_Controller |
corresponding CameraController More... | |
float ** | m_DistanceDataBuffer |
buffer holding the last distance images More... | |
float ** | m_AmplitudeDataBuffer |
buffer holding the last amplitude images More... | |
unsigned char ** | m_RGBDataBuffer |
buffer holding the last RGB image More... | |
vcl_size_t | m_DepthBufferSize |
Size of depth buffer (i.e. memory size of depth and infrared image) More... | |
vcl_size_t | m_RGBBufferSize |
Size of RGB buffer (i.e. memory size of RGB image) More... | |
vtkSmartPointer< vtkPolyData > | m_PolyData |
Surface generated via the Kinect V2 SDK with default/unknown calibration. More... | |
Protected Attributes inherited from mitk::ToFCameraDevice | |
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... | |
Interface for all representations of Microsoft Kinect V2 devices. Kinect2Device internally holds an instance of Kinect2Controller and starts a thread that continuously grabs images from the controller. A buffer structure buffers the last acquired images to provide the image data loss-less.
mitkException | In case of no connection, an exception is thrown! |
Definition at line 45 of file mitkKinectV2Device.h.
|
protected |
Definition at line 30 of file mitkKinectV2Device.cpp.
References m_Controller, m_PolyData, mitk::KinectV2Controller::New(), and mitk::New().
|
protected |
Definition at line 41 of file mitkKinectV2Device.cpp.
|
staticprotected |
Thread method continuously acquiring images from the ToF hardware.
Definition at line 179 of file mitkKinectV2Device.cpp.
References mitk::ToFCameraDevice::GetBoolProperty(), mitk::ToFCameraDevice::GetProperty(), IsCameraActive(), m_AmplitudeDataBuffer, mitk::ToFCameraDevice::m_BufferSize, m_Controller, mitk::ToFCameraDevice::m_CurrentPos, m_DistanceDataBuffer, mitk::ToFCameraDevice::m_FreePos, mitk::ToFCameraDevice::m_ImageMutex, mitk::ToFCameraDevice::m_ImageSequence, m_PolyData, m_RGBDataBuffer, MITK_INFO, mitk::RealTimeClock::New(), and UpdateCamera().
Referenced by StartCamera().
Pointer mitk::KinectV2Device::Clone | ( | ) | const |
|
virtual |
closes the connection to the camera
Implements mitk::ToFCameraDevice.
Definition at line 94 of file mitkKinectV2Device.cpp.
References mitk::ToFCameraDevice::m_AmplitudeArray, m_AmplitudeDataBuffer, mitk::ToFCameraDevice::m_CameraConnected, m_Controller, mitk::ToFCameraDevice::m_DistanceArray, m_DistanceDataBuffer, mitk::ToFCameraDevice::m_MaxBufferSize, and m_RGBDataBuffer.
|
virtual |
gets the 3 images (distance, amplitude, intensity) from the ToF camera. Caution! The user is responsible for allocating and deleting the images.
distanceArray | Contains the distance data as an array. |
amplitudeArray | Contains the infrared image. |
intensityArray | Does nothing for Kinect V2. |
sourceDataArray | Does nothing for Kinect V2. |
requiredImageSequence | The required image sequence number. |
capturedImageSequence | Does nothing for Kinect V2. |
Implements mitk::ToFCameraDevice.
Definition at line 287 of file mitkKinectV2Device.cpp.
References m_AmplitudeDataBuffer, mitk::ToFCameraDevice::m_BufferSize, mitk::ToFCameraDevice::m_CameraActive, mitk::ToFCameraDevice::m_CurrentPos, m_DepthBufferSize, m_DistanceDataBuffer, mitk::ToFCameraDevice::m_ImageMutex, mitk::ToFCameraDevice::m_ImageSequence, m_PolyData, m_RGBBufferSize, m_RGBDataBuffer, MITK_WARN, mitk::Surface::New(), mitk::SmartPointerProperty::New(), mitk::New(), and mitk::ToFCameraDevice::SetProperty().
|
virtual |
gets the amplitude data from the ToF camera as the strength of the active illumination of every pixel. Caution! The user is responsible for allocating and deleting the images. 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
imageSequence | the actually captured image sequence number |
amplitudeArray | contains the returned amplitude data as an array. |
Implements mitk::ToFCameraDevice.
Definition at line 253 of file mitkKinectV2Device.cpp.
References m_AmplitudeDataBuffer, mitk::ToFCameraDevice::m_CameraActive, mitk::ToFCameraDevice::m_CurrentPos, m_DepthBufferSize, mitk::ToFCameraDevice::m_ImageMutex, mitk::ToFCameraDevice::m_ImageSequence, and MITK_WARN.
KinectV2Controller::Pointer mitk::KinectV2Device::GetController | ( | ) |
returns the corresponding camera controller
Definition at line 340 of file mitkKinectV2Device.cpp.
References m_Controller.
|
virtual |
gets the distance data from the ToF camera measuring the distance between the camera and the different object points in millimeters. Caution! The user is responsible for allocating and deleting the images.
distanceArray | contains the returned distances data as an array. |
imageSequence | the actually captured image sequence number |
Implements mitk::ToFCameraDevice.
Definition at line 272 of file mitkKinectV2Device.cpp.
References mitk::ToFCameraDevice::m_CameraActive, mitk::ToFCameraDevice::m_CurrentPos, m_DepthBufferSize, m_DistanceDataBuffer, mitk::ToFCameraDevice::m_ImageMutex, mitk::ToFCameraDevice::m_ImageSequence, and MITK_WARN.
|
virtual |
Does nothing for Kinect V2 as there is no intensity data provided by the device.
The method is an empty implementation, because the interface (ToFCameraDevice) requires it.
Implements mitk::ToFCameraDevice.
Definition at line 268 of file mitkKinectV2Device.cpp.
|
virtual |
returns the height of the RGB image
Reimplemented from mitk::ToFCameraDevice.
Definition at line 350 of file mitkKinectV2Device.cpp.
References mitk::ToFCameraDevice::m_RGBImageHeight.
|
virtual |
returns the width of the RGB image
Reimplemented from mitk::ToFCameraDevice.
Definition at line 345 of file mitkKinectV2Device.cpp.
References mitk::ToFCameraDevice::m_RGBImageWidth.
|
virtual |
returns whether the camera is currently active or not
Reimplemented from mitk::ToFCameraDevice.
Definition at line 163 of file mitkKinectV2Device.cpp.
References mitk::ToFCameraDevice::m_CameraActive, and mitk::ToFCameraDevice::m_CameraActiveMutex.
Referenced by Acquire().
mitk::KinectV2Device::mitkClassMacro | ( | KinectV2Device | , |
ToFCameraDevice | |||
) |
|
static |
|
virtual |
opens a connection to the ToF camera
mitkException | In case of no connection, an exception is thrown! |
Implements mitk::ToFCameraDevice.
Definition at line 50 of file mitkKinectV2Device.cpp.
References mitk::ToFCameraDevice::m_AmplitudeArray, m_AmplitudeDataBuffer, mitk::ToFCameraDevice::m_CameraConnected, mitk::ToFCameraDevice::m_CaptureHeight, mitk::ToFCameraDevice::m_CaptureWidth, m_Controller, mitk::ToFCameraDevice::m_DistanceArray, m_DistanceDataBuffer, mitk::ToFCameraDevice::m_MaxBufferSize, mitk::ToFCameraDevice::m_PixelNumber, m_RGBDataBuffer, mitk::ToFCameraDevice::m_RGBImageHeight, mitk::ToFCameraDevice::m_RGBImageWidth, and mitk::ToFCameraDevice::m_RGBPixelNumber.
|
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
mitkException | In case of no connection, an exception is thrown! |
Implements mitk::ToFCameraDevice.
Definition at line 123 of file mitkKinectV2Device.cpp.
References Acquire(), m_AmplitudeDataBuffer, mitk::ToFCameraDevice::m_BufferSize, mitk::ToFCameraDevice::m_CameraActive, mitk::ToFCameraDevice::m_CameraActiveMutex, mitk::ToFCameraDevice::m_CameraConnected, m_Controller, mitk::ToFCameraDevice::m_CurrentPos, m_DistanceDataBuffer, mitk::ToFCameraDevice::m_FreePos, mitk::ToFCameraDevice::m_ImageMutex, mitk::ToFCameraDevice::m_ImageSequence, mitk::ToFCameraDevice::m_MultiThreader, m_RGBDataBuffer, mitk::ToFCameraDevice::m_ThreadID, and MITK_WARN.
|
virtual |
stops the continuous updating of the camera
Reimplemented from mitk::ToFCameraDevice.
Definition at line 149 of file mitkKinectV2Device.cpp.
References mitk::ToFCameraDevice::m_CameraActive, mitk::ToFCameraDevice::m_CameraActiveMutex, mitk::ToFCameraDevice::m_MultiThreader, and mitk::ToFCameraDevice::m_ThreadID.
|
virtual |
updates the camera for image acquisition
mitkException | In case of no connection, an exception is thrown! |
Implements mitk::ToFCameraDevice.
Definition at line 171 of file mitkKinectV2Device.cpp.
References m_Controller.
Referenced by Acquire().
|
protected |
buffer holding the last amplitude images
Definition at line 139 of file mitkKinectV2Device.h.
Referenced by Acquire(), DisconnectCamera(), GetAllImages(), GetAmplitudes(), OnConnectCamera(), and StartCamera().
|
protected |
corresponding CameraController
Definition at line 136 of file mitkKinectV2Device.h.
Referenced by Acquire(), DisconnectCamera(), GetController(), KinectV2Device(), OnConnectCamera(), StartCamera(), and UpdateCamera().
|
protected |
Size of depth buffer (i.e. memory size of depth and infrared image)
Definition at line 142 of file mitkKinectV2Device.h.
Referenced by GetAllImages(), GetAmplitudes(), and GetDistances().
|
protected |
buffer holding the last distance images
Definition at line 138 of file mitkKinectV2Device.h.
Referenced by Acquire(), DisconnectCamera(), GetAllImages(), GetDistances(), OnConnectCamera(), and StartCamera().
|
protected |
Surface generated via the Kinect V2 SDK with default/unknown calibration.
Definition at line 145 of file mitkKinectV2Device.h.
Referenced by Acquire(), GetAllImages(), and KinectV2Device().
|
protected |
Size of RGB buffer (i.e. memory size of RGB image)
Definition at line 143 of file mitkKinectV2Device.h.
Referenced by GetAllImages().
|
protected |
buffer holding the last RGB image
Definition at line 140 of file mitkKinectV2Device.h.
Referenced by Acquire(), DisconnectCamera(), GetAllImages(), OnConnectCamera(), and StartCamera().