使用Open3D库绘制点云

   Open3D是一个开源库,支持快速开发处理3D数据的软件。Open3D后端是用C++实现的,经过高度优化并通过python的前端接口公开。Open3D提供了三种数据结构:点云(point cloud)、网格(mesh)和RGB-D图像。

本次实验使用Open3D开源库将深度图和原图生成三维点云数据,然后将点云可视化,截取3张不同角度的三维点云,遇到的问题是点云呈锥形状,后续还得再学习下Open3D库的使用。

 

 

 

 

 

 

 

代码如下:

复制代码
# =====================================
    # ===使用open3d库绘制点云
    # 读取原图和深度图
    colorImage = o3d.io.read_image('./img/A0.png')
    depthImage = o3d.io.read_image('./data/DepthMapAdirondack.png')

    # 创建rgbd图像
    rgbdImage = o3d.geometry.RGBDImage().create_from_color_and_depth(colorImage, depthImage, depth_scale=1000.0,
                                                                     depth_trunc=3, convert_rgb_to_intensity=False)
    # 相机内参
    intrinsics = o3d.camera.PinholeCameraIntrinsic()
    # fx = Q[2, 3]
    # fy = Q[2, 3]
    # cx = Q[0, 3]
    # cy = Q[1, 3]
    fx = config.cam_matrix_left[0, 0]
    fy = fx
    cx = config.cam_matrix_left[0, 2]
    cy = config.cam_matrix_left[1, 2]
    print(fx, fy, cx, cy)
    # 获取相机内参
    intrinsics.set_intrinsics(width, height, fx=fx, fy=fy, cx=cx, cy=cy)
    # 外参
    extrinsics = np.array([[1., 0., 0., 0.],
                           [0., 1., 0., 0.],
                           [0., 0., 1., 0.],
                           [0., 0., 0., 1.]])
    # 生成point cloud 点云数据结构
    # 不兼容的函数参数? 解决:不要外参,函数默认已给
    pointcloud = o3d.geometry.PointCloud().create_from_rgbd_image(rgbdImage, intrinsic=intrinsics)
    # 翻转点云
    pointcloud.transform([[1, 0, 0, 0],
                          [0, -1, 0, 0],
                          [0, 0, -1, 0],
                          [0, 0, 0, 1]])
    # 将pcd点云保存
    o3d.io.write_point_cloud('./data/pcdAdirondackZheng.pcd', pointcloud=pointcloud)
    # 可视化点云
    o3d.visualization.draw_geometries([pointcloud], width=720, height=480)
    sys.exit(0)
复制代码

参考博客:https://blog.csdn.net/dulingwen/article/details/98071584,侵删

 

posted @   路人加  阅读(1172)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验
点击右上角即可分享
微信分享提示