ICP+点云拼接实践

写程序时觉得自己的逻辑和思路比较混乱,而且仅仅是在写比较小的程序、无需构架方面的考虑时。比如,试图修改14讲的ICP算法,使之结合拼接点云实验时,需要将前面匹配的keypoints坐标、颜色、深度保存,并在拼接点云时作为参数传入,半天不知道该在哪里加,总感觉原本的写法用起来不太会。遂从提取特征点开始,重写之。
第一步,先搞清楚每个部分如何实现吧,十分具体的框图如下
这里写图片描述

接下来,要往里面添加存储颜色、坐标的代码。匹配点最后筛选时入栈了,那对于之前检测到的特征点,检测时我们也一起提取出颜色、坐标、深度,在符合要求匹配点入栈时,一起使之入栈,是否可行?
在点云拼接实验中
colorImgs, depthImgs的类型是vector

vector<cv::Mat> colorImgs, depthImgs;
colorImgs.push_back(cv::imread(picture[i].str()));
depthImgs.push_back(cv::imread(picture[i].str(),-1));//使用-1读取原始图像?啥意思
cv::Mat color = colorImgs[i];
cv::Mat dept
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
点云拼接是将多个点云数据集合并成一个整体的过程。而RANSAC(随机抽样一致性算法)是一种经典的模型估计方法,可以用于点云拼接。下面我用300字详细解释一下点云拼接RANSAC的原理和步骤。 首先,点云拼接RANSAC的目标是找到多个点云之间的共同几何关系。这个几何关系通常是由旋转、平移和缩放等变换描述的。 RANSAC算法的步骤如下: 1. 随机从点云中选择一个点作为起始点,并将其作为一个模型的一部分; 2. 从剩余的点云中随机选择一些点,构成一个能够满足当前模型的假设集合; 3. 使用这个假设集合来估计一个模型,通常使用最小二乘法等方法; 4. 计算当前模型对于所有点的拟合误差; 5. 如果误差小于设定的阈值,将这个模型认为是一个好模型; 6. 重复2-5的步骤若干次,选择拟合误差最小的模型; 7. 使用所有被认为是好模型的点云对应的变换,将点云进行拼接。 在点云拼接中,RANSAC算法的关键是通过选择随机的点来构建一组假设集合。然后使用这个假设集合来估计一个模型,并计算拟合误差。根据误差的大小,可以判断该模型是否是一个好模型。通过多次重复这个过程,并选择拟合误差最小的模型,就可以得到最好的点云拼接结果。 总结来说,点云拼接RANSAC是一种通过随机抽样和拟合误差计算来估计点云之间共同几何关系的方法。它可以有效地将多个点云数据拼接成一个整体,用于实现点云拼接和重建等应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值