Инвертирование rvect в функции OpenCV drawFrameAxes - PullRequest
0 голосов
/ 14 июля 2020

Я использую найденный код здесь для начальной точки с определением позы головы. Я бы хотел, чтобы ось z кадра соответствовала позе головы (кончику носа). Однако, когда голова поворачивается влево, ось z идет вправо, а когда голова идет вверх, ось z идет вниз.

Чтобы исправить это, я умножил rvect на -1, прежде чем рисовать оси, как в модифицированном коде ниже:

def draw_axes(self, img, R, t):
        R[0] = -1 * R[0]
        R[1] = -1 * R[1]
        R[2] = -1 * R[2]
        img = cv2.drawFrameAxes(img, self.camera_matrix, self.dist_coeefs, R, t, 300)

Мои первоначальные тесты показывают, что он работает с левой и правой, но вверх и вниз, похоже, время от времени возникают некоторые проблемы. Я не уверен, это просто определение позы или инверсия, которую я сделал. Итак, в основном вопрос сводится к тому, что я хочу подтвердить, является ли умножение rvect на -1 правильным способом инвертировать углы или есть ли лучший способ справиться с этим в OpenCV, который я просто не нашел в документации. еще?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...