Как создать облако точек из изображения с внутренними параметрами камеры и картой глубины?Python

Программы на Python
Ответить
Anonymous
 Как создать облако точек из изображения с внутренними параметрами камеры и картой глубины?

Сообщение Anonymous »

Я работаю над созданием облака точек на основе изображения, и у меня есть следующие данные:

Код: Выделить всё

1. An image (height x width)
2. Intrinsic camera parameters (camera matrix).
3. A depth map of the image (height x width)
Карта глубины не отображает реальную координату z каждого пикселя. Вместо этого оно представляет евклидово расстояние от камеры до трехмерной точки, соответствующей каждому пикселю. Эта карта глубины, которую я получил от DepthAnythingV2
Я понимаю, что типичный подход включает преобразование 2D-координат пикселей (u,v) в 3D-мировые координаты (X,Y,Z) с использованием встроенных функций камеры. параметры и информация о глубине. Однако, поскольку моя карта глубины дает евклидово расстояние, я не уверен, как правильно вычислить трехмерные точки.
Может ли кто-нибудь помочь мне в этом процессе или предоставить формулу или алгоритм для достижения этого преобразования, учитывая мою карту глубины?
В репозитории DepthAnything есть метод создания облака точек. Вот фрагмент кода:

Код: Выделить всё

h, w = depth_map.shape
x, y = np.meshgrid(np.arange(w), np.arange(h))
real_x = (x - camera_matrix[0][2]) / camera_matrix[0, 0]
real_y = (y - self.camera_matrix[1][2]) / camera_matrix[1, 1]
point_cloud = np.stack(
(np.multiply(real_x, depth_map), np.multiply(real_y, depth_map), depth_map)
)
Я думаю, что это неверно, координаты результата определенно не в системе координат камеры, хотя бы потому, что координата z — это не просто карта глубины

Подробнее здесь: https://stackoverflow.com/questions/793 ... meters-and
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»