- 博客(52)
- 资源 (1)
- 收藏
- 关注
原创 利用平面进行位姿约束优化
设位姿pose存在误差,利用观测到的平面进行位姿pose优化,只优化位姿pose的z轴平移和roll,pitch,yaw四个变量,要求优化后的pose,z轴与平面的z一致。请修改代码实现这个功能
2025-01-14 16:17:21
390
原创 c++提取文件名中数字
struct dirent *ptr; DIR *dir; std::string PATH1 ="/home/test/";//读取test文件内容 std::string PATH2 = "/home/test/";//输出结果到test std::vector<string> file_list;// dir=opendir(PATH1.c_str()); std::cout << "Read the...
2022-03-24 11:59:44
1343
原创 C++读取文件夹中所有的文件或者是特定后缀的文件
由于经常有读取一个文件夹中的很多随机编号的文件,很多时候需要读取某些特定格式的所有文件。下面的代码可以读取指定文件家中的所有文件和文件夹中格式为jpg的文件windows平台代码:#include <io.h>#include <fstream>#include <string>#include <vector>#include <iostream> using namespace std; //获取所有的文件名void
2022-02-18 14:45:21
4523
1
转载 C++ STL中vector的内存机制和性能分析
vecotr是动态数组,顾名思义他可以动态的增加自己的长度。内存机制:但是怎样的增加自己的长度?vector有两个函数一个是capacity()返回内存空间即缓冲区的大小,另一个是size()返回当前数组中数的数量。vector增加元素来说,当容量已经不能放进数据了,那么他会重新申请一块内存,把之前的内存利用复制构造函数复制到新的内存当中,然后把新添加的内容放入后面,另外此时的他申请的内存空间是原来空间的2倍,我测得是2倍缓冲区的释放vecotor占用的内存只增不减,erase只是将一段区间( e
2020-07-07 18:45:22
587
转载 c++ vector的内存释放
c++中vector的一个特点是: 内存空间只会增长,不会减小。即为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都挨着前一个元素存储。设想,如果每次vector添加一个新元素时,为了满足连续存放这个特性,都需要重新分配空间、拷贝元素、撤销旧空间,这样性能就会非常慢,所以,实际上分配时其容量要比当前所需容量更多,即vector预留了一些额外的存储区,这样就不必单独为每个新元素重新分配内存空间,减少开销。 另外,在vector中内存只增不减体现在 - 比如首先分配了10000个字节,然
2020-07-07 18:43:11
3473
转载 c++中capacity()函数用法
c++中capacity()函数用法size()指 目前存在的元素数。 元素个数capacity()指 容器能存储 数据的个数 容器 容量reserve()指定 容器 能存储数据的个数resize() 重新 指定 有效元素的个数 ,区别与reserve()指定 容量的大小当创建空容器时, 容量(capacity)为 0;当用完时,增加原容量的 1/2 (各编译器 可能存在差异 vs2010是这样的,mingw则 增加原容量 )–适用如 vector这种 元素连续
2020-07-07 18:40:42
4705
原创 Linux内存监视
内存监视的命令有两种:1.打开系统监视器查看内存,精确到M,在终端输入命令:gnome-system-monitor2.终端输出内存情况,精确到kb,在终端输入命令:top -d 1注:第2种方式打开后,按大写M,进行排序查看,避免进程跳动。...
2020-06-24 14:10:34
266
原创 结构体在内存中的对齐规则
一个结构体变量定义完之后,其在内存中的存储并不等于其所包含元素的宽度之和。例一: #include <iostream> using namespace std; struct X {
2020-06-23 10:48:06
453
转载 链表ListNode详细解释
ListNode刷LeetCode碰到一个简单链表题,题目已经定义了链表节点ListNode,作者很菜,好多忘了,把ListNode又查了一下struct ListNode { int val; //定义val变量值,存储节点值 struct ListNode *next; //定义next指针,指向下一个节点,维持节点连接 }· 在节点ListNode定义中,定义为节点为结构变量。· 节点存储了两个变量:value 和 next。value 是这个节点的
2020-06-06 08:54:21
32025
10
原创 make编译时找不到链接库
在编译时,报错如下:/usr/bin/ld: 找不到 -lcanlib/usr/bin/ld: 找不到 -lkvadblibcollect2: error: ld returned 1 exit statusCMakeFiles/demo.dir/build.make:113: recipe for target 'demo' failedmake[2]: *** [demo] Erro...
2020-02-18 11:25:14
2286
1
原创 视频转换处理终端命令
视频段截取:ffmpeg -i ./plutopr.mp4 -vcodec copy -acodec copy -ss 00:00:10 -to 00:00:15 ./cutout1.mp4 -y-ss time_off set the start time offset 设置从视频的哪个时间点开始截取,上文从视频的第10s开始截取-to 截到视频的哪个时间点结束。上文到视频的...
2020-02-13 11:44:57
231
原创 Eigen库函数
opencv与eigen的交互#include <Eigen/Dense>#include <iostream>#include <opencv2/core/eigen.hpp>#include <opencv2/opencv.hpp> using namespace std;using namespace cv;using name...
2019-09-30 10:52:32
3165
转载 Eigen子矩阵操作(block)
文章目录 1、子矩阵操作简介 2、块操作的一般使用方法 3、行子式和列子式 4、边角子矩阵 5、向量的子向量操作1、子矩阵操作简介子矩阵操作又称块操作,在矩阵运算中,子矩阵的提取和操作应用也十分广泛。因此Eigen中也提供了相关操作的方法。提取的子矩阵在操作过程中既可以用作左值也可以用作右值。2、块操作的一般使...
2019-09-30 10:46:29
14847
2
原创 常用ffmpeg命令
常用ffmpeg命令调整视频的宽和高:ffmpeg -i input_file -s 320*480 output_file将avi转换成mp4:ffmpeg -i input.avi out.mp4视频段截取:ffmpeg -i ./plutopr.mp4 -vcodec copy -acodec copy -ss 00:00:10 -to 00:00:15 ./cutout1.m...
2019-06-14 16:54:50
244
转载 C++对象的动态建立和释放
使用类名定义的对象(请查看:C++类的声明和对象的定义)都是静态的,在程序运行过程中,对象所占的空间是不能随时释放的。但有时人们希望在需要用到对象时才建立对象,在不需要用该对象时就撤销它,释放它所占的内存空间以供别的数据使用。这样可提高内存空间的利用率。在C++中,可以使用new运算符动态地分配内存,用delete运算符释放这些内存空间(请查看:C++动态分配内存(new)和撤销内存(delet...
2019-04-22 18:16:29
544
转载 Ubuntu14.04 运行LSD_SLAM
基于Ubuntu14.04+ROS indigo环境LSD-SLAM的数据集测试成功第一步:搭建Ubuntu14.04.4+ROS indigo基础环境1] 在 http://releases.ubuntu.com/14.04/ 官网下载ubuntu-14.04.4-desktop-i386.iso安装包,大约1G。然后在VMware Player里安装好,可以采用VMPlayer的Easy ...
2019-03-20 19:37:29
426
转载 Mac OS制作Ubuntu安装U盘
采用U盘安装Ubuntu系统是目前比较常见的安装方式之一,在Windows上有制作安装U盘的工具(比如Universal USB Installer),那么在Mac OS上面如何制作安装U盘呢?答案是命令行!hdiutil第一步,需要到Ubuntu下载需要的Ubuntu的安装文件。然后就需要使用第一个命令hdiutil。hdituil:是一个Mac OS上面处理镜像文件的命令,可以对镜像...
2019-03-20 15:08:00
4644
原创 ubuntu16.04 安装LSD_SLAM错误总结
输入命令:rosmake错误如下:[ rosmake ] rosmake starting... [ rosmake ] Packages requested are: ['lsd_slam\xe3\x80\x80'] [ rosmake ] Logging...
2019-03-19 12:48:09
1543
1
转载 TX2安装PCL出现libGL.so: undefined reference to 'xxxx'
在TX2 上刷机后安装PCL时出现aarch64-linux-gnnu/libGL.so :undefined reference to drmCloseOnceaarch64-linux-gnnu/libGL.so :undefined reference to drmCloseOnceaarch64-linux-gnnu/libGL.so :undefined reference to ...
2019-03-15 16:23:39
761
转载 用ORB SLAM2跑自己的数据集 使用图片序列或摄像头或视频 实践篇
用ORB SLAM2跑自己的图片序列数据集首先,我们需要知道图片的采集时间,这个可以从采集的仪器(各种各样的)上得到图片与时间一一对应。小树的问题描述:现有数据集视频,首先使用激光SLAM跑出来了一个轨迹,该轨迹作为groundtruth,将相同的数据集用纯视觉SLAM方法跑一下,然后与groundtruth做对比评判误差。第一步:制作rgb/目录并把图片信息放进去。我们知道ORB SLAM2...
2019-03-11 20:00:49
13295
16
原创 opencv依赖库
sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff5-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-a...
2019-03-01 12:34:52
5574
原创 Ubuntu 16.04 + Kinect for Xbox one(v2)驱动安装
libfreenect2驱动安装:下载libfreenect2 驱动$ git clone https://github.com/OpenKinect/libfreenect2.git$ cd libfreenect2 下载升级deb文件$ cd depends$ ./download_debs_trusty.sh下载工具$ sudo apt-get install build...
2019-02-01 10:34:32
2345
交通标志识别算法代码
2018-04-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人