Open3D 获取点云中指定高度区域的所有点

目录

一、概述

1.1实现步骤

1.2应用

二、代码实现

1.1关键函数

1.2完整代码

三、实现效果

3.1原始点云

3.2处理后点云


Open3D点云算法汇总及实战案例汇总的目录地址:

Open3D点云算法与点云深度学习案例汇总(长期更新)-CSDN博客


一、概述

        该博客实现了在Open3D中实现提取点云中指定高度区域的所有点的功能。获取点云中指定高度区域的所有点是点云数据处理中一个重要的操作,它在建筑物分析、地形分析、树木测量、工业检测、城市规划、文化遗产保护、环境监测和农业应用等多个领域具有广泛的应用。通过提取特定高度范围内的点云数据,可以进行更加精细和有针对性的分析和处理,提高数据处理的效率和准确性。

1.1实现步骤

  1. 读取点云数据:从文件中读取点云数据。
  2. 定义高度阈值:确定需要提取的高度范围。
  3. 提取指定高度范围内的点:通过判断每个点的高度值是否在给定范围内,提取满足条件的点云子集。
  4. 可视化结果:使用Open3D可视化提取后的点云。

1.2应用

1.建筑物分析:
        - 提取建筑物不同高度范围内的点云数据,分析建筑物的不同楼层结构和特征。
2.地形分析:
        - 提取地形不同高度范围内的点云数据,分析不同海拔高度的地形特征和变化。
3.树木测量:
        - 提取树木不同高度范围内的点云数据,分析树木的高度分布和树冠特征。
4.工业检测:
        - 提取工业产品不同高度范围内的点云数据,检测产品在不同高度范围内的缺陷和形状特征。
5.城市规划:
        - 提取城市不同高度范围内的点云数据,分析建筑物和基础设施的高度分布和布局。

二、代码实现

1.1关键函数

  • 使用自定义函数 extract_points_within_height_range 提取满足条件的点云子集。该函数接受点云对象、最小高度值和最大高度值作为参数。
  • 在函数内部,通过判断每个点的高度值是否在给定范围内,提取满足条件的点云子集。
def extract_points_within_height_range(pcd, min_height, max_height):points = np.asarray(pcd.points)mask = (points[:, 2] >= min_height) & (points[:, 2] <= max_height)extracted_points = points[mask]extracted_pcd = o3d.geometry.PointCloud()extracted_pcd.points = o3d.utility.Vector3dVector(extracted_points)if pcd.has_colors():colors = np.asarray(pcd.colors)[mask]extracted_pcd.colors = o3d.utility.Vector3dVector(colors)if pcd.has_normals():normals = np.asarray(pcd.normals)[mask]extracted_pcd.normals = o3d.utility.Vector3dVector(normals)return extracted_pcd

1.2完整代码

import open3d as o3d
import numpy as npdef extract_points_within_height_range(pcd, min_height, max_height):"""提取点云中指定高度范围内的所有点。参数:pcd (open3d.geometry.PointCloud): 输入点云。min_height (float): 最小高度值。max_height (float): 最大高度值。返回:open3d.geometry.PointCloud: 提取后的点云子集。"""points = np.asarray(pcd.points)mask = (points[:, 2] >= min_height) & (points[:, 2] <= max_height)extracted_points = points[mask]extracted_pcd = o3d.geometry.PointCloud()extracted_pcd.points = o3d.utility.Vector3dVector(extracted_points)if pcd.has_colors():colors = np.asarray(pcd.colors)[mask]extracted_pcd.colors = o3d.utility.Vector3dVector(colors)if pcd.has_normals():normals = np.asarray(pcd.normals)[mask]extracted_pcd.normals = o3d.utility.Vector3dVector(normals)return extracted_pcd# 读取点云数据
pcd = o3d.io.read_point_cloud("bunny.pcd")# 定义高度范围
min_height = 0.02  # 最小高度值
max_height = 0.2  # 最大高度值# 提取指定高度范围内的点
extracted_pcd = extract_points_within_height_range(pcd, min_height, max_height)# 可视化提取后的点云
o3d.visualization.draw_geometries([extracted_pcd], window_name="Extracted Point Cloud within Height Range")

