Files
gps-denied-onboard/helpers/camera_model.py
T
Oleksandr Bezdieniezhnykh abc26d5c20 initial structure implemented
docs -> _docs
2025-12-01 14:20:56 +02:00

36 lines
1.1 KiB
Python

import numpy as np
from models.core import CameraParameters
class CameraModel:
def __init__(self, params: CameraParameters):
self._params = params
self._K: np.ndarray | None = None
@property
def intrinsic_matrix(self) -> np.ndarray:
if self._K is None:
fx = self._params.focal_length * self._params.resolution_width / self._params.sensor_width
fy = self._params.focal_length * self._params.resolution_height / self._params.sensor_height
cx, cy = self._params.get_principal_point()
self._K = np.array([
[fx, 0, cx],
[0, fy, cy],
[0, 0, 1]
], dtype=np.float64)
return self._K
def project(self, points_3d: np.ndarray) -> np.ndarray:
raise NotImplementedError
def unproject(self, points_2d: np.ndarray, depth: float) -> np.ndarray:
raise NotImplementedError
def undistort_points(self, points: np.ndarray) -> np.ndarray:
raise NotImplementedError
def get_fov(self) -> tuple[float, float]:
raise NotImplementedError