自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 4、创建第一个仓库并配置local用户信息

把已有的项目代码纳入Git管理cd 项目代码所在的文件夹git init 2.新建的项目直接使用Git管理git init MyProjectcd MyProjecttouch READMEgit add READMEgit commit -m'Add readme'git status

2020-09-10 20:31:22 135

原创 2、git最小配置

git config --global user.name “your_name”git config --global user.email “[email protected]”config的三个作用域#只对某个仓库有效git config --local #对当前用户所有仓库有效git config --global#对系统所有登录的用户有效git config --system 查看config的配置git config --list --local

2020-09-10 20:16:26 135

原创 1、安装git

安装git官网安装教程官网安装教程安装教程在 Linux 上安装如果你想在 Linux 上用二进制安装程序来安装基本的 Git 工具,可以使用发行版包含的基础软件包管理工具来安装。 以 Fedora 为例,如果你在使用它(或与之紧密相关的基于 RPM 的发行版,如 RHEL 或 CentOS),你可以使用 dnf:$ sudo dnf install git-all如果你在基于 Debian 的发行版上,如 Ubuntu,请使用 apt:$ sudo apt install git-al

2020-09-10 19:58:06 449

原创 6、ORB描述子steer brief计算方法

6、ORB描述子steer brief计算方法computeDescriptors函数分析computeDescriptors函数分析经过计算好灰度质心后,并且经过高斯模糊,对每一层的特征点计算描述子//注意这是一个不属于任何类的全局静态函数,static修饰符限定其只能够被本文件中的函数调用/** * @brief 计算某层金字塔图像上特征点的描述子 * * @param[in] image 某层金字塔图像 * @param[in] keypoints

2020-08-30 23:33:32 655

原创 16、初始化三维点来构造初始化地图

