Поиск перевода между координатами 2d и 3d

У меня есть задача найти объект в изображении.

object1

и перевести координату 2d (x, y) с моей камеры на 3d координату для моей роботизированной руки. Теперь я могу найти координату 2d с моим кодом python opencv и 3d-координатой по моему методу обучения из моей роботизированной программы, но в разных точках происхождения. Однако метод, который я использую для преобразования координаты 2d в 3d, по-прежнему не соответствует действительности. Поскольку происхождение роботизированной руки и камеры не то же самое. Поэтому я хотел бы спросить, какую формулу / код следует использовать для преобразования координаты 2d (x, y) в 3d (x, y, z), если начало координат не совпадает.

python,opencv,math,robotics,coordinate-systems,

0

Ответов: 2


0

При условии, что:

  • Вы можете найти 3D-координаты, расположенные по центру камеры
  • Вы знаете координаты «происхождения» камеры относительно руки
  • Вы знаете, сколько градусов, система координат камеры вращается относительно данной оси в системе координат руки.
  • Вам нужно получить координаты с координатами.

Вам просто нужно применить жесткую трансформацию, известную как рото-перевод . Чтобы упростить следующий примерный код, мы также предположим, что оси Z обеих систем координат параллельны друг другу, перпендикулярно «таблице», и имеют одно и то же направление. Таким образом, единственное возможное вращение вокруг оси Z.

x, y, z = get_3d(x, y)

x -= camera_origin_x_in_arm_coord_system
y -= camera_origin_y_in_arm_coord_system
z -= camera_origin_z_in_arm_coord_system

arm_x = x*cos(theta) - y*sin(theta)
arm_y = x*sin(theta) + y*cos(theta)
arm_z = z

Для более сложных поворотов обратитесь к ответам на этот вопрос .


0

Вам нужно преобразовать точки в другую систему координат.

Если вы каким-то образом вычислите матрицу преобразования, вы можете использовать метод cv.transform () .

Также вы можете рассчитать себя:

point3d` = RotationMatrix * (point3d - TranslationVector)

TranslationVector и RotationMatrix являются внешними параметрами вашей руки

питон, OpenCV, математика, робототехника, координатно-система,
Похожие вопросы