open3d 连接两个点云

连接两个点云

      • 一、连接两个点云
      • 二、代码
      • 三、结果
          • 1.coloud1点云
          • 2.cloud2点云
          • 3.cloud1 和 colud2 合并
          • 4.生成连接字段(拼接颜色)
      • 四、相关链接
      • 五、问题与解决方案
          • 1.问题
          • 2.解决方案

一、连接两个点云

看代码吧。。。

二、代码

import numpy as np
import open3d as o3dif __name__ == '__main__':# 加载点云size_a, size_b = 100, 70  # 设置生成数目的大小a = np.random.ranf(size_a * 3).reshape(-1, 3)  # 生成一个大小为size_a*3的一维数组,然后使用reshape函数将其重新排列为一个二维数组cloud1 = o3d.geometry.PointCloud()  # 使用numpy生成点云cloud1.points = o3d.utility.Vector3dVector(a)  # points numpy数组# 转换为点云格式b = np.random.ranf(size_b * 3).reshape(-1, 3)  # 生成一个大小为size_b*3的一维数组,然后使用reshape函数将其重新排列为一个二维数组cloud2 = o3d.geometry.PointCloud()  # 使用numpy生成点云cloud2.points = o3d.utility.Vector3dVector(b + 1)  # points numpy数组 # 将2维数组的xyz轴都进行+1# 连接点cloud = cloud2 + cloud1# 连接字段 pclpy似乎没有实现pcl::concatenateFields,这里使用Numpy进行拼接a_n = np.random.ranf(size_a * 4).reshape(-1, 4)  # 随机生成一点法线d = np.hstack((a, a_n))  # 拼接字段# 拼接法线效果cloud_dn = o3d.geometry.PointCloud()  # 使用numpy生成点云# 提取了前三列作为点的坐标,并将其设置为PointCloud对象的坐标,提取了后三列作为法线,并将其设置为PointCloud对象的法线。cloud_dn.points = o3d.utility.Vector3dVector(d[:, :3])  # 提取点的坐标并设置为点云对象的坐标cloud_dn.normals = o3d.utility.Vector3dVector(d[:, 4:])  # 提取法向量并设置为点云对象的法向量# 上面的拼接法线效果不是很明显,试试拼接颜色a_c = np.random.ranf(size_a * 3).reshape(-1, 3) * 255  # 随机生成颜色cloud_dc = o3d.geometry.PointCloud()  # 拼接颜色cloud_dc.points = o3d.utility.Vector3dVector(a_c)  # 拼接颜色# 可视化o3d.visualization.draw_geometries([cloud_dn])

三、结果

1.coloud1点云

在这里插入图片描述

2.cloud2点云

在这里插入图片描述

3.cloud1 和 colud2 合并

在这里插入图片描述

4.生成连接字段(拼接颜色)

在这里插入图片描述

四、相关链接

没有。。。可以看看专栏,有什么需要补充的@我

五、问题与解决方案

1.问题

numpy版本不对但numpy下载不了

在这里插入图片描述

2.解决方案

前往D:\Anaconda\envs\open3d(自己命名的虚拟环境)\Lib\site-packages 删除numpy并重新安装合适的版本即可。。。

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

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

相关文章

数据结构-二叉树深度详解(附带源码)

