Нормалы от проективной глубины
Я хочу вычислить карту нормалей N(i,j)
с карты глубины D(i,j)
, где (i,j)
описывает местоположение 2D пикселя. Основной случай этой проблемы обсуждается здесь: Рассчитать нормали поверхности по глубине изображения, используя соседнее пиксельное перекрестное произведение.
В моем случае, однако, D(i,j)
является проективной глубиной: трехмерный объект (заданный набором трехмерных точек) проецируется на двухмерное изображение с использованием встроенной матрицы камеры [K|0]
(см. определение ниже) путем умножения каждой трехмерной точки на однородные координаты (т.е. вектор 4D [x,y,z,1].T
) с [K|0]
, В этом случае, D(i,j)
соответствует норме трехмерной точки, чья проекция попала в пиксель (i,j)
,
Внутренняя матрица камеры задается
[K|0] = |fx 0 ox 0|
| 0 fy oy 0|
| 0 0 1 0|
где fx / fy - фокусные расстояния по осям x / y, а ox / oy - смещения камеры по осям x / y.
Учитывая эту настройку, каковы нормальные N(i,j)
?