自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

@司南牧|知乎|博客|易懂教程|李韬

他是华工机器人硕士,蓝桥杯重点本科组国奖获得者,知乎@司南牧 有百万级阅读量,专注初学者教程跨界机器人,人工智能,算法不再困难.

  • 博客(7)
  • 资源 (2)
  • 收藏
  • 关注

原创 如何高效的统计最长回文子串的长度? Manacher马拉车算法通俗讲解与实践教程

待解决问题描述给定一个字符串abcbddacaddx要求输出这个字符串的最长回文子串的长度。解释:子串是指从这个字符串任意地方截取一段任意长度的字符串。回文子串指的是前面所提到的截取出的子串中是对称的那种子串。比如“bcb”就是对称。如果我们是要求出最长回文子串那么有一个简单的方式就是将原字符串逆序,然后匹配原字符串与逆序后的字符串之间最长公共子串。但是现在我们只需要统计最长回文子串的长...

2019-11-25 10:03:16 186

原创 c++易错点总结(1): cpp中的explicit的作用,为何尽量使用explicit关键字

在c++种explicit关键字只能用来修饰构造函数。禁止它自动调用拷贝初始化。什么是拷贝初始化?举个例子:现在我们不使用explicit关键字看看会发生什么?我们发现下面这个代码明明我们给函数f()传递的参数是一个整数,但是编译器却自动调用了类A的构造函数,这种就叫做拷贝初始化。这是超出预期的。如果你不希望这样那么请在构造函数前面加上explicit关键词禁止编译器这种自动调用拷贝初始化的行...

2019-11-17 19:13:03 1393

原创 [最新有效]高翔RGB-D SLAM中最新版本g2o报错解决方案

报错一共有两个原因:初始化g2o的接口已经发生变动需要修改解决方案:以下是最新的初始化g2o的代码(2019年11月15日14:17:40)// 初始化g2o typedef g2o::BlockSolver< g2o::BlockSolverTraits<6,3> > Block; // pose维度为 6, landmark 维度为 3 std::un...

2019-11-15 14:18:56 496

原创 如何理解视觉SLAM视觉里程计VO:如何从图片中还原计算出相机的三维位姿算法教程Python代码实践

视觉里程计是什么?视觉里程计有什么用?需要我们求解什么?视觉里程计(Visual Odometry,VO) 算法是什么?视觉SLAM中的视觉里程计算法就是指的是通过某个算法根据前后两张图片求出当前时刻内相机位置和姿态相对上个时刻相机位置和姿态的变化的那种算法。这个就和出租车的里程计一样记录每个时刻的车轮速度及其滚动距离类似。只不过视觉里程计算法是求相机在各个时刻的位置姿态,所以才叫做视觉里程计算...

2019-11-08 19:36:37 1682

原创 如何通俗理解相机标定公式推导与Python编程实践教程

今日疯言疯语:学习一个算法重要的就是弄清楚这个算法要解决怎样的问题,它的已知量(输入)是什么,待求解的未知量(输出)是什么。如果这三个问题没找到答案,就去学算法细节只会浪费大量时间。——知乎@司南牧相机标定(Calibration)做了什么事?为何很多地方都需要相机标定?相机标定主要是为了通过对某个特殊形状的物体拍照从而找到照片中的像素点坐标与现实世界中的三维坐标之间的变换关系。这个变换关...

2019-11-03 15:33:01 583

原创 编译orb slam遇到的一些bug和错误解决方案

error usleep not in this scope解决方案:在你报错的那些文件里面加上#include<unistd>collect2: error: ld returned 1 exit statusCMakeFiles/Makefile2:141: recipe for target 'CMakeFiles/mono_tum.dir/all' failedm...

2019-11-02 19:25:43 1522

原创 ubuntu cmake Fatal error: iostream: No such file or directory

报错描述:ubuntu cmake Fatal error: iostream: No such file or directory报错原因:造成这个报错的原因是因为iostream并不是c语言里面的写法。而你的文件名是xx.c,cmake看你文件是.c结尾所以它认为这是c语言程序,事实上你写的是cpp代码。解决方案:将xxx.c文件名改为xxx.cpp报错就会消失。...

2019-11-01 20:14:58 7569 1

驯服烂代码

Kent Beck、Martin Fowler、Michael C. Feathers、Robert C. Martin、Joshua Kerievsky、Gerard Meszaros等大师们的传世著作为如何提升编程技艺和代码质量提供了思想和原则上的指导,本书则为实践和融合这些思想、原则提供了过程和方法上指导。本书通过编程操练的方式讲述了如何用TDD(测试驱动开发)的方法来驯服烂代码,通过结对编程的对话形式展示了驯服烂代码的完整过程,将驯服烂代码所需要的思想、态度、习惯、方法和技艺完全融入编程操练实践中,是目前最具实践指导意义的驯服烂代码的著作。, 全书共20章,分为四个部分:第一部分(第1~10章)首先通过测试后行和测试先行两种方法完成了一个名为“码农酒店”(世界时钟)的编程操练题目,然后对这两种方法进行对比,引出了烂代码的概念,读者能非常直观看出哪一种方法更容易写出烂代码。第二部分(第11~15章)通过一个名为Trivia(答题闯关游戏)的经典编程操练题目详细讲述了驯服一段烂代码的过程,首先讲解了代码腐臭的识别和记录,然后讲解了如何通过一系列的重构来清除这些腐臭。第三部分(第16~18章)通过三个编程操练题目详述了编写真正的单元测试的过程,首先讲解了用提取接口的办法编写Stub来进行单元测试,以及用子类化并覆写方法的办法编写Mock来进行单元测试,然后讲解了如何将被测类与文件系统之间的这种不适用于单元测试的耦合,转化为被测类与字符串之间这种适合与单元测试的耦合。第四部分(第19~20章)总结了驯服烂代码的步骤及方法,首先讲解了TDD开发方法的一种实现:I-EPP-TR方法,该方法中的全面重构的概念对传统的重构概念进行了扩展,然后讨论了如何才能将前面所讨论的良好的编程方法形成习惯并固化下来。

2017-04-15

汇编编译器

汇编集成开发环境

2016-06-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除