Я хочу найти координату камеры из пикселя / координаты экрана, используя opencv.
Предположим, мои камеры откалиброваны, и я получил внутренний параметр (матрица с фокусным расстоянием и главной точкой)
и внешний параметр (матрица вращения и перемещения) с использованием opencv. Тогда этот сайт для 3d
Реконструкция с OpenCV говорит:
s * [q 1]^{Transpose} = [K] * [([R] * P) + T]
, где [q]
- это 2-мерная пиксельная координата, 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]
) всегда обратимы? Или
бывают случаи, когда матрицу вращения и / или собственную матрицу нельзя инвертировать?
Можно ли это подтвердить?