自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

格物致知

笃学尚行,至于至善。专注!专注!专注!

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

原创 资料整理(资源)

主板适配网络信息大全http://bios.uqidong.com/

2021-05-27 09:21:21 37

原创 SLAM资源整理

资源整理EKFhttps://simondlevy.academic.wlu.edu/

2021-05-23 13:49:05 23

原创 Git学习记录

日常使用只要记住下图6个命令即可,但是学海无涯啊常用 Git 命令清单。几个专用名词的译名如下。Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库使用 tree .git查看文件关系一、新建代码库二、配置Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置)...

2020-03-19 20:34:36 165

原创 SLAM学习,小白入门到殿堂级大牛资料整理

总结一下我接触过的SLAM算法吧,主要集中在visual slam:特征法:ORB SLAM https://github.com/raulmur/ORB_SLAM2优势: 在静态环境下定位准确,稳定, 单目和双目版本都可以达到实时(高于10frames/s)。代码可读性强,易扩展, 网上也有实现和imu融合的版本。劣势:建的地图点云稀疏。 运行速度方面,因为提特征点的时间有瓶...

2018-06-14 11:05:41 8945 2

原创 VINS-mono详细解读与实现

VINS-mono详细解读VINS-mono详细解读前言Vins-mono是香港科技大学开源的一个VIO算法,https://github.com/HKUST-Aerial-Robotics/VINS-Mono,是用紧耦合方法实现的,通过单目+IMU恢复出尺度,效果非常棒。感谢他们开源,我从中学到了非常多的知识。源码总共有15000多行,我在通读完程序之后,结合参考文献,把程序背后...

2018-06-14 10:24:23 15038 4

原创 视觉SLAM学习(三)--------SLAM 综述

SLAM概述参考资料分享来自本人博客:https://blog.csdn.net/Darlingqiang/article/details/78840931SLAM一般处理流程包括track和map两部分。所谓的track是用来估计相机的位姿,也叫front-end。而map部分(back-end)则是深度的构建,通过前面的跟踪模块估计得到相机的位姿,采用三角法(triangulation...

2017-12-26 13:00:42 15958 2

原创 视觉SLAM学习(一)------ORB-SLAM论文

ORB-SLAM: a Versatile and Accurate Monocular SLAM System原文发表于:IEEE Transactions on Robotics (Impact Factor: 2.43). 10/2015摘要:本文主要讲了ORB-SLAM,一个基于特征识别的单目slam系统,可以实时运行,适用于各种场合,室内的或者室外的,大场景或小场景。系统具有...

2017-12-19 11:16:45 6370

原创 【C++】重载运算符与类型转换

1.重载运算符重载运算符特点重载运算符本质上是一次函数调用除了operator() 运算符调用外,其他重载运算符不能含有默认参数。当重载的运算符是成员函数时,this绑定到左侧运算对象。成员运算符函数(显式)的参数数量比运算对象少一个。运算符重载列表该将运算符定义为成员函数还是普通成员?参考是什么,如下。Exercise 14.1: 重载操作符与内置操作符有哪些不同?重载操作符在哪些方面与内置操作符相同?不同点我们可以直接调用重载的operator函数。重载操作符

2021-06-19 14:54:47 4 1

原创 【C++】浅析析构函数(基类中)为什么要写成虚基类?

为什么有了虚析构函数,就能先调用子类的析构函数?class A { virtual ~A(){}};class B : A { virtual ~B(){}};A *p = new B();delete p; 唯一差别是,每个析构函数结束时会自动(隐含地)调上父类的析构函数,而普通虚函数并不会 唯一差别是,每个析构函数结束时会自动(隐含地)调上父类的析构函数,而普通虚函数并不会 。本质上 当类里面有定义虚函数时,编译器会给类增加一个虚函数表,里面来存放虚函数指针,这样就增加

2021-06-18 10:05:55 10

