public static Vector4 GetIntrinsics() { Vector4 intrinsics = Vector4.zero; ARCameraIntrinsics intr = ARFrame.ImageIntrinsics; intrinsics.x = intr.ARFocalLength.x; intrinsics.y = intr.ARFocalLength.y; intrinsics.z = intr.ARPrincipalPoint.y; intrinsics.w = intr.ARPrincipalPoint.x; return(intrinsics); }
public ARCameraIntrinsics GetImageIntrinsics(IntPtr cameraHandle) { ARDebug.LogInfo("ARCamera adapter get image intrinsics start"); IntPtr arCameraIntrinsicsHandle = IntPtr.Zero; NDKAPI.HwArCameraIntrinsics_create(m_ndkSession.SessionHandle, ref arCameraIntrinsicsHandle); NDKAPI.HwArCamera_getImageIntrinsics(m_ndkSession.SessionHandle, cameraHandle, arCameraIntrinsicsHandle); ARCameraIntrinsics imageIntrinsics = GetARCameraIntrinsicsFromeHandle(arCameraIntrinsicsHandle); NDKAPI.HwArCameraIntrinsics_destroy(m_ndkSession.SessionHandle, arCameraIntrinsicsHandle); ARDebug.LogInfo("ARCamera adapter get image intrinsics end"); return(imageIntrinsics); }
public static Vector4 GetIntrinsics(float width, float height) { ARCameraIntrinsics intr = ARFrame.ImageIntrinsics; Vector4 intrinsics = Vector4.zero; Camera cam = Camera.main; Matrix4x4 proj = HuaweiARUnitySDK.ARSession.GetProjectionMatrix(cam.nearClipPlane, cam.farClipPlane); float fy = 0.5f * proj.m11 * width; float cx = 0.5f * (proj.m02 + 1.0f) * height; float cy = 0.5f * (proj.m12 + 1.0f) * width; intrinsics.x = intrinsics.y = fy; intrinsics.z = cy; intrinsics.w = cx; return(intrinsics); }