首页 > 网站 > WEB开发 > 正文

【Matlab Computer Vision System ToolBox】学习笔记-3 -点云配准 | 噪音去除 | 降采样

2024-04-27 15:06:28
字体:
来源:转载
供稿:网友

本系列博客将介绍Matlab中机器视觉工具箱的应用,部分案例,主要关于点云处理方面,更多内容见Matlab官方文档。如有翻译错误请批评指正!所有代码经自己运行测试通过。转载请注明链接 :http://blog.csdn.net/kaspar1992

1. Hide and Show 3-D Point Cloud Figure - 显示和隐藏3D图

player=pcplayer(ptCloud.XLimits,ptCloud.YLimits,ptCloud.ZLimits);创建显示坐标系

>> hide(player)            // 隐藏>> show(player)            // 显示>> view(player,ptCloud);   // 显示点云

点云显示也可用 pcshow(ptCloud).

2. Align Two Point Clouds -点云匹配

首先读入点云 teapot.ply , 然后创建旋转及平移矩阵 A ,使用函数 pctrandform 变换点云。 点云匹配采用函数 pcregrigid ,求出匹配成功后的矩阵。

A=[cos(pi/6) sin(pi/6) 0 0; -sin(pi/6) cos(pi/6) 0 0; 0 0 1 0; 5 5 10 1];tform1=affine3d(A);ptCloudTformed=pctransform(ptCloud,tform1);figurepcshow(ptCloudTformed);title('Transformed Teapot');tform=pcregrigid(ptCloudTformed,ptCloud,'Extrapolate',true);          //求点云匹配矩阵disp(tform1.T);tform2=invert(tform);disp(tform2.T);

                                                               

可以发现矩阵完全一致,匹配正确。

3. Merge Two Identical Point Clouds Using Box Grid Filter -用网格滤波合并两个点云

>> ptCloudA=pointCloud(100*rand(1000,3));>> ptCloudB=copy(ptCloudA);>> ptCloudC=pcmerge(ptCloudA,ptCloudB,1);>> pcshow(ptCloudC);

4. Remove Outliers from Noisy Point Cloud -从点云中除去离群值

gv=0:0.01:1;[X,Y]=meshgrid(gv,gv);ptCloud=pointCloud([X( : ),Y( : ),0.5*ones(numel(X),1)]);   //创建点云平面figurepcshow(ptCloud);title('Original Data');noise=rand(500,3);ptCloudA=pointCloud([ptCloud.Location;noise]);             //生成随机噪音点figurepcshow(ptCloudA);title('Noisy Data');% Remove outliersptCloudB=pcdenoise(ptCloudA);                               //除去离群值figurepcshow(ptCloudB);title('Denoised Data');

5. Downsample Point Cloud Using Box Grid Filter -用格子滤波进行降采样

ptCloud=pcread('teapot.ply');gridStep=0.1;ptCloudA=pcdownsample(ptCloud,'gridAverage',gridStep);         //box grid filter 降采样figure;pcshow(ptCloud);figure;pcshow(ptCloudA);stepSize=floor(ptCloud.Count/ptCloudA.Count);                //固定步长降采样indices=1:stepSize:ptCloud.Count;ptCloudB=select(ptCloud,indices);figure;pcshow(ptCloudB);                                       


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表