点云处理有时因为数据量太大,我们需要对其进行下采样。

这里的方法是先将点云填入固定大小的三维网格中,然后每个网格中选一个点生成新的点云。

新点云即为下采样后的点云。

这里使用斯坦福兔子作为测试点云。

小兔子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);

最新文章

  1. dedecms qq咨询平均分配
  2. 牛刀小试:使用Reactive Extensions(Rx),对短时间内多次发生的事件限流
  3. eclipse中的Console控制台视图脱离主窗口解决办法
  4. java的重载
  5. wpf鼠标捕获与控件交互——UIElement.CaptureMouse
  6. linux netstat命令使用详解
  7. 2的32次方 分类: C#小技巧 2014-08-05 18:18 406人阅读 评论(0) 收藏
  8. 利用DataImportHandler建索引时一直无法完成
  9. Java运行时内存划分与垃圾回收--以及类加载机制基础
  10. 根据appId匹配项目名称
  11. Xeon Phi 《协处理器高性能编程指南》随书代码整理 part 4
  12. JAVA核心技术I---JAVA基础知识(知识回顾)
  13. mumu模拟器设置代理/打开网络连接(windows)
  14. spring框架学习笔记3:使用注解代替配置文件
  15. kubenets installation--ranchor-mesos
  16. 【环境】新建Maven工程步骤及报错解决方法
  17. MySQL程序之mysql参数详解
  18. 【WebService】WebService之CXF和Spring整合(六)
  19. Unity入门教程(下)
  20. Python 目录【持续更新中】

热门文章

  1. Gradle实现自动打包,签名,自定义apk文件名
  2. SpringCloud2.0入门3-新的eureka依赖
  3. 【原创】《windows驱动开发技术详解》第4章实验总结一
  4. SLAM入门之视觉里程计(3):两视图对极约束 基础矩阵
  5. Oracle数据库over函数的使用
  6. python datetime模块详解
  7. 微信分享JS-SDK
  8. 简单说明CGI和动态请求是什么
  9. Ajax的初级使用
  10. 使用IIS调试ASP.NET网站程序