自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++学习笔记10 ——运算符

表达式:一个或多个运算对象组成。最简单的表达式是:字面值和变量。运算符:2.1 一元运算符(作用于一个对象)  二元运算符  三目运算符2.2 运算符的优先级、结合律、运算对象的求值顺序,运算对象的转换2.3 重载运算符:如IO 的<<、>>、string,vector等的迭代器2.4 左、右值:一个左值表达式 的求值结果是一个对象或一个函数。  当一个对象被用作右值时,用的是对象的值(内容),当对象  被用作左值时,用的是对象的身份(内存中的位置)注1:使用.

2020-08-28 11:33:50 347

原创 c++学习笔记9 —— c风格字符串和多维数组

c风格字符串:字符串字面值,书写的字符串存放在数组中,并以’\0’结束;如:char a[] = {'c','+','+','\0'};//显示添加'\0';维度为4char b[] = "c++";//自动添加 '0';维度为4char c[] = {'c','+','+'};//维度为3,没有'\0'c风格字符串的函数:1)strlen§ 返回p的长度,不包括’\0’2)strcmp(p1,p2) 比较p1和p2的相等性,相等返回0,p1>p2返回正值,p1<p2返回负3.

2020-08-12 17:08:06 280

原创 c++学习笔记8 ——数组

数组也是存放类型相同的对象的容器。数组的大小确定。不能随意往数组中添加元素。数组的维度必须是一个常量表达式。类型为const、constexpr定义:定义数组的时候必须指定数组的类型,不允许使用auto关键字推断初始化:数组元素的初始化全是用{}的,除了char的数组可以"".const unsigned sz = 3;int a[sz] = {0,1,2};//列表初始化等同于int a[]={0,1,2};int b[sz] = {"0","1","2"};//列表初始化strin.

2020-08-10 22:31:49 232

原创 C++学习笔记7 —— vector容器

使用vector必须加上头文件#include <vector>vector表示一个类型相同的对象的集合,如:vector <int> I;vector <string> s;vector <类名> D;c++中既有类模板,也有函数模板,模板本身不是一个类或者函数,更像是一份说明,编译器根据模板创建一个类或者模板的过程称为实例化。vector是一个类模板。对于类模板需要提供额外的信息指定模板到底生成什么样的类,实例化提供的信息:模板名后.

2020-08-07 23:11:34 350

原创 c++学习笔记6 —— cin的小结2

在输入输出的时候慎用while(cin>>n)的形式,因为要退出循环回车是没有用的,只能使用回车再ctrl+d/z,或者输入数据类型和n不同的才会强制退出。目前还没有找到很方便的使用回车的方法退出循环。最常使用还是cin>>n如果输入的有空格的时候,使用getline()函数非常方便要留意是否有回车符在缓冲流中的问题,如:int n;string s1;cin>>n;getline(cin,s1);这时候的getline()不执行,因为cin&gt.

2020-08-07 15:38:39 227

原创 C++学习笔记6 —— cin的小结1

cin表示输入,可输入的类型:int、double等、string 、数组。。。输入int、double、数组等的时候,输入的时候使用空格隔开!空格隔开!空格隔开。  正常情况下,输入int、double都是一个一个的输入,当用vector 时需要多个输入,当输入数组时也需要多个输入。此时一定要记得空格隔开。如: vector<int> v; int n; unsigned int i; cout<<"请输入:"<<endl;.

2020-08-01 22:32:10 710

原创 C++学习笔记5 —— 标准库类型String

string是标准库中的,要使用其需要添加#include using std::string;//或者直接using namespace std;string1)定义与初始化:string s1;string s2 = s1;string s3 (s1);string s4 = "hello";string s5 ("hello");string s6 = (n,'c');//n表示个数,c代表某一个字符注:直接初始化、拷贝初始化(有等号)  2)string对象操作:a

2020-07-26 20:06:53 149

原创 C++学习笔记 4—— 处理类型与自定义数据结构

处理类型:类型别名、auto类型、decltype类型。类型别名:2种形式:1)typedeftypedef double w;这条语句不是声明变量,而是用w作为double的别名。2)usingusing SI = Sale_item;//SI是Sale_item的别名指针、引用和别名typedef char *pstring;//pstring是指向char的指针const pstring cstr = 0;//cstr是指向char的常量指针const pstring

2020-07-24 00:17:24 139

原创 C++学习笔记3——复合类型

总结:、引用:  1)普通引用:   1)必须初始化,不允许指向字面值或表达式   2)类型匹配(2种特殊情况)  2)常量引用:   1)初始化常量引用,允许任意表达式,只要    其能转化为其类型,但不能通过引用改变值int i=2;const int &r1=i;//,类型虽不同,但正确const int &r2=42;//正确int i=2;int &r1 = i;//错误,不能指向字面值     3)指向指针的引用:int i=2;*

