m0_46539384 2023-05-20 12:47 采纳率: 100%
浏览 10
已结题

open3df的可视化问题

您好想问一下,为什么同一朵点云我我在cloudcompare打开和用open3d打开,感觉open3d的点云的点的数量要少一些,这个是我有什么没设置吗

cloud compare是用默认的方式打开,open3d的代码是这个

import open3d as o3d
import numpy as np

print("->正在加载点云... ")
pcd = o3d.io.read_point_cloud("E:/new_python_project/point_cloud_learning/source_cloud.pcd")
print(pcd)

print("->正在可视化点云")
o3d.visualization.draw_geometries([pcd], window_name="Open3D显示图像",
                                  width=1920, height=1080,
                                  left=50, top=50,
                                  mesh_show_back_face=False)  # 显示图片

img

img

  • 写回答

1条回答 默认 最新

  • @晓码自在 2023-05-23 00:55
    关注

    该回答引用GPT与博主@晓码自在合作编写:
    同一点云文件在CloudCompare和Open3D中显示的点云点数不同,通常有以下几个原因:

    1. 默认抽样率不同。Open3D在加载点云时默认使用voxel_down_sample对点云进行下采样,以减小点云体积和提高操作效率。该下采样率可以在读取点云时通过参数设置调整。
    2. 默认噪声过滤不同。Open3D在读取点云时默认使用statistical_outlier_removal滤波算法过滤离群点,以提高点云质量。该滤波参数也可以在读取点云时设置。
    3. 默认忽略某些特定点。例如Open3D默认会忽略点云中Normal方向指向相机的点,以实现背面剔除的效果。CloudCompare没有这样的默认设置。
    4. 打开点云的代码/函数不同。Open3D和CloudCompare打开点云的数据流程及相关算法不同,最终展示的点云效果也会有差异。
      要解决这个问题,您可以:
    5. 在Open3D中读取点云时,将voxel_down_sample和statistical_outlier_removal相关参数设置为None,关闭默认下采样和滤波过程。
    6. 读取点云后,对点云执行o3d.geometry.estimate_normals()重新计算Normal,避免默认背面剔除的影响。
    7. 比较Open3D和CloudCompare打开点云使用的代码和函数流程,理解两者在处理点云方面的差异,必要时可以修改Open3D的代码以产生与CloudCompare更加一致的效果。
      修改后的Open3D代码示例:
    python
    pcd = o3d.io.read_point_cloud("point_cloud.pcd", 
                                  voxel_down_sample=None,
                                  statistical_outlier_removal=None)
    o3d.geometry.estimate_normals(pcd)
    o3d.visualization.draw_geometries([pcd]) 
    
    

    希望该说明能帮助您理解Open3D和CloudCompare在加载和显示点云时的差异,以及如何设置相关参数调整Open3D的点云效果。点云处理是一个重要的技术方向,不同工具和库在实现过程中算法和策略也会有差异。我们需要通过具体案例不断比较和理解,这样才能根据自己的需要选择合适的工具,或者开发定制的解决方案。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月31日
  • 已采纳回答 8月23日
  • 创建了问题 5月20日

悬赏问题

  • ¥15 python结合Matlab仿真忆阻器
  • ¥35 有人会注册whatsaop协议号吗?
  • ¥15 lead dbs 无法导入影像数据
  • ¥15 多目标MPA算法优化编程实现
  • ¥15 反激PWM控制芯片调研
  • ¥15 Python for loop减少运行时间
  • ¥15 fluent模拟物质浓度udf
  • ¥15 Collection contains no element matching the predicate
  • ¥20 冻品电商平台的搜索是怎么实现的
  • ¥15 如何搞一个可以控制、显示马达频率