Files
LiveScan3D/include/LiveScanClient/azureKinectCapture.h
T
Christopher Remde 76bf5e9dba Added new UI for the Temporal Sync Feature, made the software more robust including:
-Settings window can only be opened once
    -When the client can't open a device, it tries multiple times
    -Recording bins are now saved with a unique ID per device, to allow multiple clients to record on the same PC
    -Synchronized & Unsynchronized devices can be both used in one server
    -Included a workaround for a bug in the Azure Kinect SDK regarding exposure (microsoft/Azure-Kinect-Sensor-SDK#1378)
2020-10-14 23:21:18 +02:00

49 lines
1.3 KiB
C++

#pragma once
#include "stdafx.h"
#include "ICapture.h"
#include <k4a/k4a.h>
#include <iostream>
using namespace std;
//#include "utils.h"
class AzureKinectCapture : public ICapture
{
public:
AzureKinectCapture();
~AzureKinectCapture();
bool Initialize(SYNC_STATE state, int syncOffset);
bool AcquireFrame();
bool Close();
void MapDepthFrameToCameraSpace(Point3f *pCameraSpacePoints);
void MapColorFrameToCameraSpace(Point3f *pCameraSpacePoints);
void MapDepthFrameToColorSpace(UINT16 *pDepthInColorSpace);
void MapColorFrameToDepthSpace(RGB *pColorInDepthSpace);
int GetSyncJackState();
uint64_t GetTimeStamp();
int GetDeviceIndex();
void SetExposureState(bool enableAutoExposure, int exposureStep);
private:
k4a_device_t kinectSensor = NULL;
int32_t captureTimeoutMs = 1000;
k4a_image_t colorImage = NULL;
k4a_image_t depthImage = NULL;
k4a_image_t depthPointCloudImage = NULL;
k4a_image_t colorImageInDepth = NULL;
k4a_image_t depthImageInColor = NULL;
k4a_transformation_t transformation = NULL;
bool syncInConnected = false;
bool syncOutConnected = false;
uint64_t currentTimeStamp = 0;
SYNC_STATE syncState = Standalone;
int deviceIDForRestart = -1;
int restartAttempts = 0;
bool autoExposureEnabled = true;
int exposureTimeStep = 0;
void UpdateDepthPointCloud();
};