- 博客(71)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 hidden symbol `_ZNK3fmt2v86detail10locale_ref3getISt6localeEET_v‘
主要的原因是Sophus中要使用fmt库,而自己配置了炒鸡长的时间也没有配置成功,故而不使用fmt库了。重新cmake Sophus库并将cmake的一个指令打开"- DUSE_BASIC_LOGGING=ON"。问题得以解决。最终自己又将该指令打开了,Eigen版本是3.4.4. fmt的版本是7.1.1。莫名其妙的又安装成功了,自己就是一个菜鸡。...
2021-12-31 20:24:19 728
原创 ORB-SLAM2 三种跟踪模式总结(参考关键帧跟踪、恒速模型跟踪、重定位跟踪)
总体概要在系统初始化成功后,mState状态会置位,下一帧来临后,首先检查上一帧的地图点是否需要进行替换,如果需要替换则替换。由于刚初始化完成,所以相机是没有速度的,所以首先使用参考关键帧进行跟踪当前帧。当系统刚发生重定位后,也需要使用参考关键帧进行跟踪。在正常情况下,系统使用恒速模型进行跟踪当前帧。若使用恒速模型跟踪失败,则使用参考关键帧进行跟踪。若使用参考关键帧进行跟踪也没有跟踪到当前帧,则系统只能进行重定位了。若系统中的关键帧数量过少,也就是说系统刚开始运行就要重定位,那么就重置系统,重新初始化,重
2021-12-29 19:25:53 4159
原创 ORB-SLAM2代码 单目初始化总结
ORB-SLAM2代码 单目初始化ORB-SLAM2在加载系统过程中,首先为系统创建地图,关键帧数据库,然后在创建的Tracking、LoaclMapping、LoopClosing线程中传入地图和关键帧数据库地址指针,可以实现数据共享。然后通过设置进程间的指针,可以实现进程间的信息调用。当系统传入图像数据时,要为每一幅图像构造一帧数据,在构造每帧数据时,为每一幅图像构造了八层图像金字塔,构造完成图像金字塔之后。对每层图像进行网格的划分,在每个cell中提取FAST角点,当提取不出来角点时,降低阈值重新
2021-12-16 10:54:36 3264
原创 OpenCV Error: Unknown error code -49 (Input file is empty) in cvOpenFileStorage
我的代码中的主要问题是配置文件中没有添加“YAML:1.0”,导致一直读取错误,而使用yaml-cpp库而不会发生这样的问题。
2021-12-12 16:28:54 3929
原创 顺序容器: 内存管理(shrink_to_fit、capacity、reserve)
函数功能c.shrink_to_fit()将capacity()减少为与size()相同大小c.capacity()不重新分配内存空间的话,c可以保存多少元素c.reverse()分配至少能容纳n个元素的内存空间c.resize(n) , c.resize(n, t)调整c的大小为n个元素。若n<c.size(),则多出的元素被丢弃reserve并不改变容器中元素的数量,它仅影响vector预先分配多大的内存空间只有当需要的内存空间超过当前容...
2021-12-08 08:50:00 1352
原创 ros service 通信失败问题
创建的ros::NodeHandle 节点不能使用局部初始化,需要使用全局初始化,否则无法通信,具体原因不明!!!
2021-12-01 10:59:46 1730
原创 what(): Character [ ] at element [19] is not valid in Graph Resource Name [add_two_ints_client X Y
主要的问题是ros初始化时,中间有空格,将空格去掉即可解决!!!
2021-11-27 22:40:06 308
原创 对相机多次标定结果不一样的理解
对相机多次标定结果不一样的理解在单目相机的标定时,通常采用的是小孔模型,但是这个模型并不是真实的相机投影模型,小孔模型只是一个近似,如果相机做工比较靠谱,那么它对应的小孔模型的参数会比较稳定,体现在标定结果上就是每次标定的内参数波动比较小。在不同距离标定的相机内参数是不一样的,这也是真实的相机投影过程和小孔模型不是完全对应的。标定板的平整度,棋盘格大小(尽量大),图像画质,角点分布等等因素。计算的内外数的初始值不同,标定过程中进行了非线性优化,收敛到局部的极小值,和全局极小值接近标定过程中获得的
2021-10-30 09:32:53 949
原创 cv::Mat::release (this=0x55555641e368) at /usr/include/opencv2/core/mat.inl.hpp:708
2021-09-04 16:10:20 511
原创 OGRE EXCEPTION(2:InvalidParametersException): Stream size does not match calculated image size in Im
主要原因是发布图像数据时是将灰度图转换成“bgr8”的形式了
2021-08-23 08:44:37 1917 2
原创 惯性矩阵的计算
查看这位大佬的笔记https://blog.csdn.net/weixin_43175145/article/details/86355450
2021-07-26 09:15:31 3095
原创 互斥锁:数据共享
代码程序#include <iostream>#include <mutex>#include <list>#include <thread>using namespace std;#define THREAD_BY_CLASS//#define TRREAD_BY_FUNCTION#define MUTEX#ifdef MUTEXstd::mutex MyMutex;#endifstd::list<int> m
2021-03-27 11:48:53 109
原创 TSP问题(换位表达,启发式交叉,启发式变异)C++实现
旅行商问题一 染色体表达方式染色体的表达方式采用换位表达,它是TSP巡回的最自然的表达,如下图:它的访问顺序为 3-2-5-4-7-1-6-9-8,染色体中基因的值表示城市,基因的顺序表示访问城市的顺序,这种表达的搜索空间是澄海市顺序“换位”的集合,采用传统的单点交叉时,可能导致非法的巡回。二 染色体交叉本课题中的染色体交叉使用的是启发式交叉,启发式交叉的步骤如下(最近邻点法):步骤1:从一对双亲中随机地选取一个城市最为开始城市,步骤2:由当前城市出发,选择一条不构成循环的最短边(由双亲表达的
2020-11-20 16:34:56 1682
原创 数据结构:递归(实现n个数的全排列使用C++实现)
数据结构:递归递归在数据结构中可以用来编制表和树结构的查找和排序算法,在数学领域可以应用于组合数学领域,其处理对象是大量的计数和可能性问题。递归是算法研究、运算研究模型、博弈论和图论的重要课题。如果解决问题的方法是把一个问题分解成小的子问题,并且这些小的子问题可以用同样的算法解决,那么就可以用递归。当分解到可以解决的比较简单的子问题是分解过程即终止。将这些子问题称为终止条件。递归运用的是“分而治之”的策略。如果一种算法的定义组成如下,则它就是递归的。1、对应于某些参数可以求值的一个
2020-10-26 09:32:12 4138
原创 使用C++实现n个数全排列
经过苦思冥想终于在一天的时间内搞了出来,由于没有学习过算法,使得苦逼的自己经历了一番磨难。实际上主要原因是对递归没有深入了解,现在把程序粘贴在这里,方便自己随时查看,也希望能够帮助其他人。#include <iostream>#include <vector>using namespace std;void perm(vector<int> &vi, vector<int>::iterator begin, vector<i
2020-10-16 16:31:13 2171
原创 QR分解
上面的讨论中假设了A可逆,如果A不可逆,则a1,a2,… an线性相关,用施密特正交化的时候,可能某些βi会变成零,这时需要修改表达式,把零的地方天生单位向量,使得整个向量组时标准正交基,这时影响的只是右边第二个矩阵的元素,不影响这个矩阵的上三角形形状,矩阵还可以作QR分解。施密特正交化过程如下:...
2020-10-06 10:41:57 826
原创 数据结构与算法分析:C语言描述 笔记1 (递归简论及练习题答案)
递归简论递归的两个基本法则1、 基准情形:你必须总要有某些基准的情形,他们不用递归就能求解。2、 不断推进:对于那些需要递归求解的情形,递归调用必须总能够朝着产生基准情形的方向推进。设计法则:假设所有的递归调用都能运行。合成效益法则:在求解同一个问题的同一个实例时,切勿在不同的递归调用中做重复性的工作。...
2020-08-27 18:40:07 433 1
原创 数据结构 (C++语言版)暂封
暂封由于本人(菜鸟)认为,我的博客【数据结构(C++语言版)】没有收获,所以暂时停更,先从最基本的【数据结构与算法:C语言描述】做起,待到成熟时,再重新更新【数据结构(C++)语言版】。不能空中造花园,要先夯实基础,然后才能从量变到质变。数据结构(C++语言版)再见。...
2020-08-25 17:15:49 118
原创 计算机视觉攻略 笔记15 (检测图像中的平面目标)
检测图像中的平面目标示例程序/*------------------------------------------------------------------------------------------*\This file contains material supporting chapter 10 of the book:OpenCV3 Computer Vision Application Programming CookbookThird Editionby Robert L
2020-08-24 18:02:41 548
原创 计算机视觉攻略 笔记14 (计算两幅图像之间的单应矩阵)
没有伞的孩子要学会奔跑计算两幅图像之间的单应矩阵单应矩阵( Homography) H,它描述了两个平面之间的映射关系。若场景中的特征点都落在同一平面上(比如墙、地面等),则可以通过单应性来进行运动估计。这种情况在无人机携带的俯视相机或扫地机携带的顶视相机中比较常见。...
2020-08-24 09:32:42 1312
原创 计算机视觉攻略 笔记13 (用RANSAC(随机抽样一致性)算法匹配图像)
用RANSAC(随机抽样一致性)算法匹配图像本节的主要问题:如何使用极线约束,使图像特征匹配更加可靠。要遵循的原则很简单:在匹配两幅图像的特征点时,只接受位于对极线上的匹配项。若要判断是否满足这个条件,必须先知道基础矩阵,但计算基础矩阵又需要优质的匹配项。这看起来像是“先有鸡还是先有蛋”的问题。本节将提出一种解决方案,可以同时计算基础矩阵和一批优质的匹配项。#if !defined MATCHER#define MATCHER#include <iostream>#include
2020-08-22 10:36:59 1015
原创 数据结构 (c++)笔记7 (栈)
栈栈(stack) 是存放数据对象的一种特殊容器,其中的数据元素按线性的逻辑次序排列,故也可定义首、末元素。 不过, 尽管栈结构也支持对象的插入和删除操作,但其操作的范围仅限于栈的某一特定端。也就是说, 若约定新的元素只能从某一端插入其中, 则反过来也只能从这一删除已有的元素。 禁止操作的另一端,称作盲端。栈顶: 栈中可操作的一端栈底:栈中不可操作的一端栈的接口栈中元素接受操作的次序必然始终遵循所谓“后进先出” (last-in-first-out, LIFO) 的规律: 从栈结构的整个生命
2020-08-21 10:10:13 271
原创 笔记2 Effective C++
知识点 mutableclass CTextBlock {public: ... std::size_t length() const;private: char* pText; std::size_t textLengeh; //最近一次计算的文本区块长度 bool lengthIsValid; // 目前的长度是否有效};std::size_t CTextBlock::length() const{ if (!lengthIsValid) { textLengeh
2020-08-20 08:39:45 110
原创 计算机视觉攻略 笔记12 (计算图形对的基础矩阵)
计算图形对的基础矩阵本节将探讨同一场景的两幅图像之间的投影关系。可以移动相机,从两个视角拍摄两幅照片;也可以使用两个相机,分别对同一个场景拍摄照片。如果这两个相机被刚性基线分割,我们就称之为立体视觉。如果两幅图像之间有一定数量的已知匹配点,就可以利用方程组来计算图像对的基础矩阵。这样的匹配项至少要有 7 对。示例程序#include <iostream>#include <vector>#include <opencv2/core/core.hpp>#i
2020-08-19 17:59:46 434
原创 计算机视觉攻略 笔记11 (用二值描述子匹配关键点)
用二值描述子匹配关键点为了减少内存使用、降低计算量,人们引入了将一组比特位(0 和 1)组合成二值描述子的概念。示例程序#include <iostream>#include <algorithm>#include <vector>#include <opencv2/core/core.hpp>#include </home/jlm/3rdparty/opencv/opencv_contrib/modules/xfeatures2d/inc
2020-08-19 09:34:37 301
原创 计算机视觉攻略 笔记10 (描述并匹配局部强度值模式)
描述并匹配局部轻度值模式本节的主要内容是使用特征描述子来描述兴趣点的邻域。特征描述子通常是一个 N 维的向量,在光照变化和拍摄角度发生微小扭曲时,它描述特征点的方式不会发生变化。通常可以用简单的差值矩阵来比较描述子,例如用欧几里得距离。综上所述,特征描述子是一种非常强大的工具,能进行目标的匹配。示例程序#include <iostream>#include <algorithm>#include <vector>#include <opencv2/
2020-08-19 09:05:26 319
原创 数据结构 (C++)笔记6 (有序列表 & 排序器)
有序列表 & 排序器有序列表若列表中所有节点的逻辑次序与其大小次序完全一致,则称作有序列表。唯一化template <typename T> int List<T>::uniquify() { //成批剔除重复元素,效率更高 if ( _size < 2 ) return 0; //平凡列表自然无重复 int oldSize = _size; //记录原规模 ListNodePosi(T) p = first(); ListNodePosi(T
2020-08-18 17:38:35 916
原创 数据结构(C++)笔记5 (列表)
列表头、尾节点List对象的内部组成及逻辑结构如图所示,其中私有的头节点( header) 和尾节点( trailer) 始终存在,但对外并不可见。对外部可见的数据节点如果存在,则其中的第一个和最后一个节点分别称作首节点( first node) 和末节点( last node) 。就内部结构而言, 头节点紧邻于首节点之前, 尾节点紧邻于末节点之后。这类经封装之后从外部不可见的节点, 称作哨兵节点( sentinel node) 。默认构造方法创建List对象时,默认构造方法将调用如代码所示的
2020-08-18 16:31:55 378
原创 数据结构(C++)笔记4 (列表接口)
列表接口作为列表的基本组成单位,列表节点除需保存对应的数据项,还应记录其前驱和后继的位置, 故需将这些信息及相关操作组成列表节点对象,然后参与列表的构建。列表节点ListNode模板类链表结构typedef int Rank; //秩#define ListNodePosi(T) ListNode<T>* //列表节点位置template <typename T> struct ListNode { //列表节点模板类(以双向链表形式实现)// 成员 T
2020-08-18 10:14:30 163
原创 数据结构 (C++)笔记3 (从向量到列表)
从向量到列表在设计或选用数据结构时,应从实际应用的需求出发,先确定功能规范及性能指标。引入列表结构的目的,就在于弥补向量结构在解决某些应用问题时,在功能及性能方面的不足。二者之间的差异,表面上体现于对外的操作方式,但根源则在于其内部存储方式的不同。从静态到动态数据结构支持的操作,通常无非静态和动态两类: 前者仅从中获取信息, 后者则会修改数据结构的局部甚至整体。静态存储:各元素物理地址连续动态存储:要求各元素在逻辑上具有线性次序,对其物理地址却未作任何限制(比如列表结构链表(linke
2020-08-18 08:54:01 173
原创 计算机视觉攻略 笔记9 (局部模板匹配)
局部模板匹配通过特征点匹配,可以将一幅图像的点集和另一幅图像(或一批图像)的点集关联起来。如果两个点集对应着现实世界中的同一个场景元素,它们就应该是匹配的。仅凭单个像素就判断两个关键点的相似度显然是不够的,因此要在匹配过程中考虑每个关键点周围的图像块。如果两幅图像块对应着同一个场景元素,那么它们的像素值应该会比较相似。最常见的图像块是边长为奇数的正方形,关键点的位置就是正方形的中心。可通过比较块内像素的强度值来衡量两个正方形图像块的相似度。常见的方案是采用简单的差的平方和(Sum of Square
2020-08-17 11:11:47 463
原创 计算机视觉攻略 笔记8 (Oriented FAST and Rotated BRIEF ,定向 FAST 和旋转 BRIEF,ORB)
Oriented FAST and Rotated BRIEF ,定向 FAST 和旋转 BRIEF (ORB)ORB特征检测算法ORB 代表定向 FAST 和旋转 BRIEF 。这个缩写的第一层意思表示关键点检测,第二层意思表示 ORB 算法提供的描述子。ORB 首先创建一个图像金字塔。它由一系列图层组成,每个图层都是用固定的缩放因子对前一个图层下采样得到的(典型情况是用 8 个尺度,缩放因子为 1.2 ;这是创建cv::ORB 检测器的默认参数)。在具有关键点评分的位置接受 N 个强度最大的关
2020-08-17 09:15:05 1214
精通Android Studio (毕小朋著) 完整pdf扫描版[78MB]
2019-01-25
常见聚类数据集人工数据和UCI数据都有
2019-01-25
在使用名称空间的时,名字会多一个?
2021-07-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人