三、实现效果

3.1原始点云

3.2处理后点云

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/50633.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS 7.x 的 YUM 仓库问题

背景 CentOS Linux 7 的生命周期&#xff08;EOL&#xff09;已经于 2024 年 6 月 30 日终止这意味着 CentOS 7.x 的官方镜像站点将不再提供服务&#xff0c;导致在使用 yum 安装或更新程序时可能会遇到 错误。本文将介绍如何解决这一问题&#xff0c;使得你可以继续在 CentOS…

【vim】ubuntu20-server 安装配置 vim 最新最详细

在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。【vim】ubuntu20-server 安装配置 vim 最新最详细 开发环境一、vim github二、安装必…

Elasticsearch 使用误区之三——分片设置不合理

Elasticsearch 是一个强大的搜索和分析引擎&#xff0c;它通过将数据分散到多个节点的分片中来进行分布式处理。 本文将探讨分片大小和策略的概念&#xff0c;以优化 Elasticsearch 的性能并防止过度分片或分片过大等问题。 先看个分片设置不合理的真实企业案例&#xff1a; 10…

CSS:position属性

一、属性值 1.1 fixed 固定位置的元素&#xff0c;相对于浏览器窗口进行定位。 元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。 网站中的固定 header 和 footer 就是用固定定位来实现的&#xff1b; header效果图 footer效果图 1.2 absol…

Linux系统安装Cobol语言及IBM大型机模拟软件Hercules

COBOL&#xff08;Common Business-Oriented Language&#xff09;起源于50年代中期&#xff0c;是一种面向过程的高级程序设计语言&#xff0c;主要用于商业和数据处理领域。经过不断发展和标准化&#xff0c;已成为国际上应用最广泛的商业编程语言之一&#xff0c;在某red书上…

Windows Server搭建局域网NTP时间服务器与客户端通实现

1.服务器环境&#xff1a; win11更改注册表 winR输入regedit win11更改注册表 winR输入regedit 2.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config&#xff0c;找到Config目录&#xff0c;双击Config目录下的AnnounceFlags&#xff0c;设为5。 3.HKEY_L…

Nginx 配置与优化:常见问题全面解析

文章目录 Nginx 配置与优化:常见问题全面解析一、Nginx 安装与配置问题1.1 Nginx 安装失败问题描述解决方法1.2 Nginx 配置文件语法错误问题描述解决方法二、Nginx 服务启动与停止问题2.1 Nginx 无法启动问题描述解决方法2.2 Nginx 服务无法停止问题描述解决方法三、Nginx 性能…

Http 和 Https 的区别(图文详解)

在现代网络通信中&#xff0c;保护数据的安全性和用户的隐私是至关重要的。HTTP&#xff08;Hypertext Transfer Protocol&#xff09;和 HTTPS&#xff08;Hypertext Transfer Protocol Secure&#xff09;是两种常见的网络通信协议&#xff0c;但它们在数据保护方面的能力存在…

snkemake入门

一、背景介绍 snakemake是一种用于自动化流程的开源工具&#xff0c;是一款基于python3的软件。在生物信息学、高通量测序数据分析、大规模数据处理等领域非常流行。 snakemake的官网&#xff1a;Snakemake | Snakemake 8.16.0 documentationhttps://snakemake.readthedocs.i…

自监督学习概述(Self-Supervised Learning,SSL)

自监督学习&#xff08;Self-Supervised Learning&#xff0c;SSL&#xff09;是一种机器学习方法&#xff0c;旨在利用未标记数据进行训练。这种方法通过从数据本身生成伪标签&#xff0c;来创建监督信号&#xff0c;使得模型能够学习有效的数据表示。自监督学习在深度学习领域…

C++ | Leetcode C++题解之第283题移动零

题目&#xff1a; 题解&#xff1a; class Solution { public:void moveZeroes(vector<int>& nums) {int n nums.size(), left 0, right 0;while (right < n) {if (nums[right]) {swap(nums[left], nums[right]);left;}right;}} };

