matlab 点云采样相关操作-源码复制粘贴即可

news2025/1/11 8:05:00

1.随机采样=一个百分点的随机抽样

clc; clear; close all; % clear everything

% Import point cloud
pc = pointCloud('Lion.xyz');

% Plot all points
pc.plot; % points are colored by z coordinate
title('All Points', 'Color', 'w'); view(0,0); snapnow;

% Select randomly 5 percent of all points
pc.select('RandomSampling', 5);

% Plot only selected points
close; pc.plot;
title('After selection strategy ''RandomSampling''', 'Color', 'w'); view(0,0);

 

 2.间隔采样=根据X中点的顺序选择每n个点

clc; clear; close all; % clear everything

% Import point cloud
pc = pointCloud('Lion.xyz');

% Plot all points
pc.plot;
title('All Points', 'Color', 'w'); view(0,0); snapnow;

% Select each 50-th point
pc.select('IntervalSampling', 50);

% Plot only selected points
close; pc.plot;
title('After selection strategy ''IntervalSampling''', 'Color', 'w'); view(0,0);

3. 均匀采样=对空间中的点进行均匀采样

clc; clear; close all; % clear everything

% Import point cloud
pc = pointCloud('Lion.xyz');

% Plot all points
pc.plot;
title('All Points', 'Color', 'w'); view(0,0); snapnow;

% Select points using a voxelSize of 3
pc.select('UniformSampling', 3);

% Plot only selected points
close; pc.plot;
title('After selection strategy ''UniformSampling''', 'Color', 'w'); view(0,0);

 4.最大杠杆抽样=根据他们的“杠杆”选择点

clc; clear; close all; % clear everything

% Import point cloud
pc = pointCloud('Lion.xyz');

% Plot all points
pc.plot;
title('All Points', 'Color', 'w'); view(0,0); snapnow;

% First, let's select a subset of points with the UniformSampling strategy
pc.select('UniformSampling', 2);

% Calculate the normals of the selected points with a searchRadius of 1
pc.normals(1);

% Now, select 25 percent of the points with the MaxLeverageSampling strategy
pc.select('MaxLeverageSampling', 25);

% Plot only selected points
close; pc.plot('MarkerSize', 5);
title('After selection strategy ''MaxLeverageSampling''', 'Color', 'w'); view(0,0);

 

 5.正态抽样=基于法向量的点选择

clc; clear; close all; % clear everything

% Import point cloud
pc = pointCloud('Lion.xyz');

% Plot all points
pc.plot;
title('All Points', 'Color', 'w'); view(0,0); snapnow;

% First, let's select a subset of points with the UniformSampling strategy
pc.select('UniformSampling', 2);

% Calculate the normals of the selected points with a search radius of 1
pc.normals(1);

% Now, select 25 percent of the points with the NormalSampling strategy
pc.select('NormalSampling', 25);

% Plot only selected points
close; pc.plot('MarkerSize', 5);
title('After selection strategy ''NormalSampling''', 'Color', 'w'); view(0,0);

 

6.属性=基于属性的点选择

The attribute has to be a field of the structure obj.A, e.g. obj.A.roughness.

clc; clear; close all; % clear everything

% Import point cloud WITH attributes (nx, ny, nz are the components of the normal vector)
pc = pointCloud('Lion.xyz', 'Attributes', {'nx' 'ny' 'nz' 'roughness'});

Note: the imported attributes are saved now as fields in the structure pc.A, e.g. the roughness in saved in pc.A.roughness.

% Plot all points
pc.plot('Color', 'A.roughness', 'CAxisLim', [0 1]); % colored by roughness; range of color bar from 0 to 1
title('All Points', 'Color', 'w'); view(0,0); snapnow;

% Select points with roughness in the specified range; in doing so, only the smooth parts of the point cloud are selected
roughnessRange = [0.01 0.3];
pc.select('Attribute', 'roughness', roughnessRange);

