MCPcopy Create free account
hub / github.com/MotrixLab/AiOS / CameraParameter

Class CameraParameter

detrsmpl/core/cameras/camera_parameters.py:69–616  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

67
68
69class CameraParameter:
70 logger = None
71 SUPPORTED_KEYS = _CAMERA_PARAMETER_SUPPORTED_KEYS_
72
73 def __init__(self,
74 name: str = 'default',
75 H: int = 1080,
76 W: int = 1920) -> None:
77 """
78 Args:
79 name (str, optional):
80 Name of this camera. Defaults to "default".
81 H (int, optional):
82 Height of a frame, in pixel. Defaults to 1080.
83 W (int, optional):
84 Width of a frame, in pixel. Defaults to 1920.
85 """
86 self.name = name
87 self.parameters_dict = {}
88 in_mat = __zero_mat_list__(3)
89 self.parameters_dict['in_mat'] = in_mat
90 for distort_name in __distort_coefficient_names__:
91 self.parameters_dict[distort_name] = 0.0
92 _, H = self.validate_item('H', H)
93 self.parameters_dict['H'] = H
94 _, W = self.validate_item('W', W)
95 self.parameters_dict['W'] = W
96 r_mat = __zero_mat_list__(3)
97 self.parameters_dict['rotation_mat'] = r_mat
98 t_list = [0.0, 0.0, 0.0]
99 self.parameters_dict['translation'] = t_list
100
101 def reset_distort(self) -> None:
102 """Reset all distort coefficients to zero."""
103 for distort_name in __distort_coefficient_names__:
104 self.parameters_dict[distort_name] = 0.0
105
106 def get_opencv_distort_mat(self) -> np.ndarray:
107 """Get a numpy array of 8 distort coefficients, which is the distCoeffs
108 arg of cv2.undistort.
109
110 Returns:
111 ndarray:
112 (k_1, k_2, p_1, p_2, k_3, k_4, k_5, k_6) of 8 elements.
113 """
114 dist_coeffs = [
115 self.get_value('k1'),
116 self.get_value('k2'),
117 self.get_value('p1'),
118 self.get_value('p2'),
119 self.get_value('k3'),
120 self.get_value('k4'),
121 self.get_value('k5'),
122 self.get_value('k6'),
123 ]
124 dist_coeffs = np.array(dist_coeffs)
125 return dist_coeffs
126

Calls

no outgoing calls

Tested by

no test coverage detected