初始化三维点来构造初始化地图Tracking::CreateInitialMapMonocular()成员函数KeyFrame构造函数作用Tracking::CreateInitialMapMonocular()成员函数void Tracking::CreateInitialMapMonocular(){ // Create KeyFrames 认为单目初始化时候的参考帧和当前帧都是关键帧 KeyFrame* pKFini = new KeyFrame(mInitialFrame,mp

2020-08-30 23:04:28 395

原创 5、ORB特征点方向计算实现旋转不变性

ORB特征点方向计算实现旋转不变性computeOrientation分析computeOrientation分析提取特征点后就需要计算它的描述子,前面已经根据圆的分析找出了它的计算区域,现在只需要依据对称性计算并调用 IC_Angle函数/** * @brief 计算特征点的方向 * @param[in] image 特征点所在当前金字塔的图像 * @param[in & out] keypoints 特征点向量 * @param[in]

2020-08-30 19:52:07 1610

原创 4、特征点四叉树均匀化分配策略

特征点四叉树均匀化分配策略ComputeKeyPointsOctTree函数分析均匀化特征点DistributeOctTree函数ComputeKeyPointsOctTree函数分析//计算四叉树的特征点,函数名字后面的OctTree只是说明了在过滤和分配特征点时所使用的方式void ORBextractor::ComputeKeyPointsOctTree( vector<vector<KeyPoint> >& allKeypoints) //所有的特征点,这里第

2020-08-30 18:33:59 2159 1

原创 3.特征提取仿函数、图像扩充金字塔

特征提取仿函数、图像扩充金字塔TrackMonocular函数TrackMonocular函数系统构建以后,获取加载的每一帧图像对其进行特征提取,会使用一个对象函数(也就是仿函数进行调用)//同理,输入为单目图像时的追踪器接口cv::Mat System::TrackMonocular(const cv::Mat &im, const double &timestamp){ if(mSensor!=MONOCULAR) { cerr <<

2020-08-30 17:10:21 466

原创 2、图像金字塔特征点数目、灰度质心圆索引

图像金字塔特征点数目、灰度质心圆索引ORBSLAM单目系统模块入口tracking线程灰度质心法ORBSLAM单目系统模块入口mono_tum.cc的main函数开始,接收三个参数int main(int argc, char **argv){ if(argc != 4) { cerr << endl << "Usage: ./mono_tum path_to_vocabulary path_to_settings path_to_seq

2020-08-30 15:27:42 669

原创 6-9、async、future、packaged_task、pro

一:std::async、std::future创建后台任务并返回值希望线程返回一个结果;std::async是个函数模板,用来启动一个异步任务,启动起来一个异步任务之后,他返回一个std::future对象,std::future是个类模板。什么叫”启动一个异步任务“,就是自动创建一个线程并开始执行对应的线程入口函数,它返回一个std::future对象,这个std::future对象里边就含有线程入口函数所返回的结果(线程返回的结果);我们可以通过调用future对象的成员函数get()来获取。

2020-08-14 10:30:38 103

原创 6.5、互斥量概念、用法、死锁演示及解决详解

这里写目录标题一:互斥量(mutex)的基本概念二:互斥量的用法三:死锁总结:一:互斥量(mutex)的基本概念保护共享数据,操作时,某个线程用代码把共享数据锁住、操作数据、解锁,其他想操作共享数据的线程必须等待解锁,锁定住,操作,解锁。互斥量是个类对象。理解成一把锁,多个线程尝试用lock()成员函数来加锁这把锁头,只有一个线程能锁定成功(成功的标志是lock()函数返回),如果没锁成功,那么流程卡在lock()这里不断的尝试去锁这把锁头;class A{public: //把收到的消息(玩

2020-08-13 15:51:32 178

原创 6.1、并发基本概念及实现,进程、线程基本概念

这里写目录标题并发、进程、线程的基本概念和综述1.1、并发1.2、可执行程序1.3 进程:大家已经知道了可执行程序是能够运行。1.4、线程总结线程:1.5、学习心得二:并发的实现方法2.1、多进程并发2.3、总结三:C++11新标准线程库并发、进程、线程的基本概念和综述并发,线程,进程的要求必须掌握;1.1、并发两个或更多的任务(独立的活动)同时发生(进行):一个程序同时执行多个独立任务;以往计算机,单核cpu(中英处理器):某一个时刻只能执行一个任务:由操作系统调度,每秒钟进行多次所谓的“任务切

2020-08-12 11:11:34 164

原创 3.10、RTTI、dynamic_cast、typeid、虚函数表

这里写目录标题一级目录一级目录#include<iostream>#include<cstdlib>#include<string>using namespace std;class Human{public: int age; string name;public: //构造函数 Human(); Human(int age, string name); //析构函数 ~Human() { cout << "Hum

2020-08-11 13:43:57 138

原创 3.9、友元函数、友元类、友元成员函数

友元函数、友元类、友元成员函数普通函数做类友元函数友元类三级目录普通函数做类友元函数#include<iostream>#include<cstdlib>#include<string>#include<vector>using namespace std;class Human{private: int age; string name;public: //构造函数 Human(); Human(int age, stri

2020-08-11 13:42:16 152

原创 3.8、基类指针、虚纯虚函数、多态性、虚析构

基类指针、虚纯虚函数、多态性、虚析构虚函数与多态虚函数析构函数一般写成虚函数虚函数与多态#include<iostream>#include<cstdlib>#include<string>#include<vector>using namespace std;class Human{public: int age; string name;public: //构造函数 Human(); Human(int age, stri

2020-08-11 09:29:46 160 1

原创 8.8、适配器概念、分类、范例及总结

适配器概念、分类、范例及总结适配器#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include <set>#include <map>#include <list>#include <array>#include <functiona..

2020-08-10 17:12:39 179

原创 8.7、函数对象回顾、系统函数对象及范例

函数对象回顾、系统函数对象及范例可调用队形与标准库中定义的可调用对象)可调用队形与标准库中定义的可调用对象#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include <set>#include <map>#include <list>#include <arr

2020-08-10 16:54:50 111

原创 8.6、算法概述、内部处理、使用范例

算法概述、内部处理、使用范例算法概述与一些典型的算法应用举例)算法概述与一些典型的算法应用举例#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include <set>#include <map>#include <list>#include <array>

2020-08-10 15:26:14 126

原创 8.5、迭代器的概念和分类

迭代器的概念和分类迭代器概述与迭代器分类)迭代器概述与迭代器分类#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include <set>#include <map>#include <list>#include <array>using namespac

2020-08-10 14:00:41 143

原创 8.4、分配器概述、使用,工作原理说

分配器概述、使用,工作原理说分配器的概念和一个简单分配器原理核心代码)分配器的概念和一个简单分配器原理核心代码#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include <list>using namespace std;int main(void){ //list<int,

2020-08-10 13:41:28 1322

原创 8.3、容器的说明和简单应用例续

容器的说明和简单应用例续deque和stack一些常见的容器deque和stack一些常见的容器#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include<queue>#include<map>#include <set>#include <unordered_s

2020-08-10 13:27:54 82

原创 8.2、容器分类,array、vector容器精解

容器分类,array、vector容器精解容器分类和array容器的使用vector容器容器分类和array容器的使用#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>#include <array>using namespace std;int main(void){ //包含5个元素的数组

2020-08-10 13:13:08 100

原创 8.1、STL总述、发展史、组成,数据结构谈

STL总述、发展史、组成,数据结构谈概念推荐书籍算法和数据结构数据结构浅谈数据结构学习方法推荐书籍STL发展史和各个版本标准库的使用说明STL组成部分概念推荐书籍算法和数据结构数据结构浅谈数据结构学习方法推荐书籍STL发展史和各个版本标准库的使用说明STL组成部分/* * (1)一些概念 * 1.c++标准库 standard library c++编译器自带,可以在代码中包含头文件直接使用。 * 引入的目的就是解决一些反复使用的功能,我们直接使用即可。 * 2.c++标准模板库

2020-08-10 13:09:40 118

原创 5.7返回unique_ptr、删除器、尺寸、智能指针

返回unique_ptr、删除器、尺寸、智能指针unique_ptr使用方法总结和智能指针概述unique_ptr使用方法总结和智能指针概述#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>using namespace std;unique_ptr<string>myFunction(){ u

2020-08-09 19:11:43 205

原创 5.5shared_ptr使用场景、陷阱、性能分析、使用建议

shared_ptr使用场景、陷阱、性能分析、使用建议shared_ptr常用操作与使用陷阱shared_ptr常用操作与使用陷阱#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>using namespace std;//测试类class CT:public enable_shared_from_this&l

2020-08-09 16:39:34 156

原创 5.4 weak_ptr概述、weak_ptr常用操作、尺寸

weak_ptr概述、weak_ptr常用操作、尺寸weak_ptr概述weak_ptr概述#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>using namespace std;int main(void){ //weak_ptr一般是使用shared_ptr来创建爱女 auto p1 = make_

2020-08-09 16:38:14 159

原创 5.3shared_ptr常用操作、计数、自定义删除器等等

shared_ptr常用操作、计数、自定义删除器等等share_ptr的引用和减少与常见操作share_ptr的引用和减少与常见操作#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <memory>using namespace std;class A{public: A() {} ~A() { }};

2020-08-09 12:48:45 176

原创 5.2new、delete探秘,智能指针概述、shared_ptr

new、delete探秘,智能指针概述、shared_ptrnewdelete探秘new、delete做了什么operator new()和operator delete()基本new如何记录分配的内存大小供delete使用申请和释放一个数组为什么new/delete,new[]/delete[]要配对使用智能指针概述和shared_ptr基础常规初始化make_shared函数newdelete探秘new、delete做了什么operator new()和operator delete()基本ne

2020-08-09 11:12:33 216

原创 5.1内存管理、创建新工程观察内存泄漏

内存管理、创建新工程观察内存泄漏一级目录一级目录#include<iostream>#include<cstdlib>#include<string>#include<vector>using namespace std;int main(void){ static int j = 23;//局部静态对象,在静态区分配内存 int i = 10;//由系统进行分配和释放 int *p1 = new int;//动态内存分配,初

2020-08-08 22:05:18 83

原创 4.8可变参模板续、模板模板参数

这里写目录标题可变参数模板模板模板参数可变参数模板模板模板参数#include<iostream>#include<cstdlib>#include<string>#include<vector>#include <list>using namespace std;//从类模板引入//template<typename T,typename U>//t u叫模板参数,更具体叫类型模板参数(前面有typename)

2020-08-08 21:13:53 105

原创 4.7可变参模板

可变参模板可变参模板的例子可变参函数模板参数包的展开_一个参数加一包函数容易解包可变参类模板_通过继承递归展开调用可变参类模板_通过递归组合方式展开函数包可变参类模板_通过tuple和递归调用展开函数包可变参模板的例子#include<iostream>#include<cstdlib>#include<string>#include<vector>using namespace std;//可变参函数的简单例子/* * 1.我么一般吧a

2020-08-08 19:28:55 102

原创 4.6 模板全特化、偏特化(局部特化)

这里写目录标题模板全特化、偏特化(局部特化)类型模板偏特化_局部特化_模板参数数量上局部特化_范围上函数模板全特化函数模板不能偏特化模板全特化、偏特化(局部特化)#include<iostream>#include<cstdlib>#include<string>#include<vector>using namespace std;template<typename T,typename U>class TC//泛化的tc类模板

2020-08-08 18:45:41 130

原创 4.4成员函数模板、显式实例化、声明

成员函数模板、显式实例化、声明普通类的成员函数模板类模板的成员函数模板模板显式实例化、模板声明普通类的成员函数模板#include<iostream>#include<cstdlib>#include<string>#include<vector>using namespace std;class A{public: template <typename T> void myFunction09(T tem)//成员变量

2020-08-08 17:04:51 155

原创 4.3用typename场合、默认模板参数、趣味写法分析

@TOC用typename场合用在模板函数类型成员前表示是一个类型#include<iostream>#include<cstdlib>#include<string>#include<vector>using namespace std;//求字符串的长度template<typename T>typename T::size_type GetLength(const T&c){ if (c.empty())

2020-08-08 15:58:43 297

原创 4.1模板概念、函数模板定义和调用

模板概念、函数模板定义和调用概述函数模板定义函数模板调用非类型模板参数概述// project4.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;int funcAdd(int a, int b) { return a + b;}//函数模板template <class T>T funcAdd(T a, T b) { return a + b;

2020-08-08 14:26:46 251

原创 3.6重载运算符、拷贝赋值运算符、析构函数

重载运算符、拷贝赋值运算符、析构函数重载运算符拷贝赋值运算符析构函数(a)函数重载(b)构造函数的成员初始化(a)析构函数的成员销毁(a)new对象和delete对象重载运算符==,<=,>=,++,(),<<,>>,=,+,-比较operator ==有些时候生成类的时候,我们没有重载=运算符,系统会自动生成一个拷贝赋值运算符析构函数(a)函数重载(b)构造函数的成员初始化(a)析构函数的成员销毁(a)new对象和delete对象...

2020-08-06 10:34:12 108

原创 3.5拷贝构造函数

拷贝构造函数拷贝构造函数从一个函数返回一个对象拷贝构造函数类对象的拷贝是每个成员变量逐次进行拷贝()默认情况下会有赋值拷贝函数和拷贝构造函数(赋值构造函数 ),在一定的时机被系统自动调用 Time::Time(const Time& tmptime,int a){ //建议拷贝构造函数带const }带有指针成员变量时注意浅拷贝和深拷贝从一个函数返回一个对象会发生拷贝构造函数调用...

2020-08-01 14:23:27 78

原创 3.4类内初始化、默认构造函数、=default

类内初始化、默认构造函数、=default类相关非成员函数类内初始化const成员变量的初始化默认构造函数=default,=delete(显示禁用某个函数);类相关非成员函数普通函数,但放在类文件中,类内初始化C++11才支持,给成员变量赋值成一个初始值(定义时)const成员变量的初始化初始化列表(定义时必须赋值)(不能在构造函数中赋值)默认构造函数编译器自动分配一个无参构造函数 (没有定义情况下,不管是无参还是有参)=default,=delete(显示禁用某个函数);编译器为这种

2020-08-01 11:54:27 125

原创 3.3inline、const、mutable、this、static在类中的使用

inline、const、mutable、this、static在类中的使用在类定义中实现成员函数inline(声明就要写全)成员函数末尾加constmutable返回自身对象的引用static成员在类定义中实现成员函数inline(声明就要写全)成员函数末尾加constmutable返回自身对象的引用static成员...

2020-08-01 00:00:35 87

原创 3.2构造函数介绍

构造函数介绍构造函数形式多个构造函数函数默认参数隐式转换和explicit构造函数初始化列表构造函数形式(1) 没有返回值(2)不可以手动调用构造函数(3)一般声明为public(4)多个参数时,声明对象时也要带上这些参数(5)可以有多个构造函数(6)系统自动提供一个无参构造函数多个构造函数对象拷贝(深拷贝和浅拷贝,中间有临时对象的拷贝)函数默认参数,前面的可以不拥有默认值,默认值只能放在声明中,且只能在后面使用并且连续,默认参数会根据是否缺省进行替换隐式转换和explicit编译

2020-07-31 23:33:14 93

空空如也

空空如也

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

TA关注的人

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