
手写算法系列
卫少东
武汉大学,博士在读-测绘遥感国家重点实验。感兴趣领域为:多源数据联合定位和卫星影像三维重建
展开
-
C++ 一维高斯积分的实现
#include <cmath>#include <limits>#include <cstdlib>#include <iostream>#include<cmath>using namespace std;//高斯积分int main(){ double sigma = 1; double mu = 0; double A = 1/(sqrt(2*M_PI) * sigma); // double x = 0; /原创 2020-10-21 20:53:28 · 1530 阅读 · 2 评论 -
手写系列之手写LM(Levenberg–Marquardt)算法(基于eigen)
紧接上次的手写高斯牛顿,今天顺便将LM算法也进行了手写实现,并且自己基于eigen的高斯牛顿进行了对比,可以很明显的看到,LM的算法收敛更快,精度也略胜一筹,这次高博的书不够用了,参考网上伪代码进行实现.同学们有什么问题都可以讨论,理论部分的细节后面会补上,最近确实有点忙.伪代码程序源码#include <eigen3/Eigen/Core>#include <eigen3/Eigen/Dense>#include"opencv2/opencv.hpp"#include原创 2020-07-08 19:01:15 · 2690 阅读 · 3 评论 -
手写系列之手写高斯牛顿法(基于Eigen)
重复造轮子虽然很多人不推荐,但是个人认为,不重复造一下轮子,也就不能真正的懂轮子的写作逻辑优点和考虑,更别说优化轮子.会导致像高中一听就会,一做就错的感觉,所以笔者挑选一下极具代表性的算法进行手写,收货颇丰.本代码基于高翔博士<slam14讲>,写的时候刻意的只看了要求和思路,没有看一眼作者的代码,写出来的竟然惊人的相似.连一些初始化和变量的命名都一样,变相的证明了笔者代码功力的提高(不要脸了开始).全文如下,算法基于eigen3,opencv库只用来产生随机数.代码#include &l原创 2020-07-07 18:49:51 · 1747 阅读 · 0 评论