目录 一、基本概念: 二、实现二叉树的数据结构: 三、二叉树性质: 四、相关计算 五、搜索二叉树:任何一颗树的左子树都比它小,右子树都比它大 六、二叉树的存储结构 七、二叉树基本操作 八、源码(有需…

使用pytest和allure框架实现自动化测试报告优化

pytest: 需要安装pytest和pytest-html(生成html测试报告) pip install pytest 和 pip install pytest-html 命名规则 Pytest单元测试中的类名和方法名必须是以test开头,执行中只能找到test开头的类和方法,比unittest更加严谨 unittest&#x…

【centos】【vsftpd】FTP本地用户登录配置

目录 ftp与sftp安装vsftpd和ftp本地用户登录-不限制访问目录本地用户登录-限制访问目录有可能影响连接的问题pam认证selinux策略被动模式防火墙ipv4和ipv6 报错1、 530 Login incorrect2、500 OOPS: vsftpd: refusing to run with writable root inside chroot()3、227 Enterin…

day41WEB 攻防-通用漏洞XMLXXE无回显DTD 实体伪协议代码审计

本章知识点: 1 、 XML&XXE- 原理 & 发现 & 利用 & 修复等 2 、 XML&XXE- 黑盒模式下的发现与利用 3 、 XML&XXE- 白盒模式下的审计与利用 4 、 XML&XXE- 无回显 & 伪协议 & 产生层面 配套资源(百度网盘&#x…

飞天使-linux操作的一些技巧与知识点7-devops

文章目录 简述devopsCICD 简述devops 让技术团队,运维,测试等团队实现一体式流程自动化 进阶版图 CICD 持续集成, 从编译,测试,发布的完成自动化流程 持续交付,包含持续集成,并且将项目部署…

代码随想录Day60 | 647. 回文子串 647. 回文子串

代码随想录Day60 | 647. 回文子串 647. 回文子串 647.回文子串516.最长回文子序列 647.回文子串 文档讲解:代码随想录 视频讲解: 动态规划,字符串性质决定了DP数组的定义 | LeetCode:647.回文子串 状态 dp数组 dp[i][j] 表示字符串…

有哪些适合程序员做的副业?

如果你经常玩知乎、看公众号(软件、工具、互联网这几类的)你就会发现,好多资源连接都变成了夸克网盘、迅雷网盘的资源链接。 例如:天涯神贴,基本上全是夸克、UC、迅雷网盘的资源链接。 有资源的前提下,迅雷…

泛微e-office系统敏感信息泄露漏洞

声明 本文仅用于技术交流,请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任 1、系统简介 泛微e-office系统是标准、易用、快速部署上线的专业协同OA软…

01VScode开发stm32环境搭建

title: VScode开发stm32环境搭建 tags: STM32vscode 1.准备工作 1.下载并安装VSCODE 在百度上搜索vscode记住一定要是官方的 不然你自己就是在给自己下毒2345全来了 打红圈一定要有不然就是在垃圾网站上下的 VSCode下载链接 选一个适合你的      安装正常流程走就行不再…

入侵检测系统的设计与实现

入侵检测系统(Intrusion Detection System,简称IDS)是一种能够监视网络或计算机系统活动的安全工具,旨在识别并响应可能的恶意行为或安全事件。这些事件可能包括未经授权的访问、恶意软件、拒绝服务攻击等。入侵检测系统通过不同的…

高并发Server的基石:reactor反应堆模式

业务开发同学只关心业务处理流程。但是我们开发的程序都是运行服务端server上,服务端server接收到IO请求后,是如何处理请求并最终进入业务流程的呢?这里不得不提到reactor反应堆模型。nginx tomcat redis nodejs dubbo等软件的网络处理模型都…

SwiftUI 支持拖放功能的集合视图(Grid)如何捕获手指按下并抬起这一操作

功能需求 假设我们开发了一款 SwiftUI 应用,其中用户可以通过拖放 Grid 中的 Cell 来完成一些操作。现在,我们希望用户在某个 Cell 被按下并随后抬起手指时得到通知,这能够实现吗? 如上图所示,我们准确地捕获到了手指在 Grid 的 Cell 上按下再抬起这一操作!那么它是如何…

Linux之ACL访问控制列表

一、ACL权限的介绍 1.1 什么是ACL 访问控制列表(ACL)是一种网络安全技术,它通过在网络设备(如路由器、交换机和防火墙)上定义一系列规则,对进出接口的数据包进行控制。这些规则可以包含“允许”&…

123 Linux C++ 系统编程2 Linux 上安装卸载程序三种方法,linux 下解压缩命令 tar介绍。kill命令,top命令,umask 命令

一 通过命令和网络直接安装 sudo apt-get update sudo apt-get update 的工作就是将自己本地 ubutun的软件列表和 aliyun 的软件列表对比,如不一样,则更新。 sudo apt-get install 软件名 真正的安装 那么这里就有一个问题了, 怎么从aliy…

【初始RabbitMQ】死信队列的实现

死信的概念 死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer 将消息投递到 broker 或者直接到 queue 里了,consumer 从 queue 取出消息 进行消费,但某些时候由于特定的原因导致…

认识HarmonyOS

1.认识HarmonyOS 1.1.HarmonyOS简介 在中美贸易战的刺激下,国产操作系统HarmonyOS(鸿蒙操作系统)开始进入到大众的视野。 鸿蒙寓意为“万物起源”,发展至今已经经过了好几个迭代版本。 1.1.1.早期鸿蒙雏形 LiteOS 2015 年 5 月 …

STM32F103x 的时钟源

AHB (Advanced High-performance Bus) 高速总线,用来接高速外设的。 APB (Advanced Peripheral Bus) 低速总线,用来接低速外设的,包含APB1 和 APB2。 APB1:上面连接的是低速外设,包括电源接口、备份接口、 CAN 、 US…

【Linux网络】网络编程套接字(TCP)

目录 地址转换函数 字符串IP转整数IP 整数IP转字符串IP 关于inet_ntoa 简单的单执行流TCP网络程序 TCP socket API 详解及封装TCP socket 服务端创建套接字 服务端绑定 服务端监听 服务端获取连接 服务端处理请求 客户端创建套接字 客户端连接服务器 客户端…

QT-串口工具

一、演示效果 二、关键程序 &#xff1a; #include "mainwindow.h" #include "ui_mainwindow.h"#include <QMessageBox>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow),listPlugins(QList<TabPluginInt…

动态规划--持续更新篇

将数字变成0的操作次数 1.题目 2.思路 在numberOfSteps函数中&#xff0c;首先设置f[0]为0&#xff0c;因为0已经是0了&#xff0c;不需要任何步骤。然后&#xff0c;使用一个for循环从1迭代到输入的整数num。对于每个整数i&#xff0c;如果i是奇数&#xff0c;则将f[i]设置为…