Пример #1
0
        private void OnCalibrate(Sizei resolution, Matrix3x3f intrinsic, Vector5f distorsion)
        {
            /*
             * var m = new Matrix4x4();
             * for (int r = 0; r < 3; ++r)
             * {
             *  for (int c = 0; c < 3; ++c)
             *  {
             *      m[r, c] = intrinsic.coeff(r, c);
             *  }
             * }
             * Debug.Log(m);
             * Debug.Log(resolution.width);
             * Debug.Log(resolution.height);
             */
            var fY = intrinsic.coeff(1, 1) * 2 / resolution.height;
            var fX = intrinsic.coeff(0, 0) * 2 / resolution.width;
            //var fovY = CameraUtility.Focal2Fov(fY, resolution.height);
            //var fovX = CameraUtility.Focal2Fov(fX, resolution.width);
            //camera.fieldOfView = fovY;
            //CameraUtility.ApplyProjectionMatrix()

            var projectionMatrix = Perspective(fX, fY, camera.nearClipPlane, camera.farClipPlane);

            camera.projectionMatrix = projectionMatrix;

            MoveVideoPlane();
        }
Пример #2
0
 public virtual void setCameraParameters(Matrix3x3f intrinsicParams, Vector5f distorsionParams)
 {
     solar_api_solver_posePINVOKE.I2Dto3DTransformDecomposer_setCameraParameters(swigCPtr, Matrix3x3f.getCPtr(intrinsicParams), Vector5f.getCPtr(distorsionParams));
     if (solar_api_solver_posePINVOKE.SWIGPendingException.Pending)
     {
         throw solar_api_solver_posePINVOKE.SWIGPendingException.Retrieve();
     }
 }
Пример #3
0
 public virtual void setDistorsionParameters(Vector5f distorsion_parameters)
 {
     solar_api_geomPINVOKE.IUndistortPoints_setDistorsionParameters(swigCPtr, Vector5f.getCPtr(distorsion_parameters));
     if (solar_api_geomPINVOKE.SWIGPendingException.Pending)
     {
         throw solar_api_geomPINVOKE.SWIGPendingException.Retrieve();
     }
 }
Пример #4
0
 public virtual void setCameraParameters(Matrix3x3f intrinsic_parameters, Vector5f distorsion_parameters)
 {
     solar_api_displayPINVOKE.I3DOverlay_setCameraParameters(swigCPtr, Matrix3x3f.getCPtr(intrinsic_parameters), Vector5f.getCPtr(distorsion_parameters));
     if (solar_api_displayPINVOKE.SWIGPendingException.Pending)
     {
         throw solar_api_displayPINVOKE.SWIGPendingException.Retrieve();
     }
 }
Пример #5
0
 public virtual void setCameraParameters(Matrix3x3f intrinsicParams, Vector5f distorsionParams)
 {
     solar_api_geomPINVOKE.IUnproject_setCameraParameters(swigCPtr, Matrix3x3f.getCPtr(intrinsicParams), Vector5f.getCPtr(distorsionParams));
     if (solar_api_geomPINVOKE.SWIGPendingException.Pending)
     {
         throw solar_api_geomPINVOKE.SWIGPendingException.Retrieve();
     }
 }
Пример #6
0
 public virtual void setDistorsionParameters(Vector5f distorsion_parameters)
 {
     solar_api_input_devicesPINVOKE.ICamera_setDistorsionParameters(swigCPtr, Vector5f.getCPtr(distorsion_parameters));
     if (solar_api_input_devicesPINVOKE.SWIGPendingException.Pending)
     {
         throw solar_api_input_devicesPINVOKE.SWIGPendingException.Retrieve();
     }
 }
Пример #7
0
 public override void SetCameraParameters(Matrix3x3f intrinsics, Vector5f distorsion)
 {
     //            pnp.setCameraParameters(intrinsics, distorsion);
     //            pnpRansac.setCameraParameters(intrinsics, distorsion);
     //            poseFinderFrom2D2D.setCameraParameters(intrinsics, distorsion);
     //            triangulator.setCameraParameters(intrinsics, distorsion);
     //            projector.setCameraParameters(intrinsics, distorsion);
     //            overlay3D.setCameraParameters(intrinsics, distorsion);
 }
Пример #8
0
        private void OnCalibrate(Sizei resolution, Matrix3x3f intrinsic, Vector5f distorsion)
        {
            var fY               = intrinsic.coeff(1, 1);
            var fovY             = CameraUtility.Focal2Fov(fY, resolution.height);
            var fX               = intrinsic.coeff(0, 0);
            var aspect           = (fY / resolution.height) / (fX / resolution.width);
            var projectionMatrix = Matrix4x4.Perspective(fovY, aspect, camera.nearClipPlane, camera.farClipPlane);

            CameraUtility.ApplyProjectionMatrix(camera, projectionMatrix);
        }
Пример #9
0
        public virtual Vector5f getDistorsionParameters()
        {
            Vector5f ret = new Vector5f(solar_api_input_devicesPINVOKE.ICamera_getDistorsionParameters(swigCPtr), true);

            if (solar_api_input_devicesPINVOKE.SWIGPendingException.Pending)
            {
                throw solar_api_input_devicesPINVOKE.SWIGPendingException.Retrieve();
            }
            return(ret);
        }
Пример #10
0
 public abstract void SetCameraParameters(Matrix3x3f intrinsic, Vector5f distorsion);
Пример #11
0
 public override void SetCameraParameters(Matrix3x3f intrinsics, Vector5f distorsion)
 {
     // initialize pose estimation
     poseEstimationPlanar.setCameraParameters(intrinsics, distorsion);
 }
Пример #12
0
        public virtual double solve(KeyframeList framesToAdjust, CloudPointVector mapToAdjust, Matrix3x3f K, Vector5f D, IntVector selectKeyframes, Transform3DfList poseAdjusted, CloudPointVector mapAdjusted, Matrix3x3f KAdjusted, Vector5f DAdjusted)
        {
            double ret = solar_api_solver_mapPINVOKE.IBundler_solve(swigCPtr, KeyframeList.getCPtr(framesToAdjust), CloudPointVector.getCPtr(mapToAdjust), Matrix3x3f.getCPtr(K), Vector5f.getCPtr(D), IntVector.getCPtr(selectKeyframes), Transform3DfList.getCPtr(poseAdjusted), CloudPointVector.getCPtr(mapAdjusted), Matrix3x3f.getCPtr(KAdjusted), Vector5f.getCPtr(DAdjusted));

            if (solar_api_solver_mapPINVOKE.SWIGPendingException.Pending)
            {
                throw solar_api_solver_mapPINVOKE.SWIGPendingException.Retrieve();
            }
            return(ret);
        }
Пример #13
0
 public override void SetCameraParameters(Matrix3x3f intrinsics, Vector5f distorsion)
 {
     PnP.setCameraParameters(intrinsics, distorsion);
 }