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); }
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); }
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); }