摘要:
问题是这样,如果我们知道两个向量v1和v2,计算从v1转到v2的旋转矩阵和四元数,由于旋转矩阵和四元数可以互转,所以我们先计算四元数。 我们可以认为v1绕着向量u旋转θ角度到v2,u垂直于v1-v2平面。 四元数q可以表示为cos(θ/2)+sin(θ/2)u,即:q0=cos(θ/2), 阅读全文
摘要:
思路还是很容易想到的: 1.首先使用KD树寻找当前点邻域的N个点,这里取了10个,直接调用了vlfeat。 2.用最小二乘估计当前邻域点组成的平面,得到法向量。 3.根据当前邻域点平均值确定邻域质心,通常质心会在弯曲表面的内部,反方向即为法线方向。 vlfeat在这里下载,配置参考这里,rabbit 阅读全文
摘要:
点云处理有时因为数据量太大,我们需要对其进行下采样。 这里的方法是先将点云填入固定大小的三维网格中,然后每个网格中选一个点生成新的点云。 新点云即为下采样后的点云。 这里使用斯坦福兔子作为测试点云。 小兔子pcd下载地址。 原始点云: 采样后点云: matlab代码如下: 阅读全文
摘要:
通常我们使用的最小二乘都需要预先设定一个模型,然后通过最小二乘方法解出模型的系数。 而大多数情况是我们是不知道这个模型的,比如这篇博客中z=ax^2+by^2+cxy+dx+ey+f 这样的模型。 局部加权线性最小二乘就不需要我们预先知道待求解的模型,因为该方法是基于多个线性函数的叠加,最终只用到了 阅读全文
摘要:
起本篇题目还是比较纠结的,原因是我本意打算寻找这样一个算法:在测量数据有比较大离群点时如何估计原始模型。 上一篇曲面拟合是假设测量数据基本符合均匀分布,没有特别大的离群点的情况下,我们使用最小二乘得到了不错的拟合结果。 但是当我加入比如10个大的离群点时,该方法得到的模型就很难看了。所以我就在网上搜 阅读全文
摘要:
本文主要参考: https://wenku.baidu.com/view/b7907665caaedd3383c4d31b.html https://blog.csdn.net/u010376788/article/details/50187321 虽然参考上面两篇文章,不过这里和他给出的算法步骤不 阅读全文
摘要:
这里用到的还是最小二乘方法,和上一次这篇文章原理差不多。 就是首先构造最小二乘函数,然后对每一个系数计算偏导,构造矩阵乘法形式,最后解方程组。 比如有一个二次曲面:z=ax^2+by^2+cxy+dx+ey+f 首先构造最小二乘函数,然后计算系数偏导(我直接手写了): 解方程组(下图中A矩阵后面求和 阅读全文
摘要:
上一篇博客中我们使用了四元数法计算点集配准。 本篇我们使用SVD计算点集配准。 下面是《视觉slam十四讲》中的计算方法: 计算步骤如下: 我们看到,只要求出了两组点之间的旋转,平移是非常容易得到的,所以我们重点关注R的计算。展开关于R的误差项,得: 注意到第一项和R无关,第二项由于R'R=I,亦与 阅读全文
摘要:
很久之前实现的功能,也是参考其他人的实现,时间太久,具体参考哪里已经记不得了。 这里不仅能屏蔽一般的快捷键,还可以屏蔽ctrl+atl+del。 调用: 阅读全文
摘要:
算法思想:如果一个像素与它邻域的像素差别较大(过亮或过暗) , 那它更可能是角点。 算法步骤: 1.上图所示,一个以像素p为中心,半径为3的圆上,有16个像素点(p1、p2、...、p16)。 2.定义一个阈值。计算p1、p9与中心p的像素差,若它们绝对值都小于阈值,则p点不可能是特征点,直接pas 阅读全文