You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Open3D对同一OBJ文件采样点云结果每次一致?

解决Open3D Poisson Disk采样结果不一致的问题

要让sample_points_poisson_disk每次生成相同的点云,核心是正确设置Open3D专属的随机种子,而非仅设置Python内置的随机种子——因为Open3D的采样算法使用自身独立的随机数生成器,和Python全局随机模块不共享状态。

修正后的代码

import open3d as o3d

# 固定Open3D的随机种子,值可替换为任意固定整数
o3d.utility.random.seed(42)

# 加载网格
mesh = o3d.io.read_triangle_mesh(objFilePath)
# 执行Poisson Disk采样
density_pcd = mesh.sample_points_poisson_disk(cloudCount)

关键说明

  • 必须在调用采样函数前设置o3d.utility.random.seed(),确保采样过程使用固定的随机序列。
  • 若之前尝试过Python的random.seed()或numpy.random.seed(),这些不会影响Open3D的采样逻辑,两者的随机数生成器相互独立。
  • 若仍存在不一致,检查OBJ文件是否在每次运行时被意外修改,或加载网格时是否启用了可能改变网格结构的参数(比如enable_post_processing等,默认值为False,一般不影响)。

内容的提问来源于stack exchange,提问作者hu changpan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 19:45:56