% Plot only selected points
close; pc.plot('Color', 'A.roughness', 'CAxisLim', [0 1]);
title('After selection strategy ''Attribute''', 'Color', 'w'); view(0,0);

 7.限制=选择窗口内点的选择

clc; clear; close all; % clear everything

% Import point cloud
pc = pointCloud('Lion.xyz');

% Plot all points
pc.plot;
title('All Points', 'Color', 'w'); view(0,0); snapnow;

% Selection of the lions head
limitsMinMax = [-Inf -10
                 -30  20
                 -10 Inf];

pc.select('Limits', limitsMinMax);

% Plot only selected points
close; pc.plot;
title('After selection strategy ''Limits''', 'Color', 'w'); view(0,0);

 8.InPolygon =选择二维多边形区域内的点

clc; clear; close all; % clear everything

% Import point cloud
pc = pointCloud('Lion.xyz');

% Plot all points
pc.plot;
title('All Points', 'Color', 'w'); view(0,0); snapnow;

% Selection of the lions tail within the specified polygon
polygon = [45  4
           45 -7
           56 -7
           71 -2
           71  4
           63  6];

pc.select('InPolygon', polygon);

% Plot only selected points
close; pc.plot;
title('After selection strategy ''InPolygon''', 'Color', 'w'); view(0,0);

 9.InVoxelHull =选择指定体素hull内部的点

clc; clear; close all; % clear everything

% Import the two point clouds
pcScan1 = pointCloud('LionScan1.xyz');
pcScan2 = pointCloud('LionScan2.xyz');

% Plot them in different colors
pcScan1.plot('Color', 'm'); % magenta
pcScan2.plot('Color', 'y'); % yellow
title('Both point clouds', 'Color', 'w'); view(0,0); snapnow;

% Select points of second point cloud which are inside of the voxel hull of the first point cloud
voxelSize = 2;
pcScan1.getVoxelHull(voxelSize); % get voxel hull of first point cloud

pcScan2.select('InVoxelHull', pcScan1.voxelHull, ...
                              pcScan1.voxelHullVoxelSize);

% Plot only selected points
close; pcScan2.plot('Color', 'y');
title('Only points of yellow pc which are overlapping with magenta pc', 'Color', 'w'); view(0,0);

10 RangeSearch =选择另一个点云范围内的点 

clc; clear; close all; % clear everything

% Import point cloud
pc = pointCloud('Lion.xyz');

% Plot all points
pc.plot;
title('All Points', 'Color', 'w'); view(0,0); snapnow;

% First select a subset of points with uniform sampling, then search all points within the range of 1 from these points
pc.select('UniformSampling', 5);

points = pc.X(pc.act,:); % save selected points to matrix

pc.select('All'); % reselect all points

searchRadius = 1;
pc.select('RangeSearch', points, searchRadius);

% Plot only selected points
close; pc.plot;
title('After selection strategy ''RangeSearch''', 'Color', 'w'); view(0,0);

11. KnnSearch =为另一个点云的每个点选择K个最近邻

clc; clear; close all; % clear everything

% Import point cloud
pc = pointCloud('Lion.xyz');

% Plot all points
pc.plot;
title('All Points', 'Color', 'w'); view(0,0); snapnow;

% First select a subset of points with uniform sampling, then search the 500 nearest neighbors of these points
pc.select('UniformSampling', 10);

points = pc.X(pc.act,:); % save selected points to matrix

pc.select('All'); % reselect all points

pc.select('KnnSearch', points, 'K', 500);

% Plot only selected points
close; pc.plot;
title('After selection strategy ''KnnSearch''', 'Color', 'w'); view(0,0);

 

12.剖面=垂直剖面内点的选择

clc; clear; close all; % clear everything

% Import point cloud
pc = pointCloud('Lion.xyz');

% Plot all points
pc.plot;
title('All Points', 'Color', 'w'); view(0,0); snapnow;

