Каковы единицы измерения cv2.triangulatePoints()?Python

Программы на Python
Anonymous
Каковы единицы измерения cv2.triangulatePoints()?

Сообщение Anonymous »

У меня есть система стереокамер, состоящая из двух камер, расположенных перпендикулярно друг другу, но направленных в общий центр. Я успешно откалибровал каждую камеру, а также стереокалибровал ту же систему с помощью OpenCV, используя плату ChArUco, единичные квадраты которой составляют 13 см x 13 см. Я получил ошибку калибровки стерео около 1,39 пикселей. Я никогда не указывал размер единичных квадратов.
Я также использовал OpenCV для отслеживания интересующего объекта, кадры которого я снял, используя синхронное получение изображения с теми же двумя камерами (выполняемое как постобработка). Я успешно триангулировал те же 2D-точки с помощью OpenCV. Короче говоря, я неискажал двумерный массив точек из изображений каждой камеры, рассчитал матрицы проекций, используя левую камеру в качестве начала координат системы, и K2 [R | t] в качестве матрицы проекции для камеры 2. Затем я преобразовал полученный вектор из функции триангуляции в мировые координаты и построил результат (который прилагается).
Я точно знаю сферу упал как минимум на 4 дюйма, но расстояние по оси Z неверно на представленном графике. Согласно этому графику, сфера едва упала на 0,2 единицы.
Мой вопрос: на что я смотрю? В каких единицах эти координаты? Могу ли я их преобразовать? Как указать или преобразовать единицы измерения, в которых выводится выходной вектор?
TLDR: Каковы ожидаемые единицы измерения выходного 4D-вектора из функции cv2.triangulatePoints() (т. е. в пикселях, см и т. д.)? Как преобразовать выходные данные в нужные единицы измерения?
3D-траектория
[img]https://i.sstatic.net /w3JCu3Y8.png[/img]

Я попробовал поискать в Интернете то, что сказали другие, и все, что я нашел, это то, что я могу указать единицы измерения в векторе перевода, т.е. Но я не уверен, как мне это сделать?

Подробнее здесь: https://stackoverflow.com/questions/790 ... latepoints

Вернуться в «Python»