Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
0
        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);
        }