3维图像处理的新星--Open3D(实操过程持续更新ing....

本文介绍了使用Open3D进行3D图像处理的初步操作,包括点云数据的读取与可视化、体素下采样、法线估计、上色以及初步的聚类尝试。在DBSCAN聚类过程中,通过调整参数解决了点数过多导致的进程被杀问题。
摘要由CSDN通过智能技术生成

听说Open3D很好用,我先学习学习,后面再转战PCL,毕竟PCL是点云届的经典大佬*.*

本人使用的是python版本噢:)

1.官网功能介绍及例程
http://www.open3d.org/docs/release/tutorial/geometry/index.html
也可以参考这位朋友整理的Open3D算法资料:

https://blog.csdn.net/qq_40985985/article/details/108715871?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

2.环境配置
ubuntu18.04下可以使用pip命令:
pip install open3d
安装完毕后,在终端使用python:

yy@yy:~$ python
Python 3.7.6 (default, Jan  8 2020, 19:59:22) 
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import open3d
>>> 

如果没有报错说明安装成功>.<
3.开始使用
官网提供了丰富的python接口教程,动手试一试吧:
http://www.open3d.org/docs/release/tutorial/geometry/python_interface.html
3.1 读取点云数据并可视化
需要使用的函数有:
1)read_point_cloud 文件读取函数
2)draw_geometries 可视化函数

yy@yy:~$ python
Python 3.7.6 (default, Jan  8 2020, 19:59:22) 
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import open3d as o3d
>>> pcd = o3d.io.read_point_cloud("/home/yy/文档/pointcloud/desk_1.pcd")  ###输入被读取文件的路径
>>> print(pcd)
PointCloud with 1595906 points.
>>> import numpy as np
>>> print(np.asarray(pcd.points))
[[-0.7070244  -0.52971417  1.2640001 ]
 [-0.7070244  -0.52084869  1.2640001 ]
 [-0.7070244  -0.51198316  1.2640001 ]
 ...
 [-0.76719701 -0.32806134  1.2508162 ]
 [-0.77002394 -0.32122216  1.2594384 ]
 [-0.76220942 -0.31320193  1.2549695 ]]
>>> o3d.visualization.draw_geometries([pcd],
                                      zoom=0.3412,
                                      front=[0.4257, -0.2125, -0.8795],
                                      lookat=[2.6172, 2.0475, 1.532],
                                      up=[-0.0694, -0.9768, 0.2024])

执行完毕后会显示出我们读取文件的3d图像:
desk
3.2 体素下采样
体素下采样使用常规体素网格从输入点云创建统一下采样的点云,它通常用作许多点云处理任务的预处理步骤。
1) 点被存储到体素中;
2) 每个占用的体素通过平均内部的所有点来精确生成一个点。

>>> downpcd = pcd.voxel_down_sample(voxel_size=0.05)  ###使用0.05的体素对点云下采样,值越大,得到点数越少
>>> o3d.visualization.draw_geometries([downpcd],
                                      zoom=0.3412,
                                      front=[0.4257, -0.2125, -0.8795]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值