open3d之体素化Voxelization有关函数详情(笔记6)
点云和三角形网格是非常灵活但不规则的几何类型。体素网格是在常规 3D 网格上定义的另一种 3D 几何类型,而体素可以被认为是 2D 中像素的 3D 对应物。Open3D 具有可用于处理体素网格的几何类型 VoxelGrid。
注:按照官方文档进行翻译,有空白的地方,是因为官方文档也没给出内容
从三角形网格(from triangle mesh)
Open3D 提供了方法 create_from_triangle_mesh 从三角形网格创建体素网格。它返回一个体素网格,其中与三角形相交的所有体素设置为 1,所有其他体素设置为 0。数voxel_size 定义体素网格的分辨率。
class open3d.data.BunnyMesh |
介绍: BunnyMesh 的数据类包含来自斯坦福 3D 扫描存储库的 BunnyMesh.ply。 |
方法: __init__(self: open3d.data.BunnyMesh, data_root: str = '') → None |
属性: data_root:获取数据根目录。数据根在构建时设置或自动确定 download_dir:获取下载目录的绝对路径 extract_dir:获取解压目录的绝对路径 path:BunnyMesh.ply 文件的路径 prefix:获取数据集的前缀 |
create_from_triangle_mesh(input, voxel_size) |
函数功能: 从给定的 TriangleMesh 创建 VoxelGrid。不转换颜色信息。创建的 VoxelGrid 的边界是从 TriangleMesh 计算的 |
参数: input (open3d.geometry.TriangleMesh):输入的三角网格 voxel_size (float):VoxelGrid 构造的体素大小 |
返回: open3d.geometry.VoxelGrid |
从点云(from point cloud)
体素网格也可以使用 create_from_point_cloud 方法从点云创建。如果点云的至少一个点在体素内,则占据一个体素。体素的颜色是体素内所有点的平均值。参数voxel_size 定义体素网格的分辨率。
class |
介绍: ArmadilloMesh 的数据类包含来自 Stanford 3D Scanning Repository 的 ArmadilloMesh.ply |
方法: __init__(self: open3d.cpu.pybind.data.ArmadilloMesh, data_root: str = '') → None |
属性: data_root:获取数据根目录。数据根在构建时设置或自动确定 download_dir:获取下载目录的绝对路径 extract_dir:获取解压目录的绝对路径 path:BunnyMesh.ply 文件的路径 prefix:获取数据集的前缀 |
open3d.geometry.VoxelGrid create_from_point_cloud(input, voxel_size) |
函数功能: 从给定的 PointCloud 创建一个 VoxelGrid。给定体素的颜色值是落入其中的点的平均颜色值(如果点云有颜色)。创建的 VoxelGrid 的边界是从 PointCloud 计算的 |
参数: input (open3d.geometry.PointCloud):输入的点云 voxel_size (float):VoxelGrid 构造的体素大小 |
返回: open3d.geometry.VoxelGrid |
包容性测试
体素网格也可用于测试点是否在占用的体素内。 check_if_included 方法将 (n,3) 数组作为输入并输出 bool 数组。
open3d.geometry.VoxelGrid check_if_included(self, queries) |
函数功能: 逐元素检查列表中的查询是否包含在 VoxelGrid 中。查询是双精度的,并映射到最近的体素 |
参数: queries (open3d.utility.Vector3dVector) |
返回: List[bool] |
体素雕刻
create_from_point_cloud 和 create_from_triangle_mesh 方法仅在几何体表面上创建占用体素。然而,可以从许多深度图或轮廓中雕刻出体素网格。Open3D 为体素雕刻提供了 carve_depth_map 和 carve_silhouette 方法。
open3d.geometry.TriangleMesh create_sphere(radius=1.0, resolution=20, create_uv_map=False) |
函数功能: 用于创建以 (0, 0, 0) 为中心的球体网格的函数 |
参数: radius (float, optional, default=1.0):球体的半径 resolution (int, optional, default=20):球体的分辨率。经度将被分成分辨率段(即有分辨率 + 1 条纬线,包括北极和南极)。纬度将被分成`2 * 分辨率段(即有 2 * 分辨率经度线。) create_uv_map (bool, optional, default=False):将默认 uv 贴图添加到网格 |
返回: open3d.geometry.TriangleMesh |
open3d.geometry.VoxelGrid create_dense(origin, color, voxel_size, width, height, depth) |
函数功能: 创建一个体素网格,其中设置了每个体素(因此是密集的)。这是体素雕刻的有用起点 |
参数: origin (numpy.ndarray[numpy.float64[3, 1]]):VoxelGrid 的坐标中心 color (numpy.ndarray[numpy.float64[3, 1]]):所有体素的体素颜色 voxel_size (float):VoxelGrid 构造的体素大小 width (float):VoxelGrid 的空间宽度扩展 height (float):VoxelGrid 的空间高度扩展 depth (float):VoxelGrid 的空间深度扩展 |
返回: open3d.geometry.VoxelGrid |
open3d.visualization.Visualizer create_window(self, window_name='Open3D', width=1920, height=1080, left=50, top=50, visible=True) |
函数功能: 创建窗口并初始化 GLFW 的函数 |
参数: window_name (str, optional, default='Open3D'):窗口标题名称 width (int, optional, default=1920):窗口的宽度 height (int, optional, default=1080):窗口的高度 left (int, optional, default=50):窗口到屏幕的左边距 top (int, optional, default=50):窗口到屏幕的上边距 visible (bool, optional, default=True):窗口是否可见 |
返回: bool |
open3d.visualization.Visualizer add_geometry(self, geometry, reset_bounding_box=True) |
函数功能: 将几何图形添加到场景并创建相应着色器的功能 |
参数: geometry (open3d.geometry.Geometry):geometry对象 reset_bounding_box (bool, optional, default=True):设置为 False 以保持当前视点 |
返回: bool |
open3d.visualization.Visualizer get_render_option(self) |
函数功能: 检索关联的 RenderOption 的函数 |
参数: |
返回: open3d.visualization.RenderOption |
open3d.visualization.Visualizer get_view_control(self) |
函数功能: 检索关联的 ViewControl 的函数 |
参数: |
返回: open3d.visualization.ViewControl |
open3d.visualization.ViewControl convert_to_pinhole_camera_parameters(self) |
函数功能: 将 ViewControl 转换为 camera.PinholeCameraParameters 的函数 |
参数: |
返回: open3d.camera.PinholeCameraParameters |
open3d.visualization.ViewControl convert_from_pinhole_camera_parameters(self, parameter, allow_arbitrary=False) |
函数功能: |
参数: parameter (open3d.camera.PinholeCameraParameters):要转换的针孔相机参数 allow_arbitrary (bool, optional, default=False):(允许独断) |
返回: bool |
open3d.visualization.Visualizer poll_events(self) |
函数功能: 轮询事件的函数 |
参数: |
返回: bool |
open3d.visualization.Visualizer update_renderer(self) |
函数功能: 通知渲染需要更新的功能 |
参数: |
返回: None |
open3d.visualization.Visualizer capture_depth_float_buffer(self, do_render=False) |
函数功能: 在浮点缓冲区中捕获深度的函数 |
参数: do_render (bool, optional, default=False):设置为 True 进行渲染 |
返回: open3d.geometry.Image |
open3d.geometry.PointCloud create_from_depth_image(depth,intrinsic, extrinsic=(with defaul tvalue), depth_scale=1000.0, depth_trunc=1000.0, stride=1, project_valid_depth_only=True) |
函数功能: 从深度图像和相机创建点云的工厂函数。给定 (u, v) 图像坐标处的深度值 d,对应的 3d 点为: z = d / depth_scale x = (u - cx) * z / fx y = (v - cy) * z / fy |
参数: depth (open3d.geometry.Image):输入深度图像可以是浮点图像,也可以是 uint16_t 图像。 intrinsic (open3d.camera.PinholeCameraIntrinsic):相机的内在参数 extrinsic (numpy.ndarray[numpy.float64[4, 4]], optional):数组 ([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0 ., 0., 1.]]) depth_scale (float, optional, default=1000.0):深度按 1 / depth_scale 缩放 depth_trunc (float, optional, default=1000.0):在 depth_trunc 距离处截断 stride (int, optional, default=1):支持粗略点云提取的采样因子 project_valid_depth_only (bool, optional, default=True): |
返回: open3d.geometry.PointCloud |
open3d.geometry.VoxelGrid carve_depth_map(self, depth_map, camera_params, keep_voxels_outside_image=False) |
函数功能: 从体素网格中删除所有体素,其中体素的边界点均未投影到小于或等于边界点投影深度的深度值。如果 keep_voxels_outside_image 为真,则仅当所有边界点都投影到有效图像位置时才雕刻体素 |
参数: depth_map (open3d.geometry.Image):用于 VoxelGrid 雕刻的深度图(图像) camera_params (open3d.camera.PinholeCameraParameters) keep_voxels_outside_image (bool, optional, default=False):保留不投影到图像中像素的体素 |
返回: open3d.geometry.VoxelGrid |
open3d.geometry.VoxelGrid carve_silhouette(self, silhouette_mask, camera_params, keep_voxels_outside_image=False) |
函数功能: 从 VoxelGrid 中删除所有体素,其中没有体素的边界点投影到有效的掩码像素(像素值 > 0)。如果 keep_voxels_outside_image 为真,则仅当所有边界点都投影到有效图像位置时才雕刻体素 |
参数: silhouette_mask (open3d.geometry.Image):用于 VoxelGrid 雕刻的剪影轮廓(图像) camera_params (open3d.camera.PinholeCameraParameters) keep_voxels_outside_image (bool, optional, default=False):保留不投影到图像中像素的体素 |
返回: open3d.geometry.VoxelGrid |
open3d.visualization.Visualizer destroy_window(self) |
函数功能: 销毁窗口的函数。这个函数必须从主线程调用 |
参数: |
返回: None |
open3d.geometry.VoxelGrid create_from_point_cloud_within_bounds(input, voxel_size, min_bound, max_bound) |
函数功能: 从给定的 PointCloud 创建一个 VoxelGrid。给定体素的颜色值是落入其中的点的平均颜色值(如果点云有颜色)。创建的 VoxelGrid 的边界由给定的参数定义 |
参数: input (open3d.geometry.PointCloud):输入的点云 voxel_size (float):VoxelGrid 构造的体素大小 min_bound (numpy.ndarray[numpy.float64[3, 1]]):VoxelGrid 要创建的最小边界点 max_bound (numpy.ndarray[numpy.float64[3, 1]]):VoxelGrid 要创建的最大边界点 |
返回: open3d.geometry.VoxelGrid |
open3d.geometry.VoxelGrid create_from_triangle_mesh_within_bounds(input, voxel_size, min_bound, max_bound) |
函数功能: 从给定的 TriangleMesh 创建 VoxelGrid。不转换颜色信息。创建的 VoxelGrid 的边界由给定的参数定义 |
参数: input (open3d.geometry.TriangleMesh):输入的三角网格 voxel_size (float):VoxelGrid 构造的体素大小 min_bound (numpy.ndarray[numpy.float64[3, 1]]):VoxelGrid 要创建的最小边界点 max_bound (numpy.ndarray[numpy.float64[3, 1]]):VoxelGrid 要创建的最大边界点 |
返回: open3d.geometry.VoxelGrid |
open3d之体素化Voxelization有关函数详情(笔记6)相关推荐
- 体素化(Voxelization)
参考链接 体素化(Voxelization)是将物体的几何形式表示转换成最接近该物体的体素表示形式,产生体数据集,其不仅包含模型的表面信息,而且能描述模型的内部属性.表示模型的空间体素跟表示图像的二维 ...
- 利用PCL点云下采样实现数据体素化
利用PCL点云下采样实现数据体素化 PCL PCL(Point Cloud Library) 库集成了针对大体量级别的空间点数据处理所需要的算法和操作,降低了处理相关需求的复杂度,对快速建立点云数据文 ...
- Open3D Voxelization 体素化
Voxelization 体素化 点云和三角形网格是非常灵活但不规则的几何类型.体素网格(voxel grid)是在 3D 网格上定义的 3D 中的另一种几何类型,体素可以被视为 2D 中像素(pix ...
- 『OPEN3D』1.6 Voxelization体素化
目录 1 从triangle meshes中创建体素 2 从点云中创建体素 3 体素包含测试(Inclusion test) 4 Voxel carving 在点云处理的内容中,简单介绍了open3d ...
- Open3d学习计划——高级篇 6(体素化)
Open3d学习计划--高级篇 6(体素化) 点云和三角网格是一种十分灵活的,但是不规则的几何类型.体素网格是通过规则的3D网格来表示的另一种3D几何类型,并且它可以看作是2D像素在3D上的对照物.O ...
- Voxelization 三维模型体素化
Voxelization 三维模型体素化 导入mesh文件,以obj文件为例: 一般文件mesh文件内容有顶点与面,可以用三维设计软件生成,生成的时候注意mesh文件只保存三角形面片,以便后面读取 o ...
- Voxelization——体素化模型
上周部门内部进行分享知识讲座时讲到一个词Voxelization,也就是体素化,也就是用某些东西充满一个物体的内部,如下面这两张图,用小方块充满圆环和锥体. 其主要算法也有多种,我这里采用的是用bou ...
- open3d剩余内容有关函数详情(笔记10)
本次笔记包括网格变形(Mesh deformation).内在形状特征(Intrinsic shape signatures)ISS.光线投射(Ray Casting)和距离查询(Distance Q ...
- open3d之表面重建有关函数详情(笔记8)
在许多情况下,我们希望生成密集的 3D 几何图形,即三角形网格.但是,从多视图立体方法或深度传感器中,我们只能获得非结构化点云.要从这个非结构化输入中获得三角形网格,我们需要执行表面重建.在文献中存在 ...
最新文章
- 119. Leetcode 115. 不同的子序列 (动态规划-子序列问题)
- MariaDB配置慢日志
- 赛事丨出道题就能赢万元奖金?华录杯大赛告诉你,是真的
- 什么是runtime?
- 从市场角度看服务器虚拟化
- Clubhouse 推出漏洞奖励计划,严重漏洞最高可获3000美元
- Chrome插件GitZip(下载github项目中的部分文件)
- creo绘图属性模板_最好用的工程图格式文件及建模模板文件
- 用二分法求下面方程在(-10,10)之间的根:2x^3-4x^2+3x-6=0
- SVG矢量图中矢量路径的获取
- 判断系统是centos还是ubuntu的linux命令
- 钱多多软件制作第六天
- oppo修改无线网服务器,简单小修改,你的OPPO手机wifi信号会马上提升
- 实用工具推荐--GIF动图裁剪工具IIMG(免注册且免费)
- 微信怎么和计算机发送文件格式,用微信怎么发送文件 手机微信发送文件、视频方法图文详解...
- 讲解通达信接口插件的编程源码运作过程
- 仿抖音短视频项目笔记 (一)产品介绍与数据库设计
- 解决jpgraph汉字乱码的两种方法
- VBA之正则表达式(32)-- 提取指定规格
- 电脑账户进不去 被停用,PIN无法验证,如何进入电脑安全模式
热门文章
- 安师大计算机系导师,安徽师范大学数学计算机科学学院导师介绍:陈付龙
- linux中ll -lht,02-Linux命令(上)
- 你知道吗?U盘插入速度决定读写速度,看完别再用错了
- 第五章总结(创建与使用视图)
- 窃取MSSQL各版本密码HASH
- 关于U盘装系统的那点破事儿---No bootable device found
- shopee跨境店铺怎么申请入驻-跨境知道
- 唐伯虎啊.......哎~~
- 虚拟机win7 DNS 不可用
- mysql查询每个部门的最高和最低工资_SQL数据库 计算出每个部门的平均工资 最高工资和最低工资 语法怎么写?...