我目前正在使用以下伪代码在C#中实现ICP算法。从ICP Powerpoint获取。
function ICP(Scene,Model)
begin
E` = + ∞;
(Rot,Trans) = In Initialize-Alignment(Scene,Model);
repeat
E = E`;
Aligned-Scene = Apply-Alignment(Scene,Rot,Trans);
Pairs = Return-Closest-Pairs(Aligned-Scene,Model);
(Rot,Trans,E`) = Update-Alignment(Scene,Model,Pairs,Rot,Trans);
Until |E`- E| < Threshold
return (Rot,Trans);
end
然而,我并不完全确定更新对齐应该如何实现?如果有人能比PowerPoint更清晰地解释一下,那就太好了 :) 我已经编写了计算对应误差和对齐误差的方法,但我不确定如何应用这些方法来获得新的更新对齐。