基于Open3D的点云处理5-点云之间的距离计算

2023-11-11

计算在一片点云中的每一个点在另一片点云中最近点的距离:

  • 常规写法,通过k-d Tree进行搜索每个点的最近点;

[k, idx, dist] = k_dTree.search_knn_vector_3d(pc2.points[i],k) #通过k-d Tree进行搜索最近点;
# k返回点个数
# idx 返回点索引
# dist 返回点距离

  • open3d 提供了直接计算点云与点云之间距离的函数

compute_point_cloud_distance()

import open3d as o3d
import numpy as np
#首先读取原始点云和求异点云
pc1 = o3d.io.read_point_cloud("./data/1.ply",remove_nan_points=True,remove_infinite_points=True)#原始点云
pc2 = o3d.io.read_point_cloud("./data/2.ply",remove_nan_points=True,remove_infinite_points=True)#求异点云
dist = pc2.compute_point_cloud_distance(pc1)
idx = [i for i,distance in enumerate(dist)  if distance>0.5 ]
#最后将点云中相同的部分和不同的部分分别取出来进行显示
same_part = pc2.select_by_index(idx)
diff_part = pc2.select_by_index(idx,invert=True)
same_part.paint_uniform_color([1,0,0])
diff_part.paint_uniform_color([0,0,1])
o3d.visualization.draw_geometries([same_part,diff_part])

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于Open3D的点云处理5-点云之间的距离计算 的相关文章

  • 如何使用更少的包绘制二元正态分布的表面和轮廓

    我将绘制二元正态分布的 3D 曲面及其轮廓 可以是任何二元正态分布 我想用persp and contour在我的画中 我在网上搜索了一下 但发现了很多方法 大多数人都使用过一些软件包 但我想以使用更少的软件包甚至不安装任何软件包的方式来执
  • 可点击的精灵标签?

    我一直在玩精灵文本标签 更具体地说是这个例子 http stemkoski github io Three js Sprite Text Labels html http stemkoski github io Three js Sprit
  • OpenGL Z 偏置(多边形偏移)限制

    我有两个共面的多边形 我尝试做 glEnable GL POLYGON OFFSET FILL glPolygonOffset 0 1 并期望其中一个明显 位于 另一个之上 这种情况直到大约 70 75 个单位之外 近剪裁平面为 1 远剪裁
  • OpenGL z轴指向哪里?

    我正在尝试了解 OpenGL 坐标系 我到处都看到它被描述为右撇子 但这与我的经验不符 我尝试绘制一些形状和 3 d 对象 我发现 z 轴显然指向 屏幕 而 x 指向右侧 y 指向上方 这是左手坐标系的描述 我缺少什么 编辑 例如 http
  • C++ Irrlicht 程序未链接:“未定义对‘__imp_createDevice’的引用”

    我的 Irrlicht 程序无法链接 我使用的编译器是g Code include
  • 使用 Scipy/Numpy 在浊点的二维插值中仅获取“有效”点

    我有一个通过人的背部摄影测量获得的浊点 我正在尝试对其进行插值以获得规则网格 为此我正在使用scipy interpolate到目前为止取得了良好的成果 问题是 我正在使用的函数 scipy interpolate griddata 使用平
  • GL_CULL_FACE使所有对象消失

    我正在尝试在 openGL3 3 中创建一些简单的多边形 我有两种类型的对象 具有以下属性 对象 1 10 个顶点 按顺序在下面列出 存储在GL ARRAY BUFFER并使用GL TRIANGLE FAN v x y z w v 0 0
  • 使用文件 API 将资源加载到 Three.js 中

    我想创建导入 3D 模型以在浏览器中查看的功能 方法是使用File API http www html5rocks com en tutorials file dndfiles Three js 加载器在我托管的文件上运行良好 我的理解是加
  • 简单模式7公式/例子?

    我最近发现了利用 SNES 模式 7 的伪 3D 效果 并想尝试在 Godot 引擎中复制它 我尝试在网上查找 但所有内容要么以我无法理解的方式解释 要么以我不知道的编程语言解释 我还需要学习如何旋转该区域 并将精灵作为角色或敌人放入 但我
  • XNA中窗口系统的渲染策略(RenderTarget性能)

    我目前正在从头开始为 XNA 游戏创建一个窗口系统 我主要针对 Windows 进行开发 但谁知道我将来可能支持哪些平台 如果您知道本机 Direct3D 的这一点 请随意回答 因为性能语义应该类似 如果可能 请考虑如果目标平台是 X Bo
  • 3D 空间中两个盒子之间的交集

    我想为我的图形引擎实现一个碰撞检测系统 我不知道这是否是常见的方法 但我的想法是将任何实体对象 如网格或相机 绑定在 3D 盒子内 这会给我比球体更准确的结果 这个盒子由八个顶点定义 x0 min vertices x off parsin
  • 如何使用 matplotlib 将 3d 数据单位转换为显示单位?

    这可能有点疯狂 但我正在尝试使用 matplotlib v1 1 0 创建 3d 散点图的可点击图像图 我已经阅读了如何对二维图进行操作 参见这个博客 http hackmap blogspot com 2008 06 pylab matp
  • 3D 透视投影的剪辑矩阵

    我正在尝试创建一个简单的 3D 图形引擎 并找到并使用了我在这里找到的方程 http en wikipedia org wiki 3D projection cite note 0 http en wikipedia org wiki 3D
  • 在 libgdx 中批处理多维数据集时出现问题

    我正在尝试开发一款游戏 在屏幕上渲染多达 300 个立方体 为每个多维数据集创建新的 modelInstance 时 modelBatch 的性能非常糟糕 据我所知 没有 3d 批处理可以将所有立方体批处理到一次绘制调用 所以我拼命地尝试以
  • Godot 3d 得到向前矢量

    我想知道是否有办法获取 godot 3d 中空间节点的前向向量 统一起来 这就是transform forward Godot 给了我一个旋转向量 但我不知道如何将其转换为方向向量 戈多版本的transform forward是什么 前进是
  • 计算任意网格的平面 UV 坐标

    我有从二维形状生成三角形网格的代码 因为在大多数情况下 这些形状在表面上的顶点分布不均匀 所以我在生成 UV 时遇到了问题 这样就不会导致纹理扭曲 任何人都可以推荐一些讨论平面网格上 UV 计算技术的文章 书籍 代码示例吗 谢谢 好的 让我
  • 在 matlab 中求 3d 峰的体积

    现在我有一个带有峰值的 3D 散点图 我需要找到其体积 我的数据来自图像 因此 x 和 y 值表示 xy 平面上的像素位置 z 值是每个像素的像素值 这是我的散点图 scatter3 x y z 20 z filled 我试图找到数据峰值的
  • 使用纽厄尔方法在 Python 中计算表面法线

    我正在尝试实现 Newell 方法来计算 Python 中的表面法向量 基于以下伪代码here https www opengl org wiki Calculating a Surface Normal Begin Function Ca
  • 从相机视图中拖动锁定在一定距离/半径处的对象

    我在场景中心有一个相机 距离相机 z 400 处有 1 个球体 其父级位于中心 我想从视图中向上 向下 向左 向右拖动球体 但同时不改变它相对于中心的 z 位置 我最终使用了另一个球体并使其不可见 添加side THREE DoubleSi
  • 透视变换矩阵的计算

    给定 3D 空间中的一个点 如何计算齐次坐标中的矩阵 将该点投影到平面上z d 其中原点是投影中心 好吧 让我们尝试解决这个问题 扩展伊曼纽尔的答案 Assuming如果您的视图向量直接沿着 Z 轴 则所有尺寸都必须按视图平面距离的比例进行

