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