自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 找到大于一个正整数n的最小2的次幂数

引今天进行了招行提前批的视频面试,写编程题的时候完全没法下手,我觉得很大一部分原因是平时刷题太少,而且记录总结太少,于是在这里做一个刷题记录,希望等到秋招能找到理想的工作。以今天遇到的面试题开始吧…题目:找到大于一个正整数n的最小2的次幂数int solve (int num) { int base = INT_MIN; if (num >= base) { base = num; base |= (base >> 1); //把base最高位的下一位置1 base

2020-07-08 22:41:47 535

原创 使用find_package()链接不同版本的OpenCV

首先明确find_package()有两种搜索模式:Module模式搜索CMAKE_MODULE_PATH指定路径下面的FindXXX.cmake文件,在文件中定义了XXX_INCLUDE_DIRS和XXX_LIBRARIES变量的值。Config模式搜索XXX_DIR指定路径下面的XXXConfig.cmake文件,在文件中定义了XXX_INCLUDE_DIRS和XXX_LIBR...

2019-07-15 18:10:04 2581

转载 Eigen学习与使用

简介Eigen是一个C++开源线性代数库,Eigen采用模板方式实现,由于模板函数不支持分离编译,所以只能提供源码而不是动态库的方式供用户使用。在使用时,只需引入Eigen的头文件,不需链接库文件(没有库文件)。数组、矩阵和向量的表示typedef Matrix<Scalar, RowsAtCompileTime, ColsAtCompileTime, Options> MyM...

2019-06-08 11:14:31 1599

原创 OpenCV寻找轮廓findContours()和绘制轮廓drawContours()

1.findContours()findContours用来寻找图像的轮廓,在OpenCV中有两种定义形式

2019-06-06 12:58:30 611

原创 C++构造函数析构函数

1.构造函数什么是构造函数构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行,用以为成员变量设置初始值。构造函数的名称与类名完全相同,并且不反回任何类型。当需要对成员变量设置初始值时,需要显示声明构造函数;当不需要对成员变量设置初始值,常常不会显示声明构造函数,但是此时,编译器会隐式生产一个默认构造函数,并且编译器隐式声明的构造函数为空。//显式声明构造函数的类class...

2019-06-04 16:13:13 753

原创 光流(Optical Flow)

1.基本原理光流法是利用图像序列中的像素在时间域上的变化、相邻帧之间的相关性来找到的上一帧跟当前帧间存在的对应关系,计算出相邻帧之间物体的运动信息的一种方法。基本假设亮度不变假设:同一个空间点的像素灰度值,在各个图像中是固定不变的。微小运动假设:同一空间点在连续帧间的运动较小数学表达从不同的角度引入约束条件,导致了不同光流场计算方法。按照理论基础与数学方法的区别把它们分成四种...

2019-05-31 23:26:33 1792

原创 C++ list

list是C++标准模版库(STL,Standard Template Library)中的部分内容。实际上,list容器就是一个双向链表,可以高效地进行插入删除元素,但是随机访问却比较慢。list不支持随机存取,要访问第n个元素,必须先遍历前n-1个元素才能访问第n个元素。因此,list没有下标[ ]操作,也没有at()接口。初始化:list<int> test;用法:te...

2019-05-31 19:32:49 1165 1

原创 OpenCV相机读取图片

OpenCV相机读取图片1.先上代码//打开摄像头拍取20张图片#include<iostream>#include<opencv2/opencv.hpp>#include<boost/format.hpp>using namespace std;using namespace cv;int main(int argc,char** argv...

2019-05-11 10:38:48 1860

原创 OpenCV相机标定

OpenCV相机标定1.关键函数介绍棋盘格角点检测函数 cv::findChessboardCorners()bool findChessboardCorners( InputArray image, Size patternSize, ...

2019-05-07 14:28:34 1027

转载 Eigen::aligned_allocator

Eigen::aligned_allocator如果STL容器中的元素是Eigen库数据结构,例如这里定义一个vector容器,元素是Matrix4d ,如下所示:vector<Eigen::Matrix4d>这个错误也是和上述一样的提示,编译不会出错,只有在运行的时候出错。解决的方法很简单,定义改成下面的方式:vector<Eigen::Matrix4d,Eigen:...

2019-05-07 00:22:37 2430

原创 boost::format用法

boost::format用法boost::format用来代替C里面的sprintf,优点是类型齐全,不会因为类型和参数不匹配而导致程序崩溃,而且还可以重复使用参数,并且效率更高使用示例:#include <iostream>#include <string>#include <boost/format.hpp>using namespace s...

2019-05-06 19:12:18 2932

原创 SLAM十四讲第四节课习题

SLAM十四讲第四节课习题直接上代码:#include <opencv2/opencv.hpp>#include <string>using namespace std;string image_file = "./test.png"; // 请确保路径正确int main(int argc, char **argv) { // 本程序需要你...

2019-05-06 00:17:57 571

转载 OpenCV读写XML和YAML格式文件

OpenCV读写XML和YAML格式文件1.什么是XML,YAMLXML:最早的通用信息标记语言,可扩展性好,但繁琐YAML:非标记语言,相比XML利用空各缩进分行,显示了数据的结构性,简化了书写格式,降低了复杂度,提升易读性2.XML,YAML文件的打开和关闭//OpenCV中标识XML和YAML的数据结构是 FileStoragestring filename = "I.xml...

2019-05-05 14:22:07 380

原创 SLAM十四讲第二节课习题

VSLAM十四讲第二节课习题1.矩阵A为满秩矩阵2.利用初等行变换将方程组的增广矩阵转换为行阶梯阵,再通过回代求出线性方程组的解3.对于n阶方阵A,若存在正交矩阵Q和上三角矩阵R,使得A = QR,则该式称为矩阵A的完全QR分解或正交三角分解。原理是将矩阵每个列作为一个基本单元,将其化为正交的基向量与在这个基向量上的投影长度的积4.把一个对称正定的矩阵表示成一个下三角矩阵L和其转置的乘积...

2019-05-01 15:22:43 290

原创 CMake教程

CMake指令#声明要求的cmake最低版本cmake_minimum_required(VERSION 2.8)#声明一个cmake工程 project(工程名)project(Demo)#设置编译模式set( CMAKE_BUILD_TYPE "Debug" )#添加子目录add_subdirectory(ex_dir)#添加共享库add_library(demo_...

2019-04-27 23:55:43 144

转载 ROS launch用法

ROS launch用法roslaunch文件通过XML文件实现多节点的配置和启动。$ roslaunch [package] [filename.launch]首先在功能包的src路径下创建launch文件夹,然后在文件夹下创建.launch文件XML文件必须包含一个根元素,launch文件的根源素采用标签定义,文件中的其他元素都必须包含在这个标签当中<launch>...

2019-04-23 18:32:04 2619

转载 ROS编程基本语法

ROS编程基本语法1.c_str()和data()相同点:都生成一个const char*指针,指向一个临时数组。不同点:string中的数据并没有保证被存储在独立的一块连续内存中,string的内部表示形式并没承诺以一个null字符结束。这解释了string 的成员函数c_str存在的原因,它返回一个按C风格设计的指针,指向string的值。因此我们可以这样传递一个string对象s给...

2019-04-21 13:38:36 1889

原创 ROS通信架构

ROS通信架构1.图概念概述Nodes:节点,一个节点即为一个可执行文件,它可以通过ROS与其它节点进行通信。Messages:消息,消息是一种ROS数据类型,用于订阅或发布到一个话题。topics:话题,节点可以发布消息到话题,也可以订阅话题以接收消息。 Master:节点管理器,ROS名称服务 (比如帮助节点找到彼此)。 rosout: ROS中相当于stdout/stde...

2019-04-20 17:12:07 691

原创 ROS工作空间,功能包,package.xml

ROS工作空间和功能包,package.xml1.什么是工作空间工作空间(workspace)是一个存放工程开发相关文件的文件夹。src:代码空间(SourceSpace),放置package源代码包build:编译空间(Build Space),放置编译产生的缓存和中间文件devel:开发空间(Development Space),放置编译完成之后的可执行文件,环境变量,脚本等2...

2019-04-16 00:38:15 814

转载 C++ main函数中参数argc和argv含义及用法

C++ main函数中参数argc和argv含义及用法当有时需要向main函数传递实参,定义: int main(int argc,char *argv[]) { ... }第一个形参argc表示数组中字符串的数量,第二个形参argv是一个数组。因为第二个形参是数组,所以main函数也可定义为: int main(int argc...

2019-04-13 15:34:48 867

转载 Ubuntu 16.04 apt和dpkg终端命令的使用

Ubuntu 16.04 apt终端命令的使用1、apt 是Advanced Packaging Tool,是Ubuntu下的安装管理工具,大部分的软件安装/更新/卸载都是利用apt命令来实现的,直接在终端输入apt即可以查阅命令帮助信息 1.1、安装软件 sudo apt install 软件名 1.2、卸载软件 sudo apt rem...

2019-04-05 16:38:56 641

转载 ubuntu 彻底卸载软件及配置文件

ubuntu 彻底卸载软件及配置文件1、删除软件及其配置文件 sudo apt purge remove 软件名 2、删除没用的依赖包 sudo apt autoremove 3、此时dpkg的列表中有“rc”状态的软件包,可以执行如下命令做最后清理 dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpk...

2019-04-05 16:38:42 5127

空空如也

空空如也

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

TA关注的人

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