原创 【SLAM后端】—— ceres优化相机位姿求解

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c36jVcYv-1623981572084)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1610524959301.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6DKm35J1-1623981572086)(C:\Users\Administrator\AppData\Roaming\Typora

2021-06-18 10:00:53 8

原创 【C++】动态内存管理/move/以及移动构造与移动赋值运算符

动态内存管理类对象移动与右值引用int a;int b;a = 3;b = 4;a = b;b = a;// 以下写法不合法。3 = a;a+b = 4;在 c 语言中, 确切地说应该是左值表达式,右值表达式:表达式是有值的,值是有类型的,值是动态的,类型是静态的,这是基本的概念 。通常来说有名字的变量就是左值(如上面例子中的 a, b),而由运算操作(加减乘除,函数调用返回值等)所产生的中间结果(没有名字)就是右值,如上的 3 + 4, a + b 等。我们暂且可以认为:左值就

2021-06-18 09:58:34 2

原创 【C++】原子操作(atomic)与无锁编程学习记录

lambdastd::bind智能指针使用深度库基于数据结构与算法的优化atomic 操作与多线程数据安全 原子内存操作设计模式:单例模式C++11原子操作与无锁编程https://www.jianshu.com/p/3e122ee901c5今天我将就C++11多线程中的atomic原子操作展开讨论;比较互斥锁,自旋锁(spinlock),无锁编程的异同,并进行性能测试;最后会讨论一下内存序的问题;为了流畅阅读你最好先熟悉一下C++11 Atomic的基本操作英文文档,这里还有一份我觉得做

2021-06-18 09:50:08 4

原创 【C++】LINK类型错误分析记录

LINK类型错误情况1:根据生成路径,查找是否成功生成静态库/动态库,一般在./bin文件中。情况2:是否在CMakeLists中target_link_libraries中添加链接静态库操作情况3:是都存在类模板,需要实例化,接口函数,这种情况很隐蔽,一般不容易想到。情况4:是否需要添加相关的头文件情况5:是否添加多余的头文件 ,导致头文件循环引用的问题,这种情况很隐蔽,一般不容易想到。情况6:没有成功生成静态库或者静态库,这种情况下查找是否缺少依赖,是否程序缺少头文件,是否是程序

2021-06-18 09:45:42 32

原创 【OpenCV】OpenCV中积分图函数与应用

OpenCV中积分图函数与应用一:图像积分图概念积分图像是Crow在1984年首次提出,是为了在多尺度透视投影中提高渲染速度。随后这种技术被应用到基于NCC的快速匹配、对象检测和SURF变换中、基于统计学的快速滤波器等方面。积分图像是一种在图像中快速计算矩形区域和的方法,这种算法主要优点是一旦积分图像首先被计算出来我们可以计算图像中任意大小矩形区域的和而且是在常量时间内。这样在图像模糊、边缘提取、对象检测的时候极大降低计算量、提高计算速度。第一个应用积分图像技术的应用是在Viola-Jones的对象检测

2021-06-15 16:10:06 9

原创 【C++】拷贝控制与资源管理

1. 拷贝控制与资源管理管理类外资源的类必须定义拷贝控制成员。如P447中所见,这种类需要通过析构函数来释放对象所分配的资源。一旦一个类需要析构函数,那么几乎可确定它也需要一个拷贝构造函数和一个拷贝赋值函数。明确拷贝语义:可以定义拷贝操作,使类的行为看起来像一个值或者一个指针。类的行为像一个值,意味着他应该有自己的状态。深拷贝,副本与本身独立。行为像指针的类则是一个共享状态。浅拷贝,副本与原对象使用相同的底层数据。改变副本也会改变原对象,反之亦然。CP5_ex13_11_h 实例1:我们将在下一节

2021-06-14 12:05:38 20

原创 【C++】拷贝,赋值与构造

1. 拷贝构造函数/合成拷贝构造函数(copy constructor)1.1 定义:复制构造函数是一个构造函数,它的第一个参数是对类类型的引用,任何附加参数都有默认值。1.2 如下情况使用:case 1:使用 = 定义变量case 2: 将对象作为参数传递给非引用类型的参数case 3: 从具有非引用返回类型的函数返回一个对象case 4: 括号初始化数组中的元素或聚合类的成员case 5:一些类类型还为它们分配的对象使用复制初始化。1.3 形如下:拷贝构造函数的第一个参数必须是类.

2021-06-10 10:24:39 16

原创 【C++】动态内存与智能指针实战:文本查询程序(设计set,map,智能指针的应用)

###文本查询程序文本查询程序本版1// The TextQuery and QueryResult classes use only capabilities that we have already covered. // Without looking ahead, write your own versions of these classes.#include <string>#include <vector>#include <memory&g

2021-06-09 00:03:10 7

原创 【C++】动态内存与智能指针

动态内存动态内存使用的三种原因程序不知道自己需要多少对象程序不知道所需对象的准确类型程序需要在多个对线之间共享数据定义StrBlob类如下Exercise 12.2 StrBlob():data(std::make_shared<vector<string>>()) { } StrBlob(std::initializer_list<string> il):data(std::make_shared<vector<string>>

2021-06-09 00:01:21 6

原创 【C++】关联容器学习记录

关联容器特性pair 类型Write a program to read a sequence of strings and ints , storing each into a pair. Store the pairs in a vector. P381,11.12make_pair 或者pair的4种初始化方式。 Exercise 11.12: #include <vector>#include <utility>#include <stri

2021-06-03 10:20:40 16 1

原创 【C++】algorithm具体操作记录

find寻找特定元素位置int main(char argc, int* argv[]) { vector<int> intVec = { 0,1,1,1,1,2,3,4,5,6,7,8,9 }; if (pos != intVec.end()) cout << "The value 5 exists,and its position is " << distance(intVec.begin(), pos) + 1 << endl; els

2021-05-30 15:01:15 5

原创 【C++】bind参数绑定 P354(通用的函数适配器)

1. 什么时候该使用bing ?什么时候该使用lambda?当只有少数地方调用时候使用lambda,当需要多次调用lambda时,需要定义一个函数,而不是多次编译相同的lambda表达式。调用bind的一般形式为:auto newCallable = bind(callable,arg_list)callable本身是一个可调用的对象,arg_list是一个逗号分隔的参数列表,对应给定的callable的参数。即当调用newCallable时,newCallable会调用callable,并传递

2021-05-30 14:55:09 13

原创 【C++】lambda 表达式

lambda 表达式lambda表示一个可调用单元,可视为内联函数范式 : 具有一个返回类型,一个参数列表,一个函数体[captrue list](parameters list)->return type {function body}captrue list 捕获列表是一个lambda所在函数中定义局部变量的列表(通常为空),但与普通函数不同,lambda必须有尾置返回类指定返回类型。可以忽略参数列表和返回类型auto f = [] {return 42; };st

2021-05-30 14:53:48 5

原创 【C++】unique_ptr与shared_ptr使用实例

shared_ptr使用实例 std::string path = "D:\\code\\test_base_opencv\\example\\depth_98.raw"; std::string save_path = "D:\\code\\test_base_opencv\\example\\"; int cv_image_type = CV_16UC1; int rectify_height_ = 768; int rectify_width_ = 480; cv::Mat input

2021-05-27 09:35:59 8

原创 【OpenCV】图片操作小结:RAW图转image以及image连续保存

uint32_t ReadRawImage(cv::Mat& image, const std::string& path, int width, int height, int cv_image_type) { cv::Mat input_image(height, width, cv_image_type); std::ifstream in(path, std::ios::in | std::ios::binary); if (!in) { std::cout &lt

2021-05-27 09:33:29 10

原创 【OpenCV】内核的形状函数使用记录

opencv getStructuringElement函数为形态操作返回指定大小和形状的结构化元素。 该函数构造并返回结构化元素,这些元素可以进一步传递给侵蚀、扩张或morphologyEx。但是您也可以自己构造一个任意的二进制掩码,并将它用作结构化元素。getStructuringElement函数会返回指定形状和尺寸的结构元素。 getStructuringElement的内部并没有什么优化实现,只是封装了一下功能。其原理同样是声明一个Mat,然后求形状,指定Mat的值。 十字形为单线宽。Ma

2021-05-27 09:25:14 9

原创 【C++】explicit关键字

explicit的优点是可以避免不合时宜的类型变换,缺点无。所以google约定所有单参数的构造函数都必须是显式的**explicit关键字只需用于类内的单参数构造函数前面。由于无参数的构造函数和多参数的构造函数总是显式调用,这种情况在构造函数前加explicit无意义。google的c++规范中提到explicit的优点是可以避免不合时宜的类型变换,缺点无。所以google约定所有单参数的构造函数都必须是显式的,只有极少数情况下拷贝构造函数可以不声明称explicit。例如作为其他类的透明包装器的

2021-05-17 11:23:15 26

原创 【MATLAB】————拷贝指定文件路径下的有序文件(选择后),可处理固定规律的文件图片数据或者文件

总体上来说这种数据有2中处理思路。第一种如下所示,从一组数据中挑选出符合要求的数据;第二中就是数据中不需要的数据删除,选择处理不需要的数据,留下的补集就是需要的数库。一般情况下需要看问题是否明确,需求明确的话,考虑操作数,和操作的复杂程度,选择具体使用哪一种数据。index=[2,4,7,13,14];% parent_path='\\ip\public\光学测试\0基线\O公司\O公司实测数据\拍摄';parent_path='C:\Users\Administrator\Desktop\.

2021-05-17 10:18:06 13

原创 【C++】【OpenCv】图片加噪声处理,计时,及键盘事件响应捕捉

图像噪声添加cv::Mat addGuassianNoise(cv::Mat& src, double a, double b) { cv::Mat temp = src.clone(); cv::Mat dst(src.size(), src.type());​ // Construct a matrix containing Gaussian noise cv::Mat noise(temp.size(), temp.type()); cv::RNG rng(time

2021-05-07 09:45:46 28

原创 【C++】C++ 强制转换运算符

C++ 运算符强制转换运算符是一种特殊的运算符,它把一种数据类型转换为另一种数据类型。强制转换运算符是一元运算符,它的优先级与其他一元运算符相同。大多数的 C++ 编译器都支持大部分通用的强制转换运算符:(type) expression 其中,type 是转换后的数据类型。下面列出了 C++ 支持的其他几种强制转换运算符: **const_cast (expr):** const_cast 运算符用于修改类型的 const / volatile 属性。除了 const 或 ...

2021-04-28 19:20:55 19

原创 【数据结构与算法】二叉树与经典问题

文章目录笔记leetcode [114. 二叉树展开为链表](https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list/)解法一: 后序遍历、递归leetcode [226. 翻转二叉树](https://leetcode-cn.com/problems/invert-binary-tree/)思路与算法复杂度分析leetcode [剑指 Offer 32 - I. 从上到下打印二叉树](https://leetcode-cn.

2021-04-26 22:36:25 36

原创 【C++】C/C++ 中的单例模式

目录part 0:单例模式3种经典的实现方式Meyer's SingletonMeyers Singleton版本二Lazy SingletonEager SingletonTestingpart 1:C++之单例模式动机实现一[线程不安全版本]实现二[线程安全,锁的代价过高]锁机制实现三[双检查锁,由于内存读写reoder导致不安全]实现四[C++ 11版本的跨平台实现]实现五[pthread_once函数]另外一个版本实现std::cal.

2021-04-06 07:38:38 43

原创 【C++】unique_ptr中独占指针使用MakeFrame

1. DFrame使用方法std::unique_ptr<deptrum::Frame> MakeFrame(deptrum::FrameType frame_type, int width, int height, int bytes_pe...

2021-04-03 23:04:24 32

原创 【C++】C/C++ 中共享指针 shared_ptr

1. 共享指针 shared_ptr目录1. 共享指针 shared_ptr1.1 共享指针解决的问题?1.2 创建 shared_ptr 对象1.3 分离关联的原始指针1.4 自定义删除器 Deleter1.5 shared_ptr 相对于普通指针的优缺点1.6 创建 shared_ptr 时注意事项1.1 共享指针解决的问题?shared_ptr 是C++11提供的一种智能指针类( 智能指针是一个可以像指针一样工作的对象,但是当它不再被使用时,可以自动删除动态分配

2021-04-03 23:01:43 49

原创 【C++】C/C++ 中独占指针unique_ptr

1. 独占指针unique_ptr 目录1. 独占指针unique_ptr1.1 unique_ptr含义1.2 C++11特性1.3 C++14特性1.1 unique_ptr含义unique_ptr 是 C++ 11 提供的用于防止内存泄漏的智能指针中的一种实现,独享被管理对象指针所有权的智能指针。unique_ptr对象包装一个原始指针,并负责其生命周期。当该对象被销毁时,会在其析构函数中删除关联的原始指针。 unique_ptr具有->和*运算符重载符,因此它可以像

2021-04-03 23:00:04 28 1

原创 【C++】C++对象模型:对象内存布局详解(C#实例)

C++对象模型:对象内存布局详解0.前言C++对象的内存布局、虚表指针、虚基类指针解的探讨,参考。1.何为C++对象模型?引用《深度探索C++对象模型》这本书中的话:有两个概念可以解释C++对象模型: 语言中直接支持面向对象程序设计的部分。 对于各种支持的底层实现机制。 直接支持面向对象程序设计,包括了构造函数、析构函数、多态、虚函数等等,这些内容在很多书籍上都有讨论,也是C++最被人熟知的地方(特性)。而对象模型的底层实现机制却是很少有书籍讨论的。对象模型的底

2021-04-03 22:57:13 13

原创 【C++】C/C++ 中多态情形下的虚函数表查看方法

1.查看工具 找到VS2017命令提示符工具选择“VS 2017的开发人员命令提示符”点击该选项栏,弹出“VS 2017的开发人员命令提示符”窗口cd 控制进入带查看类躲在的位置使用命令:cl /d1 reportSingleClassLayoutXXX [filename],XXX表示类名,[filename]表示类所在的.cpp文件路径 如下所示cl /d1 reportSingleClassLayoutBase sdk_for_test.cc...

2021-04-03 22:54:15 18 1

原创 【C++】C/C++ 中default/delete特性

C++类的特殊成员函数及default/delete特性本文内容侧重个人理解,深入理解其原理推荐https://www.geeksforgeeks.org目录C++类的特殊成员函数及default/delete特性前言1. 构造函数和拷贝构造函数2. 拷贝赋值运算符3. C++11特性之default/delete参考前言C++ 的类有四类特殊成员函数,分别是: 默认构造函数 析构函数 拷贝构造函数 拷贝赋值运算符 这些类的

2021-04-03 22:47:57 29 1

原创 【C++】C/C++ 中智能指针

C++11智能指针C++里面的四个智能指针: auto_ptr, unique_ptr,shared_ptr, weak_ptr 其中后三个是C++11支持,并且第一个已经被C++11弃用。1.1 C++11智能指针介绍智能指针主要用于管理在堆上分配的内存,它将普通的指针封装为一个栈对象。当栈对象的生存周期结束后,会在析构函数中释放掉申请的内存,从而防止内存泄漏。C++ 11中最常用的智能指针类型为shared_ptr,它采用引用计数的方法,记录当前内存资源被多少个智能指针引用。该引用计数.

2021-03-30 14:01:54 23

原创 【C++】C/C++ 中 static 的用法全局变量与局部变量

C/C++ 中 static 的用法全局变量与局部变量目录1. 什么是static?1.1 static 的引入1.2 静态数据的存储2. 在 C/C++ 中static的作用2.1 总的来说2.2 静态变量与普通变量2.3 静态局部变量有以下特点:实例3. static 用法3.1 在 C++ 中3.2 静态类相关3.3 总结:实例1. 什么是static?static 是 C/C++ 中很常用的修饰符,它被用来控制变量的存储方式和可见性。

2021-03-03 16:56:55 36 1

原创 【C++】对象实例化/成员函数/成员变量的内存管理

文章目录1. 对象实例化的内存管理总结2.C++成员函数在内存中的存储方式3.C++类的实例化对象的大小之sizeof()实例一:实例二:实例三:实例四:实例五:实例六:实例七:实例八:实例九:1. 对象实例化的内存管理解释:因 C++中成员函数和非成员函数都是存放在代码区的,故类中一般成员函数、友元函数,内联函数还是静态成员函数都不计入类的内存空间,测试一和测试二对比可证明这一点测试三中,因出现了虚函数,故类要维护一个指向虚函数表的指针,分别在 x86目标平台和x64目标平台下编译运行的结果可证

2021-02-25 10:37:01 56

draw_depthmap_pointcloud.rar

将深度图转换到某一坐标系下

2021-03-17

test_base_opencv.rar

基于opencv验证,opencv库函数的test测试工具,widows系统,opencv3.3

2021-02-25

ransac.rar

随机抽样一致性算法实现

2021-02-25

联合标定(camrea,imu,ladar,vicon)_imu数据处理系统

联合标定原理及其实现

2021-01-19

sdk_for_thinmanmini.rar

opencv链接,cmkelist小样,window下opencv配置直接运行,用于思路验证,点提取,点匹配,利用ceres求解

2021-01-31

draw_depth_map.rar

深度图彩色映射,可视化工具

2021-01-19

bp神经网络

自写bp神经网络主程序

2016-12-12

空空如也

空空如也

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

TA关注的人 TA的粉丝

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