Open3D 点云Kmeans聚类算法

目录

一、概述

1.1算法介绍

1.2实现步骤

二、代码实现

三、实现效果

3.1原始点云

3.2聚类后点云


前期试读,后续会将博客加入该专栏,欢迎订阅
Open3D与点云深度学习的应用_白葵新的博客-CSDN博客

一、概述

1.1算法介绍

        聚类是一种将数据集分组的方法,使得同一组内的数据点相似度较高,而不同组间的数据点相似度较低。K-means 聚类算法是一种经典的无监督学习算法,具有计算简单、收敛速度快等优点,被广泛应用于图像分割、市场细分、模式识别等领域。

1.2实现步骤

        K-means 聚类算法的核心思想是通过迭代优化,将数据集分成 K 个簇,使得每个簇内的数据点与簇中心(质心)之间的距离平方和最小。具体步骤如下:

  1. 初始质心选择:随机选择 K 个数据点作为初始质心。
  2. 分配数据点:计算每个数据点与所有质心的欧氏距离,将每个数据点分配给最近的质心所在的簇。
  3. 更新质心:重新计算每个簇的质心,即簇内所有数据点的平均值。
  4. 重复步骤 2 和 3:不断重复数据点分配和质心更新的过程,直到质心不再发生变化或达到预定的最大迭代次数。
  5. 终止条件:算法在质心不再变化或达到最大迭代次数时终止。

二、代码实现

import open3d as o3d
import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt# 读取点云
pcd = o3d.io.read_point_cloud("chairs.pcd")
# 可视化结果-原始点云
o3d.visualization.draw_geometries([pcd])# 将点云转换为 numpy 数组
points = np.asarray(pcd.points)# 设置 K-means 聚类的参数
k = 10  # 聚类的个数# 执行 K-means 聚类,显式设置 n_init 参数
kmeans = KMeans(n_clusters=k, n_init=k)
#使用 fit_predict 方法对点云数据进行聚类,得到每个点的聚类标签
labels = kmeans.fit_predict(points)# 为每个聚类分配一个颜色
#使用 Matplotlib 的颜色映射为每个聚类分配不同的颜色,并将颜色应用于点云数据。
colors = plt.get_cmap("tab20")(labels / (k - 1 if k > 1 else 1))
pcd.colors = o3d.utility.Vector3dVector(colors[:, :3])# 可视化结果
o3d.visualization.draw_geometries([pcd])

三、实现效果

3.1原始点云

3.2聚类后点云

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

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

相关文章

Next.js的静态生成和服务端渲染,你搞懂了吗?

Next.js的静态生成和服务端渲染,你搞懂了吗? 嘿,各位前端小伙伴们!今天咱们来聊聊Next.js中那令人又爱又恨的静态生成(Static Generation)和服务端渲染(Server-side Rendering)。这…

双语|如何给教授/教职员发送电子邮件

斯坦福大学提出建议,指导学生如何给教授或者教职员发送电子邮件,这些建议对于访问学者、博士后及联合培养博士也很适用,故知识人网小编用双语对照的形式进行节选转发。 Whether youre writing a professor to ask for an extension or to loo…

多平台支持,制作的电子画册随时随地都可以查看

​在数字化的时代背景下,电子画册以其便捷的传播方式、丰富的视觉表现形式,赢得了大众的喜爱。它不仅能够在个人电脑上展现,还能通过智能手机、平板电脑等多种移动设备随时随地被访问和浏览。这种跨平台的支持,使得无论你身处何地…

高精度定位与AI技术的深度融合——未来智慧世界的钥匙

引言在当今迅速发展的科技时代,精确定位和人工智能(AI)技术正在快速推动各领域的创新与变革。高精度定位结合AI技术所产生的融合效应,正在加速智慧城市、智能驾驶、智能物流以及许多其他领域的实现。这篇文章将详细探讨高精度定位…

基于Java技术的校园台球厅人员与设备管理系统

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:SpringBoot框架 工具:Eclipse、Navicat、Maven 系统展示 首页 用户注册界面 球桌信息…

C++基础编程100题-023 OpenJudge-1.4-03 奇偶数判断

更多资源请关注纽扣编程微信公众号 http://noi.openjudge.cn/ch0104/03/ 描述 给定一个整数,判断该数是奇数还是偶数。 输入 输入仅一行,一个大于零的正整数n。 输出 输出仅一行,如果n是奇数,输出odd;如果n是偶…

Twelve Labs:专注视频理解,像人类一样理解视频内容

在当今数字化世界中,视频已成为人们获取信息和娱乐的主要方式之一。 AI视频生成领域的竞争也很激烈,Pika、Sora、Luma AI以及国内的可灵等,多模态、视频生成甚至也被视为大模型发展的某种必经之路。然而,与文本生成相比&#xff…

