/// <summary> /// Get the intrinsic calibration parameters. /// </summary> /// <param name="cameraId">The id of the camera.</param> /// <param name="outParameters">The intrinsic calibration parameters.</param> /// <returns> /// MLResult.Result will be <c>MLResult.Code.Ok</c> if obtained result extras successfully. /// MLResult.Result will be <c>MLResult.Code.InvalidParam</c> if failed to obtain result extras due to invalid input parameter. /// </returns> private MLResult InternalGetIntrinsicCalibrationParameters(MLCVCameraNativeBindings.CameraID cameraId, out MLCVCamera.IntrinsicCalibrationParameters outParameters) { outParameters = new MLCVCamera.IntrinsicCalibrationParameters(); MLCVCameraNativeBindings.IntrinsicCalibrationParametersNative internalParameters = MLCVCameraNativeBindings.IntrinsicCalibrationParametersNative.Create(); MLResult.Code resultCode = MLCVCameraNativeBindings.MLCVCameraGetIntrinsicCalibrationParameters(Handle, cameraId, ref internalParameters); MLResult parametersResult = MLResult.Create(resultCode); if (!parametersResult.IsOk) { MLPluginLog.ErrorFormat("MLCamera.InternalGetIntrinsicCalibrationParameters failed to get camera parameters. Reason: {0}", parametersResult); } else { outParameters.Width = internalParameters.Width; outParameters.Height = internalParameters.Height; outParameters.FocalLength = new Vector2(internalParameters.FocalLength.X, internalParameters.FocalLength.Y); outParameters.PrincipalPoint = new Vector2(internalParameters.PrincipalPoint.X, internalParameters.PrincipalPoint.Y); outParameters.FOV = internalParameters.FOV; outParameters.Distortion = new double[internalParameters.Distortion.Length]; internalParameters.Distortion.CopyTo(outParameters.Distortion, 0); } return(parametersResult); }
/// <summary> /// Get camera intrinsic parameter. /// Requires ComputerVision privilege. /// </summary> /// <param name="outParameters">Output structure containing intrinsic parameters on success.</param> /// <returns> /// MLResult.Result will be <c>MLResult.Code.Ok</c> if successful. /// MLResult.Result will be <c>MLResult.Code.PrivilegeDenied</c> if necessary privilege is missing. /// MLResult.Result will be <c>MLResult.Code.UnspecifiedFailure</c> if unable to retrieve intrinsic parameter. /// </returns> public static MLResult GetIntrinsicCalibrationParameters(out MLCVCamera.IntrinsicCalibrationParameters outParameters) { return(Instance.InternalGetIntrinsicCalibrationParameters(MLCVCameraNativeBindings.CameraID.ColorCamera, out outParameters)); }