目录
Depth-Anything-V2深度图转点云 open3d
Depth-Anything-V2深度图转点云 open3d
import numpy as np
import cv2
import open3d as o3d
def depth_to_point_cloud(depth_image, camera_intrinsics, camera_extrinsics=np.eye(4), scale=1.0):
# 获取图像尺寸
height, width = depth_image.shape
depth_image = 65535 - depth_image
# 创建网格坐标
x, y = np.meshgrid(np.arange(width), np.arange(height))
# 计算相机坐标系下的三维坐标
X = (x - camera_intrinsics[0, 2]) * depth_image / camera_intrinsics[0, 0]
Y = (y - camera_intrinsics[1, 2]) * depth_image / camera_intrinsics[1, 1]
Z = depth_image / scale
# 将三维坐标转换为点云数据
pointcloud = np.stack((X, Y, Z), ax