2020-07-13 22:42:31 146

原创 c++学习笔记2——数据类型、常量、变量相关

注:c++是静态类型语言,即编译阶段检查类型一. 分类:基本数据类型可以分为算术类型和空类型。算术类型:字符、整型数、布尔值、浮点数。空类型不对应具体的值。算术类型:还可以分为:整型(包括字符,布尔,整型数)、浮点型。浮点型还可以分为单精度(float)、双精度(double)、和扩展精度(long double)类型占的空间(字节)取值范围short2216-1~216-1-1int42-31~231-1unsigned int40~232-1lo

2020-07-08 17:00:18 148

原创 C++ 学习笔记1——书店程序

对头文件的理解:1)使用标准库包含的的头文件时用< >且无后缀如:#include2)使用不属于标准库(自定义的)头文件时,使用" "。如#include “pch.h”使用标准库中的名字加using namespace std;没有这句,则要:std::cin ;std::cout的形式用作用域运算符对endl的理解:endl:操纵符,效果是结束当前行,并将与设备关联的缓冲区中的内容刷到设备中,很重要。注释:1)本行注释://2)界定符:以/开始,以/结束..

2020-07-06 19:14:51 552

原创 ORB_SLAM2的实例运行

一. 环境:win 10VM 14、Ubuntu 18.04二. 先决条件参考:https://github.com/raulmur/ORB_SLAM21)Ubuntu安装好cmake、git、opencv(2.4.3以上)、Pangolin、g20(3.1以上)、C++11(gcc,g++,ubuntu18.04自带,无需安装)以上只有Pangolin和opencv安装比较困难,其他都很简单。Pangolin的安装:Opencv的安装:https://blog.csdn.net/muyiz

2020-06-26 14:10:42 1230 2

原创 LINUX学习笔记-3-Vim的使用

vim三种模式:1)命令模式:也是进入的默认模式,不能对文件进行编辑,可以删除行,复制行,移光标,粘贴。2)编辑模式:对内容进行编辑3)末行模式:搜索,替换,保存,退出,撤销,高亮三种模式的转换:进入Vimvim 文件路径(名称)vim n 文件路径 //打开后光标在第n行vim 文件1 文件2 //打开多个输入以上,即进入了该文件的命令模式。命令模式一. 移光标:1)光标移动至行首:shift+6 (快捷键)2) 至行尾: shif

2020-06-12 20:37:50 124

原创 LINUX学习笔记-2-进阶指令

熟悉管道符|:用于过滤和扩展|前面的输出,作为|后面的输入,再过滤,再输出如:列出根目录下文件中文件名包含“y”的文件ls / | grep y再如:统计某一个目录下的文档个数ls / |wc-l 注:ls可更换成任意有输出的指令 ,完成不同的功能。如何查找某个文件的路径whereis 文件名特点:模糊,快速find / -name 文件名sudo finf / -name 文件名特点:准确,耗时。后面会详细介绍findlocate 文件名特点:好用,但需要更.

2020-06-12 19:11:45 130

原创 LINUX 学习笔记-1-基础指令

指令的一般格式:指令 [选项] [操作对象]man 指令 //查看该指令手册eg: man ls //查看ls指令的手册,按q退出开关机shutdown -h now //关机shutdown -r now //重启reboot //重启logout //注销查看文件ls //罗列本目录下的所有文件及文件夹(蓝色)ls 路径 //列出该路径下的所有文件及文件夹ls -l 路径 //以列表的形式显示ls -la 路径 //显示包括

2020-06-12 17:59:01 137

原创 SLAM14讲学习笔记 —— 第六讲 —— 非线性优化

一. 状态估计问题经典的SLAM/模型由2个方程构成:如上式所示:上面的为运动方程;下面的为观测方程。参数:k:时刻xk:k时刻的相机位姿。(用变换矩阵或李代数表示)uk:输入(运动传感器的读数)yj: 相机位姿为xk时,观测点的路标点zk,j:相机位姿为xk时,对路标yj进行了一次观测,对应到图像上的像素位置。wk:噪声项vk,j:噪声项f() 、h(): 某函数本讲主...

2020-04-15 22:46:03 912

原创 Slam 14讲学习笔记 —— 第五讲 —— 相机与图像

本讲主要搞清楚相机的针孔模型、透镜的畸变模型。从而弄清成像(外部的三维点投影到相机内部成像平面)及相机的内外参。一. 相机模型:针孔(小孔)成像模型:上图的几何模型如下:O—x—y—z为相机坐标系(z指向相机的前方,x指向相机的右方,y指向下,O为相机的光心)。成像平面O’—x’—y’,现实世界的P点经过相机光心(小孔)投影后在成像平面上为像点P’。设P点坐标为[X,Y,Z],P’坐标为...

2020-04-03 18:28:46 1490

原创 Slam 14讲学习笔记 —— 第四讲 —— 李群和李代数

