当前位置:   article > 正文

什么是open3D?

open3d

目录

一、说明

二、如何安装open3d? 

三、显示点云数据

3.1 显示点云场景数据

3.2 体素下采样

3.3 顶点法线估计


一、说明

        对于点云 处理,这里介绍哦pen3d,该软件和opencv同样是interl公司的产品。

        Open3D 是一个开源库,支持快速开发处理 3D 数据的软件。 Open3D 前端在 C++ 和 Python 中公开了一组精心挑选的数据结构和算法。后端经过高度优化,并设置为并行化。

Point cloud — Open3D 0.17.0 documentation

二、如何安装open3d? 

pip install open3d        # or
pip install open3d-cpu    # Smaller CPU only wheel on x86_64 Linux (since v0.17+)

三、显示点云数据

3.1 显示点云场景数据

  1. import open3d as o3d
  2. import numpy as np
  3. print("Load a ply point cloud, print it, and render it")
  4. ply_point_cloud = o3d.data.PLYPointCloud()
  5. pcd = o3d.io.read_point_cloud(ply_point_cloud.path)
  6. print(pcd)
  7. print(np.asarray(pcd.points))
  8. o3d.visualization.draw_geometries([pcd],
  9. zoom=0.3412,
  10. front=[0.4257, -0.2125, -0.8795],
  11. lookat=[2.6172, 2.0475, 1.532],
  12. up=[-0.0694, -0.9768, 0.2024])

        这里:ply_point_cloud = o3d.data.PLYPointCloud()语句从网上下载了演示点云数据。然后显示。注意,我们自己做的需要接入相机,也生成类似的点云。

        read_point_cloud 从文件中读取点云。它尝试根据扩展名解码文件。有关支持的文件类型的列表,请参阅文件 IO。

        draw_geometries 可视化点云。使用鼠标/触控板从不同的角度查看几何体。

        它看起来像一个密集的表面,但它实际上是一个渲染为面元的点云。 GUI 支持各种键盘功能。例如,- 键减小点(面元)的大小。

        实验结果:

python -c "import open3d as o3d; mesh = o3d.geometry.TriangleMesh.create_sphere(); mesh.compute_vertex_normals(); o3d.visualization.draw(mesh, raw_mode=True)"

GitHub - isl-org/Open3D-ML: An extension of Open3D to address 3D Machine Learning tasks

3.2 体素下采样

        下采样函数

        downpcd = pcd.voxel_down_sample(voxel_size=0.05)
  1. print("Downsample the point cloud with a voxel of 0.05")
  2. downpcd = pcd.voxel_down_sample(voxel_size=0.05)
  3. o3d.visualization.draw_geometries([downpcd],
  4. zoom=0.3412,
  5. front=[0.4257, -0.2125, -0.8795],
  6. lookat=[2.6172, 2.0475, 1.532],
  7. up=[-0.0694, -0.9768, 0.2024])

3.3 顶点法线估计

    search_param=o3d.geometry.KDTreeSearchParamHybrid(radius=0.1, max_nn=30))

        点云的另一个基本操作是点法线估计。按 N 查看点法线。键 - 和 + 可用于控制法线的长度。 

  1. print("Recompute the normal of the downsampled point cloud")
  2. downpcd.estimate_normals(
  3. search_param=o3d.geometry.KDTreeSearchParamHybrid(radius=0.1, max_nn=30))
  4. o3d.visualization.draw_geometries([downpcd],
  5. zoom=0.3412,
  6. front=[0.4257, -0.2125, -0.8795],
  7. lookat=[2.6172, 2.0475, 1.532],
  8. up=[-0.0694, -0.9768, 0.2024],
  9. point_show_normal=True)

参考文章:

OpenCV——单目视觉:方形标定板角点提取_find4quadcornersubpix_点云侠的博客-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/95548
推荐阅读
相关标签
  

闽ICP备14008679号