Преобразование координат в OpenCV

У меня есть ломаная фигура, заданная как массив относительных x а также y координаты точки (от 0,0 до 1,0).

Я должен нарисовать фигуру со случайным положением, масштабом и углом поворота.

Как я могу сделать это наилучшим образом?

1 ответ

Вы можете использовать простое преобразование с матрицей RT.

Позволять X = (x y 1)^t быть координатами одной точки вашей фигуры. Позволять R быть матрицей вращения2х2 и T быть 2x1 вектором трансформации, которую вы планируете осуществить. RT матрица A будет иметь форму A = [R T;0 0 1], Чтобы получить преобразованные координаты точки X, вам нужно сделать этот простой расчет AX = X', где X' новые координаты. Теперь, чтобы преобразовать всю фигуру, вместо использования одного столбца, Вы используете матрицу, в которой каждый столбец имеет x координата в первом ряду, y во втором и 1 в третьем ряду.

Конечно, вы можете попытаться использовать функции, предоставляемые OpenCV, показанные в этом руководстве, или функции, предназначенные для векторов точек вместо целых изображений, но вышеописанный способ заставляет вас действительно понять, что вы делаете;)

Другие вопросы по тегам