feat/pitch-roll #1

Merged
zenloger merged 24 commits from feat/pitch-roll into main 2026-02-20 16:50:16 +03:00
Showing only changes of commit 02981ca660 - Show all commits

View File

@@ -67,26 +67,6 @@ class CameraTransformApp(App):
def create_test_image(self):
"""Создает тестовое изображение с сеткой и текстом"""
img = cv2.imread(Path('images') / 'photo_610.png')
# img = np.ones((400, 600, 3), dtype=np.uint8) * 255
# # Рисуем сетку
# for i in range(0, 600, 50):
# cv2.line(img, (i, 0), (i, 400), (200, 200, 200), 1)
# for i in range(0, 400, 50):
# cv2.line(img, (0, i), (600, i), (200, 200, 200), 1)
# # Рисуем оси координат
# cv2.line(img, (300, 200), (450, 200), (255, 0, 0), 3) # X - красная
# cv2.line(img, (300, 200), (300, 50), (0, 255, 0), 3) # Y - зеленая
# # Добавляем текст
# cv2.putText(img, 'X', (460, 210), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2)
# cv2.putText(img, 'Y', (310, 40), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
# cv2.putText(img, 'Perspective Transform', (150, 30),
# cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)
# # Рисуем прямоугольник
# cv2.rectangle(img, (200, 150), (400, 250), (255, 0, 255), 2)
return img
@@ -139,11 +119,15 @@ class CameraTransformApp(App):
# Получаем матрицу поворота
R = self.get_rotation_matrix(yaw, pitch, roll)
Z = np.eye(3)
Z[2, 2] = 2
T = np.array([
[1, 0, 0.2],
[0, 1, 0.1],
[0, 0, 2],
])
# Создаем матрицу трансформации
H = camera_matrix @ Z @ R @ np.linalg.inv(camera_matrix)
H = camera_matrix @ R @ T @ np.linalg.inv(camera_matrix)
# Применяем преобразование
try: