zoukankan      html  css  js  c++  java
  • 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(2) - xlimit(1))/cellsize)+1;
    H = floor((ylimit(2) - ylimit(1))/cellsize)+1;
    D = floor((zlimit(2) - zlimit(1))/cellsize)+1;
    
    %向网格里填数
    voxel = cell(W,H,D);
    for i =1:length(pc_point)
        I = floor((pc_point(i,1)-xlimit(1))/cellsize)+1;
        J = floor((pc_point(i,2)-ylimit(1))/cellsize)+1;
        K = floor((pc_point(i,3)-zlimit(1))/cellsize)+1;
        voxel{I,J,K} = [voxel{I,J,K};pc_point(i,:)];
    end
    
    %以网格中第一个点对原点云进行下采样
    pointre =[];
    for i=1:W
        for j=1:H
            for k=1:D
                if isempty(voxel{i,j,k})==0
                    pointre=[pointre;voxel{i,j,k}(1,:)];
                end
            end
        end
    end
    pcre = pointCloud(pointre);
    
    figure;
    pcshow(pcre);
  • 相关阅读:
    [POJ1743]Musical Theme
    ubuntu qq
    Separate code and data contexts: an architectural approach to virtual text sharing
    Python3发送post请求,自动记住cookie
    python 异步协程
    豆瓣爬虫
    pandas 使用
    房天下爬虫
    计算英文文章词频的两种方法
    LOW版统计词频
  • 原文地址:https://www.cnblogs.com/tiandsp/p/10574530.html
Copyright © 2011-2022 走看看