Проблемы в 3D точках соответствуют 2D

python computer-vision

195 просмотра

1 ответ

Я сделал небольшой скрипт на python, который выдает некоторые трехмерные координаты точек, получая их из стереозрения (2 ИК камеры). 3D-координаты, безусловно, правильные.

Теперь у меня есть третья RGB камера, и мне дали калибровочные матрицы (я не могу их проверить): K - это матрица, а R, t - это компонент внешних параметров. Изображение RGB 1280x800 Но я не могу установить правильное соответствие.

Я думал, что было бы легко использовать формулу проекции, получив матрицу проекции "Pcolor" как Pcolor = K [R | t] и повторно спроецировав трехмерные координаты XYZ (названные "Pworld"), следующим образом: введите описание изображения здесь

Я ожидал получить (u, v, w), поэтому я нормализовал результат, разделив его на w.

#import numpy as np
ExtrColor = np.concatenate((Rcolor,Tcolor), axis = 1)
#Rcolor is the 3x3 rotation matrix, Tcolor the column translation array
# after calculation of X,Y,Z
Pworld = np.matrix([[X], [Y], [Z], [1]])
Pcolor = np.dot((np.dot(Kcolor,ExtrColor)),Pworld)
u = round(Pcolor[0,0]/Pcolor[2,0])
v = round(Pcolor[1,0]/Pcolor[2,0])

Затем я обнаружил, что я получаю значения u и v больше 12000 вместо того, чтобы находиться в диапазоне изображения (x <1280 и y <800).

Я не могу понять, в чем проблема. Кто-нибудь когда-нибудь сталкивался с подобной проблемой? Я не думаю о проблеме масштабного коэффициента в координатах XYZ, она должна быть неэффективной в такой постановке задачи. Проблема моего использования np.dot? Я уверен, что это небольшая ошибка, но я ее не вижу.

Спасибо за ответ (и извините за плохой английский)!

Я проверил похожие вопросы в переполнении стека, здесь проблема, похоже, похожа, но метод другой.

PS В этот раз я не хочу получать результат, используя openCV или другие библиотеки функций, если это возможно

Автор: marcoresk Источник Размещён: 08.11.2019 11:29

Ответы (1)


0 плюса

Решение

Обновление: проблема, кажется, заключается в следующем: калибровка двух камер (IR и RGB) не была выполнена с одинаковыми стандартами, обе приняты как истинные.

Автор: marcoresk Размещён: 15.09.2016 09:13
Вопросы из категории :
32x32