% Select a crossection
lineStart = [ 100 0];
lineEnd   = [-100 0];
lineWidth = 2;
az = pc.select('Profile', lineStart, lineEnd, lineWidth); % az contains the azimuth of cross section (to use with function view, see below)

% Plot only selected points
close; pc.plot;
title('After selection strategy ''Profile''', 'Color', 'w'); view(az,0);

 

 

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

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

相关文章

FL Studio21免费吗?怎么下载最新中文版本?

FL Studio中文版已上线,自20.8版起已支持简体中文。推荐使用Windows 10系统安装, Windows 7系统设置FL Studio语言为中文时若出现乱码,可以将Win10系统中的“微软雅黑”字体复制并安装进Win7系统电脑中!FL Studio支持什么格式的插…

【软考数据库】第四章 操作系统知识

目录 4.1 进程管理 4.1.1 操作系统概述 4.1.2 进程组成和状态 4.1.3 前趋图 4.1.4 进程同步与互斥 4.1.5 进程调度 4.1.6 死锁 4.1.7 线程 4.2 存储管理 4.2.1 分区存储管理 4.2.3 分页存储管理 4.2.…

进程与线程:同步和互斥

进程与线程:同步&互斥 同步&互斥的概念 ​ 进程具有异步性的特征。异步性是指各并发进程执行的进程的以各自独立的,不可预知的速度向前推进 同步 ​ 同步 亦称为直接制约关系,它是指为完成某种任务而建立的两个或多个进程&#xf…

虚拟主机解压/压缩功能说明

使用帮助说明 主机控制面板上点击文件管理,进入目录。 一、解压 windows操作系统: 鼠标移动到压缩文件,点击“解压” Linux操作系统: 压缩文件后点击解压按钮。 注意linux系统不支持rar在线解压,rar改名为zip也不能解压&…

JVM 调优

大部分的情况都是由于企业内部代码逻辑不合理导致。 JVM内部性能优化 栈上分配 方法内联 JVM的自适应调整 JVM改错 大并发内存不足OOM 内存泄漏GC频繁CPU飙升 JVM的调优的原则是让你各项指标尽可能的利用到你硬件的性能瓶颈。 JVM的性能优化可以分为代码层面和非代码层面。…

数据库系统工程师——第五章 网络基础知识

文章目录 📂 第五章、网络基础知识 📁 5.1 计算机网络概述 📖 5.1.1 计算机网络的概念 📖 5.1.2 计算机网络的分类 📖 5.1.3 网络的拓扑结构 📁 5.2 网络硬件基础 📖 5.2.1 网络设备 &…

Linux 文件内容相关命令使用汇总

Linux操作系统有很多强大的文件内容相关命令,这些命令可以让您查看、分析和编辑文件。其中,最基本和常用的命令包括cat、more、less和head/tail等。除了这些基本命令之外,grep和find命令也是文件搜索和过滤方面的有力工具。 前言 我们这篇主…

UM2080F32 低功耗32 位 Sub1GHz 无线SOC收发器芯片

产品描述 UM2080F32 是广芯微电子(广州)股份有限公司研制的基于 ARM Cortex M0 内核的超低功 耗、高性能的、单片集成 (G)FSK/OOK 无线收发机的 32 位 S o C 芯片。 UM2080F32 工作于 200MHz~960MHz 范围内,支持灵活可设的数据包格式&#xf…

危险试探,产品经理赋予AI人格来打造品牌忠诚度

图片来源:由无界 AI工具生成 你可能不会相信,你的手机很可能变成你的虚拟情人,升级情人需要升级手机,而你从此再也不想换其他品牌手机。 AI时代,赋予产品以人格,让用户爱上产品,这或许是接下来产…

Python整个颜色小网站,给刚刚失恋的他.........

一些过场剧情: 死党一直暗恋校花,但是校花对他印象也不差, 就是死党一直太怂了,不敢去找校花, 直到昨天看到校花登上了校董儿子的豪车, 死党终于彻底死心,大醉一场,作为他的兄弟&#xff0c…

