Open3D将聚类结果显示或者保存

将聚类结果按大小排序,并取出最大的4个结果 

import time
import open3d as o3d;
import numpy as np;
import matplotlib.pyplot as plt#坐标
mesh_coord_frame = o3d.geometry.TriangleMesh.create_coordinate_frame(size=355, origin=[0, 0, 0])
#mesh_coord_frame = mesh_coord_frame.translate((0.16, 0.15, 0)) #加载点云数据
ply = o3d.io.read_point_cloud("source/Foam1.ply") # downply = ply.voxel_down_sample(voxel_size=0.103)
# o3d.visualization.draw_geometries([ downply],window_name="downply") #去除无效部分
plane_model, inliers = ply.segment_plane(distance_threshold=1.6,ransac_n=3,num_iterations=1000)[a, b, c, d] = plane_model
print(f"Plane equation: {a:.2f}x + {b:.2f}y + {c:.2f}z + {d:.2f} = 0")inlier_cloud = ply.select_by_index(inliers) pcd = ply.select_by_index(inliers, invert=True) 
o3d.visualization.draw_geometries([ inlier_cloud],window_name="3D海绵点云无效数据") 
o3d.visualization.draw_geometries([ pcd],window_name="3D海绵点云有效数据") # 使用聚类算法
with o3d.utility.VerbosityContextManager(o3d.utility.VerbosityLevel.Debug) as cm:labels = np.array(pcd.cluster_dbscan(eps=3.3, min_points=1, print_progress=True))print(labels)
# 求点云的聚类数量
max_label = labels.max()
print(f"point cloud has {max_label + 1} clusters")
# 可视化
colors = plt.get_cmap("tab20")(labels / (max_label if max_label > 0 else 1))
colors[labels < 0] = 0
pcd.colors = o3d.utility.Vector3dVector(colors[:, :3])
o3d.visualization.draw_geometries([ pcd,mesh_coord_frame],window_name="3D海绵聚类") # Get the unique labels
unique_labels = np.unique(labels)# Create a dictionary to store the cluster sizes
cluster_sizes = {}
for label in unique_labels:cluster_sizes[label] = np.count_nonzero(labels == label)# Sort the dictionary by cluster size 排序取出最大的四个聚类结果
sorted_cluster_sizes = dict(sorted(cluster_sizes.items(), key=lambda item: item[1], reverse=True)[:4]
)# Save the clustering results for each cluster in sorted order
for label, size in sorted_cluster_sizes.items():cluster_pcd = pcd.select_by_index(np.where(labels == label)[0])o3d.visualization.draw_geometries([ cluster_pcd,mesh_coord_frame],window_name="3D海绵聚类结果{}".format(size)) # o3d.io.write_point_cloud(#     "path/to/clustered_point_cloud_{}.pcd".format(label), cluster_pcd# )# # Save the clustering results for each cluster in a specific format# o3d.io.write_point_cloud_ply(#     "path/to/clustered_point_cloud_{}.ply".format(label), cluster_pcd# )

聚类结果

最大的面积 结果

第二大面积结果

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

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

相关文章

电极箔,预计到2025年市场规模将达到35亿美元

电极箔是一种关键性材料&#xff0c;广泛应用于太阳能电池、电动汽车电池、储能电池、5G基站电池等领域。随着新能源产业的迅猛发展&#xff0c;电极箔市场也在逐步壮大。下面将从全球市场和中国市场进行分析其发展趋势。全球市场分析&#xff1a; 在全球范围内&#xff0c;随着…

大创项目推荐 深度学习卷积神经网络的花卉识别

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基…

nodejs发送消息给钉钉机器人

1.钉钉添加机器人 1.1 新建一个群 --> 群设置 --> 机器人 1.2 机器人管理 --> 添加机器人 1.3 机器人--> 自定义-->添加 1.4 配置信息 备注1&#xff1a;密钥复制出来SEC2c689174c4a8ed49c8a7309a490cd98e0e7f7bc788bb7232d53c738eb5f5d008 备注2&#xff1a;…

python的初识(print+intput函数和变量的基本运用)

#主页传送&#xff1a;江南的江 #每日鸡汤&#xff1a;你要知是非以不辩为解脱&#xff0c;烦恼以忍辱为智慧&#xff0c;办事以尽力为有功&#xff0c;处人以真诚为品格。做人的方略是&#xff1a;把好自己的口&#xff0c;明了心中的事&#xff0c;干好手里的活&#xff0c;走…

使用vite构建Vue3项目

1、安装vite npm init vitelatest npm构建vite项目 yarn create vite yarn构建vite项目2、依次需要配置项目名 、框架选择、原生和ts版本的选择 r enter 重新开始服务 o enter 快速打开浏览器3、项目启动效果

嵌入式Linux之MX6ULL裸机开发学习笔记(IMX启动方式-启动设备的选择)

一,硬件启动方式选择 1.启动方式的选择 6ull支持多种启动方式。 比如可以从 SD/EMMC、 NAND Flash、 QSPI Flash等启动。 6ull是怎么支持多种外置flash启动程序的。 1.启动方式选择&#xff1a; BOOT_MODE0 and BOOT_MODE1&#xff0c;这两个是两个IO来控制的&#xff0c;…

STM32F407-14.3.10-表73具有有断路功能的互补通道OCx和OCxN的输出控制位-01x10

如上表所示&#xff0c;MOE0&#xff0c;OSSI1&#xff0c;CCxE1&#xff0c;CCxNE0时&#xff0c;如下框图OISx与CCxP异或&#xff0c;OISxN与CC1NP异或&#xff0c;然后相与后决定 OCx与OCxN的输出是否相对于OISx与OISxN取反。&#xff08;异或门参考逻辑门符号-CSDN博客&a…

GT304L电容式4键触摸芯片-超强抗干扰、低功耗

由工采网代理的GT304L是韩国Greenchip&#xff08;绿芯&#xff09;推出的一款4通道电容触摸芯片&#xff0c;提供4个触摸输入端口及4个直接输出端口&#xff1b;具备低功耗、超强抗干扰能力、灵敏度调节、自动校准能力、高可靠性、快速唤醒模式等优点&#xff1b;为用户提供了…

算法——BFS解决FloodFill算法

什么是FloodFill算法 中文&#xff1a;洪水灌溉。假设这一块4*4的方格是一块土地&#xff0c;有凸起的地方&#xff0c;也有凹陷的地方&#xff08;凹陷的地方用负数表示&#xff09;。此时下大雨发洪水&#xff0c;会把凹陷的地方填满。绿色圈起来的属于一块区域&#xff08;…

Android studio环境配置

1.搜索android studio下载 Android Studio - Download 2.安装 3.配置环境 配置gradle&#xff0c;gradle参考网络配置。最后根据项目需求选择不同的jdk。

python面试pytorch面试

python面试 python中啥类型是不可更改的&#xff0c;啥类型是可以更改的 为什么Python执行速度慢&#xff0c;我们如何改进它&#xff1f; 自己总结&#xff1a; 1c语言属于编译型语言&#xff1a; 它的代码经过编译后再运行&#xff0c;执行速度快&#xff1b;不能跨平台&am…

室内效果图没有质感?外国大神这6个实用技巧,带你轻松掌握!

为了创作出高级有质感的效果图&#xff0c;我们需要注意构图、颜色、布光等多种因素&#xff0c;以打造出逼真的渲染效果。不过不要担心&#xff01;今天小编带来了国外知名设计师Arch Viz Artist在油管上分享的6个实用小技巧。看完带你轻松提升室内效果图的表现力&#xff01;…