Выровняйте набор точек на калибровочной доске в Python - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь совместить набор точек, образующих прямоугольник, с калибровочной шахматной доской opencv 9 * 6 с 3D-камерой Intel RealSense D435.Я пытаюсь изменить для этого один из примеров Python SDK, в котором уже есть функция преобразования алгоритма Кабша.Примером является тот, который добавляет ограничивающие рамки к объектам.

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

Мой код для преобразования координат моих точек в основном

point_b = transformation_devices[device].inverse().apply_transformation(np.asarray([[(x + width)],[y], [z]]))
#used to calculate the position of the point and directly transform it, the apply_transformation() function is the built-in transformation function of the example

b_x, b_y = rs.rs2_project_point_to_pixel(intrinsics, b)
#to return to 2D coordinates and display the box using opencv

Вы видителюбая очевидная ошибка, которую я пропустил в своем методе?Есть ли лучший способ попытаться выровнять 3D-точки на шахматной доске?

Редактировать: я пытаюсь добиться, чтобы выровнять фиолетовую рамку на изображении и шахматную доску, немного похожую на зеленую

Изображение

...