深入解析发生 OOM 的三大场景

深入解析 OOM 的三大场景 什么是 OOM?一、堆内存溢出 ( Heap OOM )原因分析解决方案 二、栈内存溢出(Stack OOM)原因分析解决方案 三、方法区内存溢出(Metaspace OOM)原因分析解决方案 在Java应用程序开发中&#xff0…

记录一次Nginx的使用过程

一、Docker安装配置nginx 1.拉取镜像 docker pull nginx2.创建挂载目录 启动前需要先创建Nginx外部挂载目录文件夹 主要有三个目录 conf:配置文件目录log:日志文件目录html:项目文件目录(这里可以存放web文件) 创建挂…

oslo_i18n学习小结

背景 代码均为开源代码 基于yoga版本,需要对openstack某服务做翻译,了解到oslo_i18n有翻译功能,配置oslo_i18n来给组件进行翻译 用法 用法 每个服务自己会带一个i18n.py的文件,如果要对日志进行翻译,从i18n导入_&…

逆变-TI视频课笔记

目录 1、全桥逆变 1.1、全桥逆变SPWM仿真 2、半桥逆变 2.1、本课小结 3、多重逆变(间接的“交-直-交-直”变流) 3.1、多电平逆变的目的 3.2、单逆变桥 3 电平控制时序 3.3、大功率设备的功率因数 3.4、本课小结 视频链接:文字…

Zed 编辑器发布了原生 Linux 版本

由 Rust 编写、GPU 加速的 Zed 文本编辑器终于提供了正式的 Linux 原生版本!在过去的几个月里,Zed 的 Linux 支持取得了长足的进步,现在已经进入了更正式的阶段。 今天,这款由前 Atom 开发人员创建的现代开源代码编辑器现在在 Li…

vue vite+three在线编辑模型导入导出

文章目录 序一、1.0.0版本1.新增2.编辑3.导出4.导入 二、2.0.0版本1. 修复模型垂直方向放置时 模型会重合4. 修复了导出导入功能 现在是1:1导出导入5. 新增一个地面 视角看不到地下 设置了禁止编辑地面 地面设置为圆形6. 新增功能 可选择基本圆形 方形 圆柱形等模型以及可放置自…

网络 闲聊

闲谈 闲话 网络安全——>网络空间安全 网络空间:一个由信息基础设备组成互相依赖的网络 继:海、陆、空、天、的第五大空间 信息安全的一个发展: 通信保密阶段---计算机安全---信息系统安全---网络空间安全 棱镜门事件 棱镜计划&…

Java中的Set系列集合超详解

Set List是有序集合的根接口,Set是无序集合的根接口,无序也就意味着元素不重复。更严格地说,Set集合不包含一对元素e1和e2 ,使得e1.equals(e2) ,并且最多一个空元素。   使用Set存储的特点与List相反:元素…

腾讯云如何设置二级域名?

什么是二级域名? 例如我已申请的域名为: test.com //顶级域名 现在我开发的应用要部署到二级域名: blog.test.com 1、打开腾讯云控制台的我的域名,然后点击解析 2、在我的解析页面点击添加记录,然后需注意红色方框处…

生物素标记的柚皮苷探针;Biotin-Naringin

生物素标记的柚皮苷探针(Biotin-Naringin)是一种结合了生物素(Biotin)和柚皮苷(Naringin)特性的化合物,它在有机合成及药物化学技术领域具有重要意义。以下是对该探针的详细解析: 一…

秋招Java后端开发冲刺——Mybatis

一、基本知识 1. 介绍 MyBatis 是 Apache 的一个开源项目,它封装了 JDBC,使开发者只需要关注 SQL 语句本身,而不需要再进行繁琐的 JDBC 编码。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java POJO(Plain …

Everything搜索无法搜索到桌面的文件(无法检索C盘 或 特定路径的文件)

现象描述 在Everything搜索框中输入桌面已存在的文件或随便已知位置的文件,无法找到。 搜索时检索结果中明显缺少部分磁盘位置的,例如无法检索C盘,任意关键字搜索时结果中没有位于C盘的,无论怎样都搜不到C盘文件。 解决方法 在…

图像识别和目标检测在超市电子秤上的应用

目录 前言深度学习的目标检测图像识别技术视觉秤的优势其他应用场景中的技术应用未来展望 前言 随着科技的不断发展,电子秤在生鲜超市中的应用也在不断升级。传统的电子秤需要打秤人员手动输入秤码,这不仅耗时费力,还需要大量的培训以记住各…