Open3D 计算投影的点云的尺寸

news2024/11/28 16:03:05

目录

一、概述

1.1实现步骤

1.2应用场景

二、代码实现

三、实现效果

3.1原始点云

3.2投影后点云


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

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


一、概述

        在 Open3D 中,计算投影后的点云尺寸可以通过将点云投影到某个平面,然后计算该投影点云的边界框(Bounding Box)来实现。这个过程的主要步骤包括选择投影平面、将点云投影到该平面、计算投影点云的边界框,并最终计算边界框的尺寸。

1.1实现步骤

  1. 加载点云: 首先加载一个点云数据。
  2. 选择投影平面: 确定一个投影平面,通常是 XY、XZ 或 YZ 平面。
  3. 投影点云: 将点云投影到选择的平面上。
  4. 计算边界框: 计算投影点云的边界框,并从中提取尺寸信息。
  5. 可视化结果(可选): 可视化投影后的点云和边界框。

1.2应用场景

  • 尺寸测量: 在制造和质量控制中,通过投影点云可以测量物体在特定方向上的尺寸。
  • 对象识别: 在计算机视觉中,投影点云的尺寸信息可以用于识别和分类对象。
  • 碰撞检测: 在机器人导航中,计算投影后的尺寸可以用于碰撞检测和路径规划。

二、代码实现

import open3d as o3d
import numpy as np

# 加载点云数据
pcd = o3d.io.read_point_cloud("many_tree.pcd")
o3d.visualization.draw_geometries([pcd], window_name="Cloud", width=800, height=600)
# 将点云投影到XY平面(即忽略Z坐标)
points = np.asarray(pcd.points)
points_2d = points[:, :2]  # 只保留X和Y坐标

# 将投影后的2D点重新转换为点云格式
pcd_2d = o3d.geometry.PointCloud()
pcd_2d.points = o3d.utility.Vector3dVector(np.c_[points_2d, np.zeros(points_2d.shape[0])])  # Z坐标为0

# 计算投影点云的边界框
aabb = pcd_2d.get_axis_aligned_bounding_box()

# 获取边界框的最小和最大点
min_bound = aabb.get_min_bound()
max_bound = aabb.get_max_bound()

# 计算尺寸
width = max_bound[0] - min_bound[0]
height = max_bound[1] - min_bound[1]

print(f"Projected point cloud dimensions:\nWidth: {width}\nHeight: {height}")

# 可视化投影点云和边界框
pcd_2d.paint_uniform_color([1, 0, 0])  # 红色显示投影点云
o3d.visualization.draw_geometries([pcd_2d, aabb], window_name="Projected Point Cloud with AABB", width=800, height=600)

三、实现效果

3.1原始点云

3.2投影后点云

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

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

相关文章

electron-vite打包出错

问题:1 electron-vite 安装, 打包下载资源失败,设置国内镜像 由于electron默认打包会从github上下载相关二进制包,众所周知,国内GitHub访问是相当慢的,所以经常会出现下载失败导致打包不成功,…

中兴-ZSRV2路由器-任意文件读取

中兴-ZSRV2路由器-任意文件读取 文章目录 中兴-ZSRV2路由器-任意文件读取免责声明漏洞描述搜索语法漏洞复现修复建议 免责声明 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连…

upload-labs闯关攻略

pass-1 提前准备好的一个PHP木马,然后将后缀名改为jpg上传 然后在上传的过程中利用抓包,将抓取到的包里面的后缀jpg改为php如图所示,然后放行 接着我们去访问上传的图片信息,如下图所示就为成功 pass-2 提前准备好的一个PHP木马…

线程池相关知识点

线程池是什么相信大家都是知道的,所以这里就不做解释了,直接看相关知识点吧。 初始化线程池方法 继承ThreadPool 实现Runnable 实现Callable 接口 FutureTask (可以拿到返回结果,可以处理异常) 核心参数 corePoo…

