Преобразование координат в 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, показанные в этом руководстве, или функции, предназначенные для векторов точек вместо целых изображений, но вышеописанный способ заставляет вас действительно понять, что вы делаете;)