В настоящее время я использую следующий псевдокод для реализации алгоритма ICP на C #. Получено из 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, это было бы здорово :) Я написал методы для расчета ошибки соответствия и ошибки выравнивания, однако я не уверен, как применить их, чтобы получить новое обновление выравнивание.