[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-23 VTC视频时序控制器设计

软件版本:VIVADO2021.1 操作系统:WIN10 64bit 硬件平台:适用 XILINX A7/K7/Z7/ZU/KU 系列 FPGA 实验平台:米联客-MLK-H3-CZ08-7100开发板 板卡获取平台:https://milianke.tmall.com/ 登录“米联客”FPGA社区 http…

Javascript LeeCode选题(汉诺塔求解)

LeeCode选题 汉诺塔递归求解move移动函数hanoi函数main方法测试代码:代码实现 汉诺塔递归求解 汉诺塔介绍: 汉诺塔的的图形(从上到下1,2,3个)实现: 这里我们可以看到因为必须要将第n个移动到…

数据结构与算法 第7天(树和森林)

树 树的存储结构 双亲表示法 找双亲容易,找孩子不容易 孩子链表法 把每个结点的孩子节点排列起来,看成一个线性表,用单链表存 找孩子容易,找双亲难 带双亲孩子链表法 给孩子链表加一个参数,存双亲的下标 孩子兄…

系统思考—盲点

突‮盲破‬点,解‮合锁‬作潜能——JSTO 的‮能高‬碰撞! 在今天的JSTO会议中,我们在Check In环‮分节‬享了近1-2周‮实的‬践和反思。这‮环个‬节不仅‮助帮‬大家‮享共‬了更多的‮息信‬和资源,还‮效有‬促进了彼‮间此‬…

jenv 一款macos下的开源JAVA多版本环境安装管理切换工具

一个用于macos/linux下的多版本JAVA环境管理工具 -- jenv, 这款工具和 pyenv 类似,都是基于shell脚本开发的. 可以方便的管理 多个java环境版本. jenv安装 git clone https://gitee.com/tekintian/jenv.git ~/.jenv jenv环境配置 将下面的代码加入都你的 ~/.bash_profil…

堆垛机知识介绍:附图

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 完整版文件和更多学习资料,请球友到知识星球【智能仓储物流技术研习社】自行下载。 这份文件是关于堆垛机的介绍,内容包括堆垛机的概念、分类、工作原理、结构…

Vue(九) 全局事件总线、Todo案例应用全局事件总线、消息订阅与发布、Todo案例应用消息订阅、编辑Item、$nextTick

文章目录 一、全局事件总线 (GlobalEventBus)1. 总线前言2. 安装全局事件总线3. 使用总线事件4. 解绑总线事件 二、Todo案例应用全局事件总线三、消息订阅与发布1. 前言2. 使用步骤 四、Todo案例应用消息订阅五、Todo案例编辑Item六、$nextTick修改后的Todo完整代码 一、全局事…

【负载均衡】LoadBalance场景演示

服务端⾼并发分布式结构演进之路-CSDN博客文章浏览阅读976次,点赞11次,收藏9次。在进行技术学习过程中,由于大部分读者没有经历过一些中大型系统的实际经验,导致无法从服务端⾼并发分布式结构演进之路-----在进行技术学习过程中&a…

低代码技术:简化应用开发,推动数字化转型

在当今快速变化的技术环境中,企业面临着巨大的压力,需要快速响应市场需求并持续推动数字化转型。传统的应用开发方式往往复杂且耗时,开发周期长且需要大量的编程工作。为了应对这些挑战,低代码技术应运而生,为企业提供…

谈谈人工智能在中国:现状与未来展望

随着科技的飞速发展,人工智能(AI)已经成为推动全球经济和社会发展的关键力量。作为全球科技创新的重要参与者,中国在AI领域取得了令人瞩目的进展,并展现出强大的未来发展潜力。本文将深入分析中国AI的现状,…

XML简介 xml配置文件和properties配置文件对比

目录标题 一、XML简介二、XML配置文件和properties配置文件对比三、XML约束 一、XML简介 XML是EXtensible Markup Language的缩写,翻译过来就是可扩展标记语言。所以很明显,XML和HTML一样都是标记语言,也就是说它们的基本语法都是标签。 可…

windows下安装docker操作步骤

因为最近dockerb被封,下载资源太不方便了,所以还是自己本地安装上docker吧 下载的地址一定不要找错,是这里 https://docs.docker.com/desktop/install/windows-install/ 电脑--“控制面板”--“程序与功能”--开启windows功能 “Hyper-V”…

webSocket的自学案例

问&#xff1a; 请展示一个简单websocket案例&#xff1f; 回答&#xff1a; <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><title>简单小例子</title></head><body><input type&quo…

记录游戏高光时刻!4款电脑录屏工具分享

虽然之前也录制过游戏&#xff0c;但是想来还是有不少朋友不知道如何录制一个高清游戏视频&#xff0c;我来和大家聊聊游戏直播和录屏的那些事儿。作为一个游戏主播&#xff0c;我尝试过很多录屏软件&#xff0c;今天就来分享一下我用过的四款录屏软件它们在录制游戏视频时的表…

Win32设备I/O详解

Windows设备 在Windows平台下&#xff0c;设备被定义为能够与之进行通信的任何东西。最常见的 I/O 设备包括&#xff1a;文件、文件流、目录、物理磁盘、卷、控制台缓冲区、磁带驱动器、通信资源、mailslot 和管道等。 平常我们使用的文件&#xff0c;目录都可以称之为设备。…

机床采集网关在汽车智能工厂中的应用及成效-天拓四方

随着工业4.0的浪潮席卷全球&#xff0c;智能化、数字化成为了制造业转型升级的关键词。在这一背景下&#xff0c;机床采集网关以其强大的数据采集、传输和处理能力&#xff0c;为企业的数字化转型提供了强有力的支持。本文将通过一个实际案例&#xff0c;详细介绍机床采集网关在…