井电双控智能取水计量设备-井电双控遥测终端机

井电双控遥测终端机/井电双控智能取水计量设备(MGTR-W4122C)是针对取水计量控制系统开发智能终端产品。集预收费、流量监测、电量监测、余额提醒、欠费停机、无线传输、远程控制等多种功能于一体,并可根据项目需求选择实体IC卡和APP电子卡取水…

【JavaEE】从收发消息的角度理解 TCP/IP 五层网络模型的封装与分用

文章目录 1 为什么需要分层?2 TCP/IP 五层网络模型3 数据的封装(发送消息为例)4 数据的分用(接收消息为例)5 实际网络环境上的封装与分用写在最后 1 为什么需要分层? 你问我为啥需要分层?那必然…

python+vue 健康体检预约管理系统

该专门体检预约管理系统包括会员和管理员。其主要功能包括个人中心、会员管理、体检服务管理、类型管理、订单信息管理、取消订单管理、 体检报告管理、通知信息管理、交流论坛、系统管理等功能。 目 录 一、绪论 1 1.1研发背景和意义 2 1.2 国内研究动态 3 1.3论文主…

US-DAT2-F、US-DAT2-A比例放大器接线

多路控制阀比例放大器接线端子定义: 序号 端口 名称 1 CMD1 1阀指令 2 CMD1- 1阀指令- 5 RS485_A - 6 RS485_B - 7 VREF_10V 参考电压10V 8 VREF_0V 参考电压0V 9 VAL1_A 1阀电磁铁A 10 VAL1_AB- 1阀电磁铁AB- 11 VAL1_B 1阀电磁铁B 12 PWR 电源 13 PWR…

Unreal5 实现角色动画重定向

解决问题: 有时候有的角色动画想用到另外的角色身上,不能直接用怎么办? 解决方案: 使用重定向 实现方式: 在资产里面创建IK绑定 在列表中选中需要绑定的骨骼网格体 需要创建两个,我这里是女人需要使用男…

【社区图书馆】PyTorch高级机器学习实战

PyTorch高级机器学习实战 作者:王宇龙,清华大学计算机博士,大型互联网公司算法专家,在国际学术会议及期刊发表过多篇论曾出版书籍《PyTorch深度学习入门与实战》,知乎"机器学习”话题优秀回答者。 亮点&#xf…

【Git 入门教程】第三节、Git的分支和合并

Git的分支和合并是Git中最重要的概念之一。使用Git可以轻松地创建、切换和合并分支,这为团队协作开发提供了极大的便利。在本文中,我们将介绍Git分支的基本概念和操作方式。 一、分支 在Git中,分支是指一个代码库的不同版本。分支允许开发者…

设计模式——设计模式简介、分类及面向对象设计原则

文章目录 前言一、什么是设计模式1、从面向对象谈起2、深入理解面向对象3、软件设计固有的复杂性4、软件设计复杂的根本原因——“变化”5、如何解决复杂性?6、软件设计的目标 二、常用设计模式及分类1、常用的七种设计模式2、设计模式分类 三、面向对象设计原则1、…

华为C++研发工程师编程题 ACM模式输入输出|| 1.汽水瓶,2.明明的随机数,3.进制转换

C ACM输入输出 1.汽水瓶题目描述思路代码如下 2.明明的随机数题目描述思路:代码如下: 3.进制转换题目描述思路:代码如下 题目链接: 华为研发工程师编程题 1.汽水瓶 题目描述 某商店规定:三个空汽水瓶可以换一瓶汽水…

手动泵DHP2-100、DHP-100

特性 变化的压力范围。 坚硬精密螺芯和阀套筒。 软调节。 铝制手柄和核心盘。 可以固化调节。 工业化紧凑尺寸。 可调顺序阀 DPS2-100 系列10 先导可调顺序阀 DPSK-100 系列10 先导可调顺序阀 DPSK2-100 系列10 梭阀 DSH-100 系列10 手动双向换向阀 DMP-080-2NCP 系…