MathType 7.8中文直装版2024年最新图文安装破解教程

MathType公式编辑器 v7.8中文破解版是一款适用于Windows和Macintosh的便捷交互式公式编辑器&#xff0c;可帮助您进行文字处理、网页、桌面设计、演示文稿制作、学习TeX、LaTeX和MathML文档创建。 MathType 7.8这个工具允许用户创建、修改公式和插入多个文档。有了这个软件&…

​CSS技巧专栏:一日一例 13 -纯CSS实现晃晃悠悠背景不停滚动的按钮特效​

CSS技巧专栏:一日一例 13 -纯CSS实现晃晃悠悠背景不停滚动的按钮特效​ 大家好,本篇文章给大家带来一个可爱的按钮,像个小宠物等待你抚摸和奖励,不知道它会不会引起你的关注呢?页面上这样的一个按钮,会不会让你忍不住把鼠标移动过去点一下呢? 本例图片 案例分析 这个…

机械学习—零基础学习日志(高数12——反三角函数)

零基础为了学人工智能&#xff0c;真的开始复习高数 反三角函数很困难&#xff0c;但是当建立了逻辑链条&#xff0c;还是能快速理解的。这个办法就是笛卡尔坐标系。 三角函数与反三角函数的个人理解 sinx与cosx&#xff0c;tanx&#xff0c;secx&#xff0c;其实都可以放在…

白嫖游戏指南,Epic喜加一:《暗影火炬城》

前言 Epic喜加一&#xff1a;《暗影火炬城》《暗影火炬城》简介&#xff1a; 前言 接下来有时间会分享一些游戏相关可以白嫖的资源&#xff0c;包括游戏本体、游戏素材资源等等。 有需要的小伙伴可以关注这个专栏&#xff0c;不定期更新哦&#xff01; 专栏&#xff1a;白嫖…

数据库系统概述

文章目录 数据库基本概念内容重点数据库定义计算机三大主要应用领域 数据管理基础数据与信息数据处理与数据管理 数据库技术的产生、发展数据库系统的组成优势组成部分 数据模型概念类型 数据库三级模式和二级映射目的组成部分 数据库系统设计步骤小结 数据库基本概念 内容 信…

羊大师:夏夜贪凉,但为啥肚子还要‘保暖计划’?

在这个夏夜&#xff0c;当空调与风扇齐飞&#xff0c;冰镇西瓜与凉面共舞之时&#xff0c;你是否也曾有过这样的疑惑&#xff1a;明明热得汗流浃背&#xff0c;为啥老一辈总念叨着“睡觉再热也要给肚子盖被子”&#xff1f;这背后&#xff0c;藏着的可不仅仅是老一辈的固执&…

链路聚合加单臂路由

一、实验目的及拓扑 实验目的&#xff1a;在路由器及交换机之间建立链接聚合&#xff0c;交换机接入两台主机并通过路由器子接口自动分配IP地址&#xff0c;通过单臂路由实现两台主机互联 二、基本配置 1、交换机配置 [S1]vlan batch 10 20 [S1-Eth-Trunk1]dis th # interf…

小型内衣裤洗衣机哪个牌子好?五款万分翘楚机型任你挑选!

在日常生活中&#xff0c;内衣洗衣机已成为现代家庭必备的重要家电之一。选择一款耐用、质量优秀的内衣洗衣机&#xff0c;不仅可以减少洗衣负担&#xff0c;还能提供高效的洗涤效果。然而&#xff0c;市场上众多内衣洗衣机品牌琳琅满目&#xff0c;让我们往往难以选择。那么&a…

AI复活,让老照片动起来【数字永生】

✅ 适宜人群&#xff1a;关注 AI 复活缅怀逝者或以此变现的人群 内容出品人&#xff1a;领航猿1号 更多AI知识分享&#xff1a;https://www.yuque.com/lhyyh/ai/readme?singleDoc 1、前言 AI“复活”实质上是利用人工智能技术&#xff0c;通过对人物已有“形象、声音、语言、…