上一讲介绍了,相机在三维空间的运动的表示:包括旋转矩阵、变换矩阵、旋转向量、四元数。但是仅仅表示出来还不行,因为在现实情况中,这些纯数学的表示和相机的真实运动存在有误差。需要对其进行优化 —— 即解决什么样的相机位姿最符合当前的观测数据。回顾上一讲:三维中,旋转矩阵构成了特殊正交群SO(3);变换矩阵构成了特殊欧式群SE(3)。群的定义:某一集合加上某一运算。李群的定义:具有连续性质的群...

2020-04-01 22:51:16 526

原创 Slam 14讲学习笔记 —— 第3讲 —— 三维空间刚体运动

注:本文是阅读了高翔博士的slam 14讲所记的笔记,内容大多来自其书。一个刚体(在SLAM中可简化理解为相机)在三维空间中的运动使用平移和旋转来描述。1.相机的旋转和平移如何描述:先说旋转::设某个单位正交基 (e1,e2,e3) (相当于不变的世界坐标系)经过一次旋转,变成了 (e′ 1,e′ 2,e′ 3)(相当于相机的坐标系)。那么,对于同一个向量 a(注意该向量并没有 随着坐标系...

2020-03-31 22:30:44 415

原创 slam14讲 —— slam的环境搭建

一.物理机的环境:win10虚拟机的版本:VM 14选择的Linux版本:Ubuntu 16.04、Ubuntu 18.04注:虚拟机及Ubuntu的安装参照百度,博客,软件安装管家等。二.1 . Vmware tools安装:点击虚拟机,选择安装VMware tools之后具体可百度:2 . cmake的安装:打开终端:sudo apt-get install cma...

2020-03-30 21:38:24 1475 1

原创 Cmake的库的理解

理论:C++中,只有带有main函数的文件才可生成可执行程序,其他的代码,我们把它打包,供其他程序调用,这就是库。如:opencv库、Eigen库。Linux中,库文件分为静态库与共享库。静态库以.a后缀结尾,共享库以.so后缀结尾。静态库每被调用一次生成一个副本,共享库只有一个副本。只要有了头文件与库文件,我们就可以使用这个库了 。使用Cmake 生成一个库,并使用:...

2020-03-24 22:55:06 466

原创 如何使用Cmake相对完整的构建工程——INSTALL的理解。

环境:vm14、ubuntu18.04、cmake3.15.7一个相对完整的工程,如T2工程。路径为:/home/zaozao/cmake practice/T2注:要安装的工程为:/home/zaozao/cmake practice/T2、及其中的内容。要将工程安装在的路径为:/tem/t2T2中首先应新建CMakeLists.txt文件,新建src(放工程源代码(此处为ma...

2020-03-23 23:01:24 1380

原创 Kdevelop在ubuntu16.04的使用。

环境:VM14、已安装好cmake的ubuntu16.04、kdevelop4.7.3自己新建工程:打开kdevelop,点击new project。根据需求选择QT(我没用过)或Standrard,Terminal。Application Name: 填工程的名称。此处为ch1。Location: 选择位置。点击next,此处为/home/zaozao2/project出现:点...

2020-03-18 13:21:57 577

原创 Linux 常用的命令

环境:VM 14、Ubuntu16.04、Ubuntu18.04检查网络:ping baidu.comping 网关/ipping 域名服务器注:使用:ifconfig用于查看IP地址,配置和显示Linux内核中网络接口的网络参数。使用:netstat -rn查看网关(gateway)注:windows可以在cmd中输入:ipconfig /all查看...

2020-03-18 12:19:02 3419

原创 Ubuntu16.04的opencv3.4.5的下载,编译与安装。编译的问题的解决(opencv2/xfeatures2d/cuda.hpp:no such file)。

Ubuntu16.04的opencv3.4.5的下载,编译与安装。编译的问题的解决。环境:VM 14、已安装好cmake的ubuntu16.04。(如未安装cmake,可以自行百度,很简单)安装好了,可以在终端输入 cmake --version 查看版本。下载opencv3.4.5和opencv_contrib-3.4.5(版本需要相同)opencv下载地址:http://o...

2020-03-17 20:36:23 1087

原创 **卷积相关的图像边界问题*

卷积相关的图像边界问题在对图像进行卷积操作时对图像边界常采用以下措施:1)忽略边界。包括两种忽略方式:第一种:保持边界数值不变,因为处理过的像素与未处理的像素的差别,会有伪影。第二种:边界用固定数值代替(常用0),会导致图像比原始图像小。且不利于后续操作2)用0填充,对图像矩阵进行补零,会出现不希望的伪影,伪影是变暗的边界,伪影的宽度正比于卷积模板的尺寸。(matlab中调用函数imf...

2019-03-07 11:02:04 3197

空空如也

空空如也

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

TA关注的人

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