这次记录一下对点云进行变换和显示的另一个函数pcshowpair
点云变换
如果是刚性变换,一般是齐次变换矩阵,包含旋转和平移两个部分,MATLAB提供了函数rigid3d来构建矩阵
tform = rigid3d
tform = rigid3d(t)
tform = rigid3d(rot,trans)
这里简单说一下这3种构造方法
1. tform = rigid3d
是直接建立一个R=I,t =[0 0 0]的齐次变换矩阵
2. tform = rigid3d(t)
这里需要我们自己把齐次变换矩阵T作为输入,函数在创建时会判断这个矩阵的数值是否合理,如果不合理是会报错的,必须得是刚性变换
3. tform = rigid3d(rot,trans)
这个应该会是用的最多的构造方法,分别讲R和t作为输入
点云显示
当希望两片点云同时显示出来时候,pcshowpair是一个不错的选择,结合上面的点云变换,这里展示一下结果
clc,clear
rabbit = pcread('rabbit.pcd')
theta = 30;
R = [cosd(theta) sind(theta) 0;
-sind(theta) cosd(theta) 0;
0 0 1];
t = [0.05 0.05 0.1];
T = rigid3d(R,t);
new_rabbit = pctransform(rabbit,T);
pcshowpair(rabbit,new_rabbit)