2011-12-14 5 views
1

Я хочу найти координату камеры из координаты пикселя/экрана, используя opencv.Могу ли я преобразовать координату экрана в координату камеры, используя эту процедуру?

Предположим, что мои камеры откалиброваны, и у меня есть внутренний параметр (матрица с фокусным расстоянием и основной точкой) и внешний параметр (матрица поворота и преобразования) с использованием opencv. Тогда this website для 3d реконструкции с OpenCV говорит:

s * [q 1]^{Transpose} = [K] * [([R] * P) + T] 

где [q] координата 2d пикселя, s = 1, K является (3x3) внутренняя матрица, R является (3x3) матрица вращения, P является (3x1) в мировой координате и T - матрица преобразования (3x1).

Итак:

[R]^{-1} * ([ [K]^{-1} * [q 1 ]^{Transpose} ] - [T]) = [P] 

И потом:

[U] = ([R] * [P]) + [T] 

где [U] есть (3x1) в камере координат. Итак, теперь [q], который находится в пиксельной координате, будет преобразован в координату камеры [U].

Могу ли я преобразовать координату пикселя в координату камеры? Является ли матрица вращения ([R]) или внутренняя матрица ([K]) всегда обратимой? Или там, где матрица вращения и/или внутренняя матрица не могут быть инвертированы?

Можно ли это подтвердить?

ответ

0

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

Но вы можете использовать этот красивый фрагмент кода: это не совсем то, что вы хотите, но основные принципы права:

Opencv virtually camera rotating/translating for bird's eye view

+0

Спасибо Василе за вашу помощь. Я попробую сам. Еще раз спасибо. – mvr950