资源简介

自己实现的经典ICP算法,采用PCA作了粗拼接,然后使用K-d树算法加速选取对应点,使用bunny数据进行了拼接实验,并计算了其RMS误差。经典ICP算法中不包含筛选删除误匹配点对的步骤,因此精度较低。

资源截图

代码片段和文件信息

function b = ascread(filename)      %read my file
format long;
fi = fopen(filename‘r‘);       %openfile  ‘r‘读出参数
if fi < 0
  error(sprintf(‘File %s not found‘ filename))
end

templine = 1; %
a = sscanf(fgetl(fi) ‘%d‘);%%fgetl从已经打开的文件中读取一行,并且丢掉末尾的换行符。
templine = templine +1;

if length(a)==1
    points=a(1);
end

pointlist = zeros(3points);

for vnum = 1 : points
  coord = sscanf(fgetl(fi) ‘%e %e %e‘);
  if length(coord) ~= 3
    errmsg = sprintf(‘Each vertex line must contain three coordinates (error on line %d)‘ templine);
    error(errmsg);
  end
  templine = templine +1;
  pointlist(:vnum) = coord;
end
b = cell({points;pointlist});

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-04-04 14:51  Basic_ICP\
     文件         704  2018-04-04 14:51  Basic_ICP\ascread.m
     文件     1182978  2018-04-04 14:51  Basic_ICP\bun000.asc
     文件     1161413  2018-04-04 14:51  Basic_ICP\bun045.asc
     文件        1493  2018-04-04 14:51  Basic_ICP\init.m
     文件        1365  2018-04-04 14:51  Basic_ICP\register_demo.m
     文件         178  2018-04-04 14:51  Basic_ICP\RMScompute.m
     文件        1120  2018-04-04 14:51  Basic_ICP\Solvecircle.m

评论

共有 条评论