根据深度图像创建Open3D中的点云。
create_from_depth_image(depth, intrinsic, extrinsic=np.identity(4))
depth
(numpy.ndarray): 输入的深度图像。intrinsic
(open3d.camera.PinholeCameraIntrinsic): 相机内参。extrinsic
(numpy.ndarray, 可选): 相机在世界坐标系中的位姿。默认为单位矩阵。import open3d as o3d
import numpy as np
depth = np.array([[1.0, 2.0], [3.0, 4.0]]) # 假设深度图像为2x2的矩阵
intrinsic = o3d.camera.PinholeCameraIntrinsic(640, 480, 500, 500, 320, 240) # 假设相机内参已知
# 根据深度图像和相机内参创建点云
pcd = o3d.geometry.PointCloud.create_from_depth_image(depth, intrinsic)
o3d.visualization.draw_geometries([pcd]) # 可视化点云
TypeError
: 当depth
不是numpy.ndarray
类型时抛出。ValueError
: 当depth
数组的维度不为2时抛出。TypeError
: 当intrinsic
不是open3d.camera.PinholeCameraIntrinsic
类型时抛出。ValueError
: 当intrinsic
的宽度和高度不匹配时抛出。