Использование функции рисования эллипса opencv для представления трехмерной проекции круга - PullRequest
0 голосов
/ 04 апреля 2020

Я хотел бы представить проекцию круга из трехмерного пространства в двумерное окно openCV, используя функцию рисования эллипса openCV. Это выглядит выполнимо (пока точная перспектива) не требуется, используя одну ось на 1,0 (большая ось) и играя с длиной вспомогательной оси и вращением большой оси. Я просмотрел много формул, но все они посвящены обратной задаче: из эллипса получить ориентацию круга. Я пытался инвертировать такие уравнения, но я получил решение системы уравнений, которая слишком тяжелая для моей цели (отображение многих эллипсов в реальном времени).

Я бы просто представил эффект вращения двух углов rotX, rotY (вокруг осей x и y) на круге 150 пикселей и отобразить его на экране. Я наивно пробовал это (на Python языке):

maxAxis = 150 
minAxis = 150 * np.cos(rotX) *  np.cos(rotY)
omg = 1.0 - np.arctan((np.sin(rotX) / np.cos(rotY) ))  
cv.ellipse(image, (centerX, centerY), (int(minAxis), int(maxAxis)), omg, 0, 360, 
                (0,255,0), 3)

Но это не правильно, и нарисованный эллипс не является представительным для примененных углов поворота.

У кого-то есть идея простой способ сделать это без решения системы уравнений?

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