最近头疼于点云法向量的计算,实在找不到python的相关资料,想起来Open3D这个专门的工具。一搜还真有,踩了很多坑,记录一下。

Open3D官方文档:http://www.open3d.org/docs/release/index.html

1、安装配置

还是直接pip install --user open3d-python比较简单粗暴。

一开始用pip install --user open3d得到的库不太全,很多东西都没有,不知道为啥。后来尝试按照官方文档的教程,一步步编译源码,但是不知道是我自己太菜了还是他文档写的不清楚。总之,很复杂,很不顺利,甚至觉得还有英语的语病,头大。

最终终于找到办法,加上-python,完成了安装配置。

2、用啥学啥

estima_normals()

o3d.geometry.PointCloud.estimate_normal()??? 不,不对,虽然在官方文档中estimate_normal方法是PointCloud下的,但是居然是用o3d.geometry.estimate_normal()调用,我也是服气。然后看看这个函数干了点啥吧,哦,knn法估计法向量,然后返回一个bool值??what?那我怎么获取法向量?



好吧,百度了一圈,也没查到。新事物果然资源少(所以果断用完来写博客,共享给所有人)

言归正传,解决办法找到了:

之前一直看的是下面的pythonAPI,原来还是要看TUTORIAL。

废话不多说,正确的使用方法:

import numpy as np
import open3d as o3dpcd = o3d.io.read_point_cloud("../../TestData/fragment.ply")
#可视化一下
o3d.visualization.draw_geometries([pcd])#下采样
downpcd = pcd.voxel_down_sample(voxel_size=0.05)
o3d.visualization.draw_geometries([downpcd])#计算法向量
downpcd.estimate_normals(search_param=o3d.geometry.KDTreeSearchParamHybrid(radius=0.1, max_nn=30))
o3d.visualization.draw_geometries([downpcd])#原来这样获取
print("Print a normal vector of the 0th point")
print(downpcd.normals[0])
print("Print the normal vectors of the first 10 points")
print(np.asarray(downpcd.normals)[:10, :])

3、偶然发现

在可视化的时候发现除了鼠标能拖动旋转,没有别的按钮来操作了,很想吐槽。偶然间碰到了键盘按键,发现别有洞天。

具体的,按下‘h’键,命令行会给出帮助菜单,如下:

至此,开心完成学习,可以用来轻松获取法向量了。

【3D人脸】Open3D学习笔记 一相关推荐

  1. 3D人脸重建--学习笔记

    本文旨在学习总结2D到3D人脸重建相关问题,个人水平有限,本人也是刚开始调研3D人脸重建,不足之处望大神指点改进. 文章目录 1 什么是3D人脸重建? 2 重建方法分类 3 通用模型3D人脸重建 4 ...

  2. 图形处理(十三)基于可变形模板的三维人脸重建-学习笔记

    基于可变形模板的三维人脸重建-学习笔记 原文地址:http://blog.csdn.net/hjimce/article/details/50331423 作者:hjimce 一.数据库处理: 我们通 ...

  3. OPEN3D学习笔记(三)——KDTree ICP Registration

    OPEN3D学习笔记(三) KDTree Build KDTree from point cloud Find neighboring points ICP Registration 可视化配准过程 ...

  4. OPEN3D学习笔记(四)——Global registration

    OPEN3D学习笔记(四) Global registration Extract geometric feature Input RANSAC Local refinement Fast globa ...

  5. OPEN3D学习笔记(六)——Multiway registration

    OPEN3D学习笔记(六) Multiway registration Input Pose graph Visualize optimization Make a combined point cl ...

  6. 3D目标检测学习笔记

    博主初学3D目标检测,此前没有相关学习背景,小白一枚-现阶段的学习重点是点云相关的3D检测. 本文是阅读文章:3D Object Detection for Autonomous Driving: A ...

  7. 嵌入式3D人脸识别(笔记)

    3D人脸识别在人脸识别中所占比例58%(2020年),3D是趋势. 3D人脸误识率1/100万,2D人脸误识率1/1万. 应用人脸活体.高精度识别. 几种深度相机比较: 双目:运算量大,受光照影响(过 ...

  8. 《AutoCAD Advanced 3D Modeling》学习笔记

    AutoCAD是一款非常流行的计算机辅助设计软件,在工程.建筑.制造和许多其他领域中都得到了广泛的应用. <AutoCAD Advanced 3D Modeling>是LinkedIn L ...

  9. Android加载3D模型的学习笔记

    篇章目标要点 3D模型的使用最早是在游戏领域广泛使用的,随着技术的发展,其他工业领域也在逐步引入3D相关的技术设计.本文是结合初学3D模型的读取和显示总结的心得,本文作为序列的第一篇介绍,重点会阐述3 ...

最新文章

  1. 基于Springboot实现企业人事管理系统
  2. 项目: 用C语言写一个图形化的音乐播放器 【C++ / C】
  3. Express + mongoDB + nodejs
  4. 常用的python命令行解析库
  5. android-铃声的设置与播放
  6. c语言改错和填空能运行吗,C语言改错填空编程
  7. Linux启动syslog进程,linux – 使用systemd启动的进程正在记录到/ var / log / syslog和/var/log/daemon.log...
  8. mysql binlog限流问题总结
  9. Atitit 诗歌之道 attilax著 艾龙 著 1. 诗歌集分类 1 1.1. 国王颂歌 1 1.2. 爱情类(相逢 赞美 相识 思念 离去 分分离离 忘记) 1 1.3. 其他 1 2. 世界
  10. 贝莱德文化:领导者必须培养领导者
  11. 读书笔记 - 深入解析Windows操作系统 - C1. 概念和工具
  12. 关于4442卡的读密码问题
  13. 整理:状态机的编程思想
  14. Go 语言开发工具 LiteIDE x22 发布
  15. 什么是全栈工程师 摘自360
  16. 做自媒体视频剪辑到哪里找素材?
  17. mac怎么查python的版本_Mac下如何查看Python的版本?
  18. 2021华数杯数学建模选题建议
  19. 网络协议 -- IP地址
  20. Git冲突:Your local changes would be overwritten by merge. Commit, stash or revert them to proceed.

热门文章

  1. 【图片新闻】波音公司发布了一款令人惊叹的新型无人飞机:“忠诚的僚机”
  2. Android之AlarmManager
  3. php mysql 单例模式_php单例模式
  4. 第七天----创建型设计模式笔记
  5. 【AdGuard Home】轻松实现全屋去广告与追踪,AdGuard Home助力更安全浏览体验
  6. gomod的版本选择策略
  7. Windows 端口关闭命令
  8. 阿里用什么替代了dubbo_如果微信不能用了,有什么可以替代的软件?
  9. 【GoCN酷Go推荐】 ​文本差异对比工具 go-diff
  10. 使用pygal_maps_world.i18n中数据画各大洲地图