文档
采用CPD算法对两个点云进行配准
Tform = pcregistercpd(移动,固定)
[tform,movingReg] = pcregistercpd(移动,固定)
[___,rmse] = pcregistercpd(移动,固定)
[___= pcregistercpd(移动,固定,名称,值)
例子
tform= pcregistercpd (移动,固定)返回使用相干点漂移(CPD)算法将移动点云注册为固定点云的转换[1].
tform= pcregistercpd (移动,固定)
tform
移动
固定
考虑使用下采样点云pcdownsample之前使用pcregistercpd提高注册效率。
pcdownsample
[tform,movingReg] = pcregistercpd(移动,固定)还返回与固定点云对齐的转换后的点云。
[tform,movingReg] = pcregistercpd(移动,固定)
movingReg
[___,rmse] = pcregistercpd(移动,固定)还返回对齐点云之间的欧几里得距离的均方根误差,使用任何前面的语法。
[___,rmse] = pcregistercpd(移动,固定)
rmse
[___] = pcregistercpd(移动,固定,名称,值)使用一个或多个指定的其他选项名称,值对参数。
[___] = pcregistercpd(移动,固定,名称,值)
名称,值
全部折叠
将点云数据加载到工作区中。从工作空间中的点云数据中提取运动点云和静止点云。
handData = load(“hand3d.mat”);moving = handData.moving;fixed = handData.fixed;
为了提高CPD配准算法的效率和精度,对运动点云和静止点云进行了降采样。
movingdownsamples = pcdownsample(移动,“gridAverage”, 0.03);fixeddownsamples = pcdownsample(固定,“gridAverage”, 0.03);
显示配准前的下采样点云。
图pcshowpair (movingDownsampled fixedDownsampled,“MarkerSize”, 50)包含(“X”) ylabel (“Y”) zlabel (“Z”)标题(“注册前的点云”)({传奇“移动点云”,“定点云”},“输入TextColor”,' w ')传说(“位置”,“southoutside”)
使用CPD算法进行非刚性配准。
tform = pcregistercpd(movingdownsamples, fixeddownsamples);movingReg = pctransform(movingDownsampled,tform);
显示配准后的下采样点云。
图pcshowpair (movingReg fixedDownsampled,“MarkerSize”, 50)包含(“X”) ylabel (“Y”) zlabel (“Z”)标题(“注册后的点云”)({传奇“移动点云”,“定点云”},“输入TextColor”,' w ')传说(“位置”,“southoutside”)
pointCloud
移动点云,指定为apointCloud对象。
定点云,指定为apointCloud对象。
的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家.
的名字
价值
Name1, Value1,…,的家
“MaxIterations”,20
“转换”
“非刚性的”
“刚性”
仿射的
转换类型,指定为由逗号分隔的对组成“转换”和“非刚性的”,“刚性”,或仿射的字符向量或字符串标量。
数据类型:字符|字符串
字符
字符串
“OutlierRatio”
0.1
相对于正态分布的异常值的期望百分比,指定为逗号分隔的对,由“OutlierRatio”和范围[0,1)中的标量。增加此值可减少异常值和噪声的影响。
数据类型:单|双
单
双
“MaxIterations”
20.
CPD停止前的最大迭代次数,指定为逗号分隔的对,由“MaxIterations”一个正整数。
“宽容”
1 e-5
连续CPD迭代之间的公差,指定为逗号分隔的对,由“宽容”一个标量。当连续迭代之间测量的对数似然函数值的绝对百分比变化达到或低于指定的容差值时,算法停止。降低这个值可以增加更好对齐的可能性。
“InteractionSigma”
2.0
点之间的相互作用,指定为逗号分隔的对,由“InteractionSigma”和表示高斯滤波器标准差的正标量。典型值在[1.5,3]范围内。增加这个值可以增加点云中点之间的交互。因此,你可以观察到点云中的相干运动,每个点都经历相同的位移。或者,降低这个值可以减少点云中点之间的交互。因此,可以观察到点的局域位移,输出位移场出现局域变形。
要使用这个名称-值对,“转换”必须“非刚性的”.
“SmoothingWeight”
3.0
运动平滑权值,由逗号分隔的对组成“SmoothingWeight”一个正标量。典型值在[0.1,10]范围内。增加此值可在输出位移场中产生更连贯的运动。
“详细”
假
真正的
显示进度信息,由逗号分隔的对组成“详细”和一个逻辑标量。集“详细”来真正的显示进度信息。
数据类型:逻辑
逻辑
这两个“MaxIterations”和“宽容”用作停止标准。当满足任意一个停止条件时,即迭代次数达到时,算法停止MaxIterations或者对数似然函数的绝对变化百分比小于或等于宽容.
MaxIterations
宽容
affine3d
转换,返回为affine3d物体或位移场。tform为记录移动点云的三维变换,移动到定点云,固定.当“转换”是“非刚性的”,函数返回一个位移场。返回的位移字段是一个数值矩阵,大小和数据类型与位置运动点云对象的性质,移动.
位置
转换后的点云,返回为apointCloud对象。变换后的点云与不动点云对齐,固定.
均方根误差,作为正实数返回。rmse为对齐点云之间的欧氏距离。
数据类型:双
[1]米罗年科,A.和X.宋。点集配准:相干点漂移IEEE模式分析与机器智能汇刊(TPAMI).第32卷,第12期,2010年12月,第2262-2275页。
使用注意事项和限制:
金宝app支持代码生成(需要MATLAB®编码器™)只适用于一般MATLAB主机目标平台。
MATLAB主机
生成使用预编译的、特定于平台的共享库的代码。
pcdenoise
pcfitplane
pcmerge
pcregistericp
pcregisterndt
pcshow
pcshowpair
pctransform
系统中存在此示例的修改版本。你想打开这个版本吗?
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在可用的地方获得翻译的内容,并查看当地的活动和优惠。根据您所在的位置,我们建议您选择:.
您也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
联系当地办事处
现在就去审判吧