当前位置: 首页 > news >正文

[Open3d]: 知识记录

python api 官方手册:http://www.open3d.org/docs/release/
可视化:http://www.open3d.org/docs/release/tutorial/visualization/visualization.html
python-vis 参考代码:https://github.com/isl-org/Open3D/tree/master/examples/python/visualization
Open3D-ML:https://github.com/isl-org/Open3D-ML # 基于open3d搞的一个ml项目,可以做一些预测结果&数据的可视化

Visualization 的一些快捷键

鼠标视图控制

  1. 左键+拖动 # 旋转
  2. ctrl + 左键+拖动 # 上下左右平移
  3. shift + 左键+拖动 # 绕垂直屏幕轴玄幻
  4. 滚轮 # 放大,缩小

键盘控制

  1. R # 重置view-point,回到打开的初始状态
  2. ctrl + c # 复制当前的view状态,存到剪切板中
  3. ctrl + v # 回到剪切板中的view
  4. Q, Esc # 退出窗口
    H : Print help message.
    P, PrtScn : Take a screen capture.
    D : Take a depth capture.
    O : Take a capture of current rendering settings.
ViewControl
# init visualizer first
self.o3d_visualizer = o3d.visualization.Visualizer()
self.o3d_visualizer.create_window(visible=False)
mesh_frame = geometry.TriangleMesh.create_coordinate_frame(size=1, origin=[0, 0, 0])  # create coordinate frame
self.o3d_visualizer.add_geometry(mesh_frame)# get ViewControl
ctr = self.o3d_visualizer.get_view_control()# set ViewControl
# refer to http://www.open3d.org/html/python_api/open3d.visualization.ViewControl.html#
# 改变内参来达到缩放的目的, 参考: https://github.com/isl-org/Open3D/issues/828
# get
param = vis.get_view_control().convert_to_pinhole_camera_parameters()# modify
# ... do something with param, e.g. zoom with changing the intrinsics# param.intrinsic.intrinsic_matrix  # 3x3
# param.extrinsic.view()  # 4x4# 在所有的add_geometry之后做# 放大2倍
zoom = 0.5
intrinsics = param.intrinsic.intrinsic_matrix.copy()
intrinsics[0] /= zoom
intrinsics[1] /= zoom
intrinsics[0, 2] = 1920 // 2 - 0.5  # 1920, 1080 是 create_window 的尺寸
intrinsics[1, 2] = 1080 // 2 - 0.5param.intrinsic.intrinsic_matrix = intrinsics
# init_param.extrinsic = self.extrinsics  # 如果传入了外参,就是前视图了# set
ctr.convert_from_pinhole_camera_parameters(param)
ctr.set_zoom(zoom)  # 这两个需要绑定才行
self.o3d_visualizer.update_renderer()  # 更新渲染器

set_zoom # 缩放
rotate(self, x, y, xo=0.0, yo=0.0) # 鼠标沿着x,y轴移动的距离. x,y为正表示沿着对应的轴正方向移动, 反正沿着负方向移动. 适当的值可以得到立体感。

不打开窗口保存渲染的图片
def show(self, save_path=None):"""Visualize the points cloud.Args:save_path (str): path to save image. Default: None."""# self.o3d_visualizer.run()if save_path is not None:# self.o3d_visualizer.capture_screen_image(save_path)self.o3d_visualizer.capture_screen_image(save_path, do_render=True)self.o3d_visualizer.destroy_window()return

相关文章:

  • 什么是软件开发?软件开发阶段划分是什么?并以LabVIEW为例进行说明
  • 可以完成80%的数据分析工作的20个Pandas函数
  • 速盾:cdn加速后真实ip会暴漏吗?
  • Linux——du, df命令查看磁盘空间使用情况
  • perl 用 XML::Parser 解析 XML文件,访问哈希
  • [ C++ ] STL---stack与queue
  • 分库分表场景下多维查询解决方案(用户+商户)
  • 数字人解决方案— SadTalker语音驱动图像生成视频原理与源码部署
  • MySQL连接详解(内外连接,左右连接)
  • 全球首位AI程序员诞生,会抢走程序员的饭碗吗?
  • C# 读取指定文件夹
  • 【PMP】每日一练2
  • 前端项目构建过程中涉及低代码部分思考
  • 2024年3月22蚂蚁新村今日答案:以下哪一项是陕西省的非遗美食?
  • 大数据-基础架构设施演进的过程
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • jquery cookie
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • springboot_database项目介绍
  • Vue 动态创建 component
  • 阿里云Kubernetes容器服务上体验Knative
  • 阿里云前端周刊 - 第 26 期
  • 动态规划入门(以爬楼梯为例)
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 简单数学运算程序(不定期更新)
  • 马上搞懂 GeoJSON
  • 码农张的Bug人生 - 初来乍到
  • 判断客户端类型,Android,iOS,PC
  • 如何胜任知名企业的商业数据分析师?
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 【干货分享】dos命令大全
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (二)Linux——Linux常用指令
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (一)认识微服务
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)创业家杂志:UCWEB天使第一步
  • (转)可以带来幸福的一本书
  • .net mvc部分视图
  • .NET 命令行参数包含应用程序路径吗?
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .NET项目中存在多个web.config文件时的加载顺序
  • .Net小白的大学四年,内含面经