mirror of
https://github.com/storytold/LiveScan3D.git
synced 2026-10-09 00:09:58 +00:00
76bf5e9dba
-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)
49 lines
1.3 KiB
C++
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();
|
|
|
|
}; |