Я смотрю от 2d (глубина / rgbd) до 3d проекции облака точек. Потратив последние несколько дней на чтение, я смутно разбираюсь в матрицах проекций и смотрю на функции, предоставляемые open3d. Я полагаю, что 2d> 3d-проекция может быть выполнена с использованием следующего кода:
z = d / depth_scale
x = (u - cx) * z / fx
y = (v - cy) * z / fy
Это работает, когда глубина рассчитывается по плоскости solid. В моем случае глубина рассчитывается из центральной точки (камеры-обскуры) и, как таковая, проекция выдвигается в сторону от центральной точки.
Например:
На изображении 1 длина A, B, C может составлять 11, 10, 11 м, в то время как на изображении 2 они все будут равны на 10, 10 и 10 м. (эти измерения не являются точными, просто чтобы доказать свою точку зрения.)
В результате, использование измерений на изображении 1 с приведенной выше формулой даст ощущение, что объект искривлен (от центра) , Как я могу изменить формулу, чтобы скорректировать это?
Если у кого-то есть примеры в Python, это было бы очень полезно.
![enter image description here](https://i.stack.imgur.com/cuxKa.png)
Спасибо