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

基于Python实现JSON点云数据的3D可视化与过滤

基于Python实现JSON点云数据的3D可视化与过滤

  • 一、前言
  • 二、整体架构流程
  • 三、技术细节
  • 四、结论
  • 附:完整代码


一、前言

点云数据是三维空间中点的集合,广泛应用于计算机视觉、机器人导航和3D建模等领域。其核心在于通过大量离散点描述物体的几何形状。本文的代码旨在解决以下问题:

  1. 如何从JSON格式中高效读取点云数据;
  2. 如何利用Python可视化工具展示点云分布;
  3. 如何对点云数据进行简单过滤(如Z轴值筛选)。

通过该代码,用户可以快速生成点云分布图,并分析不同转速比下的点云特征。


二、整体架构流程

  1. 模块划分

    • Batch_reading:批量读取JSON文件并绘制点云。
    • single_reading:单个文件读取、过滤并绘制3D/2D点云。
  2. 核心流程

    • 数据读取

      with open(f'D:/.../Orthogonal_axis_motor_point_cloud_data_{num+1}.json', 'r') as file:points_data = json.load(file)
      

      使用json.load读取JSON文件,将点云数据加载为Python对象。

    • 数据处理

      points_array = np.array(points_data)
      

      将点云数据转换为NumPy数组,便于后续操作。

    • 3D绘图

      fig = plt.figure()
      ax = fig.add_subplot(111, projection='3d')
      ax.scatter(points_array[:, 0], points_array[:, 1], points_array[:, 2], c='b', marker='o', s=5)
      

      使用Matplotlib绘制3D点云,支持动态标题和网格线显示。

    • 过滤与2D投影

      z_0 = 15000 * np.tan(-np.pi / 18)
      points_array = points_array[points_array[:, 2] >= z_0]
      

      基于Z轴值过滤点云数据,并支持2D投影展示。


三、技术细节

  1. JSON文件读取
    json包如下:

    [[0.0,49.99999999999999,19.20832241028353],[0.2277464405828954,49.99948131289765,19.2062623555502],[0.45542715698783337,49.99792581802448,19.20008297879511],[0.6829764678185707,49.995335213841756,19.18978664134152],[0.9103287771569357,49.991712328319785,19.1753772753
http://www.xdnf.cn/news/643393.html

相关文章:

  • 美团2025年校招笔试真题手撕教程(三)
  • Spring 源码阅读(循环依赖、Bean 生命周期、AOP、IOC) - 5.2.15.RELEASE
  • 电路笔记(通信):RS-485总线 物理层规范 接口及其组成部分 瑞萨电子RS-485总线笔记
  • vue3中computed计算属性和watch监听的异同点
  • Qt实战教程:设计并实现一个结构清晰、功能完整的桌面应用
  • 机械师安装ubantu双系统:一、制作系统盘
  • React从基础入门到高级实战:React 核心技术 - 组件通信与 Props 深入
  • Pandas数据规整
  • 香橙派3B学习笔记3:宝塔 Linux 面板的安装
  • 2025年- H46-Lc154 --543. 二叉树的直径(深度、递归、深搜)--Java版
  • 华为OD机试真题—— 矩阵匹配(2025B卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • MySQL的查询进阶
  • 学习STC51单片机15(芯片为STC89C52RCRC)
  • (九)PMSM驱动控制学习---高阶滑膜观测器
  • 网络 :序列和反序列化
  • <uniapp><threejs>在uniapp中,怎么使用threejs来显示3D图形?
  • 电子电路:电压就是电场么?二者有什么关系?
  • python打卡day36
  • Hutool使用
  • 针对面试- RabbitMQ消息队列篇
  • 【linux】umask权限掩码
  • Java类和对象知识点
  • 从lateral说起
  • Ansible常用Ad-Hoc 命令
  • react问一问
  • Axure 基本用法学习笔记
  • 修复ubuntu server笔记本合盖导致的无线网卡故障
  • 触发进程守护服务的判断因数
  • 《帝国时代1》游戏秘籍
  • 【2025】基于Springboot + vue + 协同过滤算法实现的旅游推荐系统