随机推荐

  • 如何轻松玩转Rust语言

    Rust是由Mozilla主导开发的通用 编译型编程语言 设计准则为 安全 并发 实用 支持函数式 并发式 过程式以及面向对象的编程风格 本期Meetup由FISCO BCOS核心开发者李陈希给大家分享如何轻松玩转Rust语言 围绕Rust
  • DVWA失效的访问控制

    失效的访问控制 可以认为是系统对一些功能进行了访问或权限限制 但因为种种原因 限制并没有生效 造成失效的访问控制漏洞 比如越权等 这里以DVWA为例 先访问低难度的命令执行并抓包 删除cookie 并在请求头添加路径 dv vulnerab
  • 在使用win10 cmd的时候python报错:python不是内部或外部指令,也不是可运行的程序或批处理文件

    今天想用cmd运行python脚本 但是弹出了python不是内部或外部指令 也不是可运行的程序 解决方法如下 右键我的电脑 属性 高级 环境变量 path 双击path 新建 在下面的框中把python路径填进去 下面来说找路径 win1
  • 【Typora】设置图片保存相对路径

    当使用Typor编写markdown文件时 如果拷贝到其他地方 经常会图片丢失 为了解决这个问题 我使用了图片相对路径设置 文件 gt 偏好设置 找到 图片插入 设置之后保存Typora 文件路径如下 这样就不怕找不到图片啦
  • 【GD32】从0开始学GD32单片机(12)—— TIMER高级定时器详解+DMA修改PWM波占空比例程

    目录 简介 重复计数器 互补模式和死区插入 中止模式 霍尔传感器接口功能 DMA模式 例程 简介 上两篇介绍了基本定时器和通用定时器 下面是文章的链接 TIMER基本定时器详解 1毫秒延时例程 TIMER通用定时器详解 PWM波形输出捕获例
  • Python如何优雅地可视化目标检测框

    1 引言 随着计算机视觉算法工程师的内卷 从事目标检测的小伙伴们越来越多了 很多时候我们费了九牛二虎之力训练了一版模型 可是可视化出来的效果平淡无奇 是不是有点太不给力啦 作为计算机视觉工程师 我们是不是应该关注下如何优雅地可视化我们模型地
  • 漫谈 ChatGPT 与问答式 BI

    近日 观远数据G park Let s Date BI 系列直播第二期 2023 金融业如何应对 流浪数据 顺利落幕 观远数据联合创始人兼首席数据科学家字节带来了 漫谈 ChatGPT 与问答式 BI 的探索思考 字节一方面介绍了一系列 C
  • IDEA这样配置,好用到爆炸

    1 idea 简介 IDEA 全称 IntelliJ IDEA 是 JetBrains 公司 使用 java 编程语言开发的集成环境 这家公司总部位于捷克共和国的首都布拉格 公司旗下还有其它产品 例如 WebStorm PyCharm Ph
  • secureCRT连接,密码是正确的却提示密码错误

    最近用securecrt连接kali 输入的密码绝对是正确的却提醒密码错误 发现是密码认证默认出了问题 解决方法 1 进入配置文件 2 改为允许以root进行登录 把permitrootligin 后改为yes 把最前面的 删掉 3 将密码
  • 2023 年 Pycharm 最新下载安装教程,亲测可用,持续更新

    前言 PyCharm 是一款功能强大的 Python 编辑器 具有跨平台性 鉴于目前最新版 PyCharm 使用教程较少 为了节约时间 来介绍一下 PyCharm 在 Windows下是如何安装的 这是 PyCharm 的下载地址 http
  • 华为机试---字符串运用-密码截取

    题目描述 Catcher是MCA国的情报员 他工作时发现敌国会用一些对称的密码进行通信 比如像这些ABBA ABA A 123321 但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解 比如进行下列变化 ABBA gt 12ABB
  • Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks 中文翻译

    Social GAN Socially Acceptable Trajectories with Generative Adversarial Networks 中文翻译 如有异议 请多指教 非专业人员 仅供参考 摘要 理解人类的运动行为对
  • 【C++习题笔记】谭浩强C++程序设计(第三版)第七章

    本文是谭浩强老师c 程序设计 第三版 第七章的习题总结 主要涉及结构体的内容 1 定义一个结构体变量 包括年 月 日 编写程序 要求输入年月日 程序能够计算并输出改日是本年中的第几天 注意闰年问题 include
  • 《30天自制操作系统》笔记(02)——导入C语言

    30天自制操作系统 笔记 02 导入C语言 进度回顾 在上一篇 记录了计算机开机时加载IPL程序 initial program loader 一个nas汇编程序 的情况 包括IPL代码 helloos nas 编译生成helloos im
  • C++学习(七十五)有关Orekit

    Orekit ORbits Extrapolation KIT 是一款占用空间少的低层空间动力学 Java 库 它提供基础的元素 比如轨道 日期 属性和框架 和多种算法支持转换 分析和数值传递 Orekit 是纯 Java 库 运行时只依赖
  • 《C++11标准库》4.3.1标准的 Exception Class(异常类)

    所有被语言本身或标准库抛出的异常 都派生自基类 exception 定义于
  • 北大肖臻老师<<区块链技术>>笔记1

    课程的大纲 密码学基础 比特币的数据结构 共识协议和系统实现 挖矿算法和难度调整 比特币的脚本 软分叉和硬分叉 匿名和隐私保护 以太坊是后面的 首先是密码学基础的学习 crypto currency 虚拟货币 是不加密的 区块链上所有的教以
  • Cesium-terrain-builder(CTB)在Centos7中安装并生成地形数据

    Cesium terrain builder CTB 在Centos7中安装并生成地形数据 前言 步骤 安装docker 下载镜像并创建容器 生成地形数据 总结 前言 1 使用docker镜像 homme cesium terrain bu
  • linux运行appimage,技术

    你有没有下载过 AppImage 文件 而你不知道如何使用它 或许你可能知道如何使用它 但是你每次要运行它时必须要进入到下载了该 AppImage 的文件夹中来运行它 或者手动为其创建启动程序 使用 AppImageLauncher 这些就
  • 基于Open3D的点云处理5-点云之间的距离计算

    计算在一片点云中的每一个点在另一片点云中最近点的距离 常规写法 通过k d Tree进行搜索每个点的最近点 k idx dist k dTree search knn vector 3d pc2 points i k 通过k d Tree进