void OnReceivedCalibration(K4A.CalibrationType calibrationType, K4A.Calibration calibration)
        {
            Debug.Log("CalibrationType: " + calibrationType);

            K4A.CalibrationCamera depthCalibrationCamera = calibration.DepthCameraCalibration;
            K4A.CalibrationCamera colorCalibrationCamera = calibration.ColorCameraCalibration;

            Debug.Log("Calibration.DepthImage: " + depthCalibrationCamera.resolutionWidth + "x" + depthCalibrationCamera.resolutionHeight);
            Debug.Log("Calibration.ColorImage: " + colorCalibrationCamera.resolutionWidth + "x" + colorCalibrationCamera.resolutionHeight);

            _PointCloudRenderer.GenerateMesh(calibration, calibrationType);
        }
Example #2
0
        private K4A.CalibrationCamera CreateCalibrationCamera(CameraCalibration cameraCalibration, int width, int height)
        {
            K4A.CalibrationCamera calibrationCamera = new K4A.CalibrationCamera();

            float[]    intrinsicsParameters = cameraCalibration.Intrinsics.Parameters;
            Extrinsics extrinsics           = cameraCalibration.Extrinsics;

            calibrationCamera.resolutionWidth  = width;
            calibrationCamera.resolutionHeight = height;
            calibrationCamera.metricRadius     = cameraCalibration.MetricRadius;

            calibrationCamera.intrinsics.cx           = intrinsicsParameters[0];
            calibrationCamera.intrinsics.cy           = intrinsicsParameters[1];
            calibrationCamera.intrinsics.fx           = intrinsicsParameters[2];
            calibrationCamera.intrinsics.fy           = intrinsicsParameters[3];
            calibrationCamera.intrinsics.k1           = intrinsicsParameters[4];
            calibrationCamera.intrinsics.k2           = intrinsicsParameters[5];
            calibrationCamera.intrinsics.k3           = intrinsicsParameters[6];
            calibrationCamera.intrinsics.k4           = intrinsicsParameters[7];
            calibrationCamera.intrinsics.k5           = intrinsicsParameters[8];
            calibrationCamera.intrinsics.k6           = intrinsicsParameters[9];
            calibrationCamera.intrinsics.codx         = intrinsicsParameters[10];
            calibrationCamera.intrinsics.cody         = intrinsicsParameters[11];
            calibrationCamera.intrinsics.p2           = intrinsicsParameters[12]; // p2: tangential distortion coefficient y
            calibrationCamera.intrinsics.p1           = intrinsicsParameters[13]; // p1: tangential distortion coefficient x
            calibrationCamera.intrinsics.metricRadius = intrinsicsParameters[14];

            calibrationCamera.extrinsics.rotation[0][0] = extrinsics.Rotation[0];
            calibrationCamera.extrinsics.rotation[0][1] = extrinsics.Rotation[1];
            calibrationCamera.extrinsics.rotation[0][2] = extrinsics.Rotation[2];
            calibrationCamera.extrinsics.rotation[1][0] = extrinsics.Rotation[3];
            calibrationCamera.extrinsics.rotation[1][1] = extrinsics.Rotation[4];
            calibrationCamera.extrinsics.rotation[1][2] = extrinsics.Rotation[5];
            calibrationCamera.extrinsics.rotation[2][0] = extrinsics.Rotation[6];
            calibrationCamera.extrinsics.rotation[2][1] = extrinsics.Rotation[7];
            calibrationCamera.extrinsics.rotation[2][2] = extrinsics.Rotation[8];
            calibrationCamera.extrinsics.translation[0] = extrinsics.Translation[0];
            calibrationCamera.extrinsics.translation[1] = extrinsics.Translation[1];
            calibrationCamera.extrinsics.translation[2] = extrinsics.Translation[2];

            return(calibrationCamera);
        }
