Source code for excalibur.io.camera

from dataclasses import dataclass, field

import numpy as np

from .utils import load_yaml, save_yaml


[docs]@dataclass class CameraIntrinsics: camera_matrix: np.ndarray #: 3x3 camera matrix dist_coeffs: np.ndarray = field(default_factory=lambda: np.zeros(5)) #: vector with distortion coefficients in opencv format @classmethod def load(cls, filename): data = load_yaml(filename) if 'camera_matrix' in data: data['camera_matrix'] = np.array(data['camera_matrix']) if 'dist_coeffs' in data: data['dist_coeffs'] = np.array(data['dist_coeffs']) return cls(**data) def save(self, filename): data = { 'camera_matrix': self.camera_matrix.tolist(), 'dist_coeffs': self.dist_coeffs.tolist(), } save_yaml(filename, data)