refactored

This commit is contained in:
2025-11-28 18:49:48 +01:00
parent a6589d43ac
commit a3d7e013b5
17 changed files with 53 additions and 3 deletions
+36
View File
@@ -0,0 +1,36 @@
import numpy as np
import cv2 as cv
import math
def rotation_matrix_to_euler_angles(R):
sy = math.sqrt(R[0,0]**2 + R[1,0]**2)
singular = sy < 1e-6
if not singular:
x = math.atan2(R[2,1] , R[2,2])
y = math.atan2(-R[2,0], sy)
z = math.atan2(R[1,0], R[0,0])
else:
# Handle singularity
x = math.atan2(-R[1,2], R[1,1])
y = math.atan2(-R[2,0], sy)
z = 0
return np.array([x, y, z])
def to_board_pose_euler(r_vec, t_vec):
r_mat = np.ndarray((3, 3))
cv.Rodrigues(r_vec, r_mat)
r_mat = np.hstack((r_mat, t_vec))
r_mat = np.vstack((r_mat, np.array([0, 0, 0, 1])))
r_mat = np.linalg.inv(r_mat)
res = rotation_matrix_to_euler_angles(r_mat)
return res, r_mat[:,3]
def cap_init(cap: cv.VideoCapture):
cap.set(cv.CAP_PROP_SETTINGS, 1)
cap.set(cv.CAP_PROP_FOURCC, cv.VideoWriter.fourcc('M', 'J', 'P', 'G'))
cap.set(cv.CAP_PROP_FPS, 60.0)
cap.set(cv.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv.CAP_PROP_FRAME_HEIGHT, 1024)
cap.set(cv.CAP_PROP_EXPOSURE, 30)
cap.set(cv.CAP_PROP_AUTO_EXPOSURE, 1)