Example #3
0
        K4A.CalibrationCamera CreateCalibrationCamera(CameraCalibration cameraCalibration, int width, int height)
        {
            K4A.CalibrationCamera calibrationCamera = new K4A.CalibrationCamera();

            float[]    intrinsicsParameters = cameraCalibration.Intrinsics.Parameters;
            Extrinsics extrinsics           = cameraCalibration.Extrinsics;

            calibrationCamera.resolutionWidth  = width;
            calibrationCamera.resolutionHeight = height;
            calibrationCamera.metricRadius     = cameraCalibration.MetricRadius;

            calibrationCamera.intrinsics.cx           = intrinsicsParameters[0];
            calibrationCamera.intrinsics.cy           = intrinsicsParameters[1];
            calibrationCamera.intrinsics.fx           = intrinsicsParameters[2];
            calibrationCamera.intrinsics.fy           = intrinsicsParameters[3];
            calibrationCamera.intrinsics.k1           = intrinsicsParameters[4];
            calibrationCamera.intrinsics.k2           = intrinsicsParameters[5];
            calibrationCamera.intrinsics.k3           = intrinsicsParameters[6];
            calibrationCamera.intrinsics.k4           = intrinsicsParameters[7];
            calibrationCamera.intrinsics.k5           = intrinsicsParameters[8];
            calibrationCamera.intrinsics.k6           = intrinsicsParameters[9];
            calibrationCamera.intrinsics.codx         = intrinsicsParameters[10];
            calibrationCamera.intrinsics.cody         = intrinsicsParameters[11];
            calibrationCamera.intrinsics.p2           = intrinsicsParameters[12]; // p2: tangential distortion coefficient y
            calibrationCamera.intrinsics.p1           = intrinsicsParameters[13]; // p1: tangential distortion coefficient x
            calibrationCamera.intrinsics.metricRadius = intrinsicsParameters[14];

            calibrationCamera.extrinsics.rotation[0][0] = extrinsics.Rotation[0];
            calibrationCamera.extrinsics.rotation[0][1] = extrinsics.Rotation[1];
            calibrationCamera.extrinsics.rotation[0][2] = extrinsics.Rotation[2];
            calibrationCamera.extrinsics.rotation[1][0] = extrinsics.Rotation[3];
            calibrationCamera.extrinsics.rotation[1][1] = extrinsics.Rotation[4];
            calibrationCamera.extrinsics.rotation[1][2] = extrinsics.Rotation[5];
            calibrationCamera.extrinsics.rotation[2][0] = extrinsics.Rotation[6];
            calibrationCamera.extrinsics.rotation[2][1] = extrinsics.Rotation[7];
            calibrationCamera.extrinsics.rotation[2][2] = extrinsics.Rotation[8];
            calibrationCamera.extrinsics.translation[0] = extrinsics.Translation[0];
            calibrationCamera.extrinsics.translation[1] = extrinsics.Translation[1];
            calibrationCamera.extrinsics.translation[2] = extrinsics.Translation[2];

            // Debug.Log("***** Camera parameters *****");
            // Debug.Log(" Intrinsics.cx: " + calibrationCamera.intrinsics.cx);
            // Debug.Log(" Intrinsics.cy: " + calibrationCamera.intrinsics.cy);
            // Debug.Log(" Intrinsics.fx: " + calibrationCamera.intrinsics.fx);
            // Debug.Log(" Intrinsics.fy: " + calibrationCamera.intrinsics.fy);
            // Debug.Log(" Intrinsics.k1: " + calibrationCamera.intrinsics.k1);
            // Debug.Log(" Intrinsics.k2: " + calibrationCamera.intrinsics.k2);
            // Debug.Log(" Intrinsics.k3: " + calibrationCamera.intrinsics.k3);
            // Debug.Log(" Intrinsics.k4: " + calibrationCamera.intrinsics.k4);
            // Debug.Log(" Intrinsics.k5: " + calibrationCamera.intrinsics.k5);
            // Debug.Log(" Intrinsics.k6: " + calibrationCamera.intrinsics.k6);
            // Debug.Log(" Intrinsics.codx: " + calibrationCamera.intrinsics.codx);
            // Debug.Log(" Intrinsics.cody: " + calibrationCamera.intrinsics.cody);
            // Debug.Log(" Intrinsics.p2: " + calibrationCamera.intrinsics.p2);
            // Debug.Log(" Intrinsics.p1: " + calibrationCamera.intrinsics.p1);
            // Debug.Log(" Intrinsics.metricRadius: " + calibrationCamera.intrinsics.metricRadius);
            // Debug.Log(" MetricRadius: " + calibrationCamera.metricRadius);
            // Debug.Log("*****************************");

            // for (int i = 0; i < extrinsics.Rotation.Length; i++)
            // {
            //     Debug.Log(" Extrinsics.R[" + i + "]: " + extrinsics.Rotation[i]);
            // }
            // for (int i = 0; i < extrinsics.Translation.Length; i++)
            // {
            //     Debug.Log(" Extrinsics.T[" + i + "]: " + extrinsics.Translation[i]);
            // }

            // extrinsics = deviceDepthCameraCalibration.Extrinsics;
            // for (int i = 0; i < extrinsics.Rotation.Length; i++)
            // {
            //     Debug.Log(" Extrinsics.R[" + i + "]: " + extrinsics.Rotation[i]);
            // }
            // for (int i = 0; i < extrinsics.Translation.Length; i++)
            // {
            //     Debug.Log(" Extrinsics.T[" + i + "]: " + extrinsics.Translation[i]);
            // }

            return(calibrationCamera);
        }