matlab练习程序(点云下采样)
点云处理有时因为数据量太大,我们需要对其进行下采样。
这里的方法是先将点云填入固定大小的三维网格中,然后每个网格中选一个点生成新的点云。
新点云即为下采样后的点云。
这里使用斯坦福兔子作为测试点云。
小兔子pcd下载地址。
原始点云:

采样后点云:

matlab代码如下:
clear all;
close all;
clc; pc = pcread('rabbit.pcd');
pcshow(pc); pc_point = pc.Location;
xlimit = pc.XLimits;
ylimit = pc.YLimits;
zlimit = pc.ZLimits; cellsize = 0.005; %定义网格大小
%设置网格数量
W = floor((xlimit() - xlimit())/cellsize)+;
H = floor((ylimit() - ylimit())/cellsize)+;
D = floor((zlimit() - zlimit())/cellsize)+; %向网格里填数
voxel = cell(W,H,D);
for i =:length(pc_point)
I = floor((pc_point(i,)-xlimit())/cellsize)+;
J = floor((pc_point(i,)-ylimit())/cellsize)+;
K = floor((pc_point(i,)-zlimit())/cellsize)+;
voxel{I,J,K} = [voxel{I,J,K};pc_point(i,:)];
end %以网格中第一个点对原点云进行下采样
pointre =[];
for i=:W
for j=:H
for k=:D
if isempty(voxel{i,j,k})==
pointre=[pointre;voxel{i,j,k}(,:)];
end
end
end
end
pcre = pointCloud(pointre); figure;
pcshow(pcre);
matlab练习程序(点云下采样)的更多相关文章
- matlab练习程序(随机直线采样)
我只是感觉好玩,写了这样一段程序. 原理就是先随机生成两个点,然后根据这两个点画直线,最后在直线上的像素保留,没在直线上的像素丢弃就行了. 最后生成了一幅含有很多空洞的图像. 当然,对含有空洞的图像是 ...
- VoxelGrid体素滤波器对点云进行下采样
使用体素化网格方法实现下采样,即减少点的数量,减少点云数据,并同时保持点云的形状特征,在提高配准.曲面重建.形状识别等算法速度中非常实用. PCL实现的VoxelGrid类通过输入的点云数据创建一个三 ...
- 【转】图像的上采样(upsampling)与下采样(subsampled)
转自:https://blog.csdn.net/stf1065716904/article/details/78450997 参考: http://blog.csdn.net/majinlei121 ...
- 图像的上采样(upsampling)与下采样(subsampled)
缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的有两个:1.使得图像符合显示区域的大小:2.生成对应图像的缩略图. 放大图像(或称为上采样(upsampli ...
- 010——MATLAB运行错误跳到下一个循环
(一)MATLAB运行错误跳到下一个循环 :%文件的个数 try %运行的程序放到这里 catch continue%假如上面的没法执行则执行continue,到下个循环 end
- Slog71_选取、上传和显示本地图片GET !(微信小程序之云开发-全栈时代3)
ArthurSlog SLog-71 Year·1 Guangzhou·China Sep 12th 2018 ArthurSlog Page GitHub NPM Package Page 掘金主页 ...
- 原创 C++应用程序在Windows下的编译、链接:第三部分 静态链接(二)
3.5.2动态链接库的创建 3.5.2.1动态链接库的创建流程 动态链接库的创建流程如下图所示: 在系统设计阶段,主要的设计内容包括:类结构的设计以及功能类之间的关系,动态链接库的接口.在动态链接库中 ...
- 原创 C++应用程序在Windows下的编译、链接:第二部分COFF/PE文件结构
2.1概述 在windows操作系统下,可执行文件的存储格式是PE格式:在Linux操作系统下,可执行文件的存储格式的WLF格式.它们都是COFF格式文件的变种,都是从COFF格式的文件演化而来的. ...
- 原创 C++应用程序在Windows下的编译、链接:第一部分 概述
本文是对C++应用程序在Windows下的编译.链接的深入理解和分析,文章的目录如下: 我们先看第一章概述部分. 1概述 1.1编译工具简介 cl.exe是windows平台下的编译器,link.ex ...
随机推荐
- 解决svn图标不显示(绝对有用)
经常遇到svn图标不显示的问题,然后经过长时间的查找终于找到了一个最最管用的办法,在这里分享给的大家
- 心路历程(五)-find work and find house
今天,对我半年的java自学经历做一个总结吧,因为今天刚找到了房子,而工作在前两天已经找到.面试了两家,第一家是海淀去知春路的中科软,去之前就百度了这家公司,各种黑,然后自己去了之后,说说自己真实的感 ...
- MQ(1)---消息队列概念和使用场景
消息队列概念和使用场景 声明:本文转自:MQ入门总结(一)消息队列概念和使用场景 写的很好,都不用自己在整理了,非常感谢该作者的用心. 一.什么是消息队列 消息即是信息的载体.为了让消息发送者和消息接 ...
- Elastic Job学习
从执行的结果来看,随着服务器的增加,分片的结果也不一样 当只有一台服务器的时候,所有分片都到这一台服务器上 当服务器增加到两台的时候,分片的结果是0 1 2 3 4和5 6 7 8 9 当服务器增加到 ...
- WebAssembly是解决JavaScript 痼疾的银弹?
写在前面 <没有银弹>是 Fred Brooks 在 1987 年所发表的一篇关于软件工程的经典论文.该论文的主要论点是,没有任何一项技术或方法可以能让软件工程的生产力在十年内提高十倍. ...
- mysql 更新语句中加判断条件
UPDATE loan_overdue_list l setl.type_status=(CASE WHEN l.overdue_days>(select c.overdue_one from ...
- Long类型时间如何转换成视频时长?
数据库中存放的视频时长是一个Long类型的毫秒/秒时间,现在需要把这个时间转换成标准的视频时长格式,在我看来这应该是一个很常用的转化有一个很常用的转换方法工具才对,可是我百度找了许久,没有一个简单直观 ...
- springboot 与 shiro 整合 (简洁版)
前言: 网上有很多springboot 与 shiro 整合的资料,有些确实写得很好, 对学习shiro和springboot 都有很大的帮助. 有些朋友比较省事, 直接转发或者复制粘贴.但是没有经过 ...
- TCP/IP协议学习(一)
一.网络模型 OSI七层模型:自上至下依次是 应用层,表示层,会话层,传输层,网络层,数据链路层,物理层 应用层:具体的应用协议如HTTP.SMTP.FTP.TELNET.DNS等 表示层:针对数据格 ...
- Perl中的自增、自减
自增和自减 perl也支持数值类型的自增和自减操作.不仅如此,还支持字符.字符串的自增.自减. 如果自增(++)和自减(--)符号放在数值的前面,则先增减,再返回: 如果自增(++)和自减(--)符号 ...