解决opencv CMake Error: The source directory “/home/ak/opencv“ does not appear to contain CMakeLists.t 解决opencv CMake Error: The source directory "/home/ak/opencv" does not appear to contain CMakeLists.t
sensor_msgs::Image消息及其参数 很多的博客直接将原网址复制粘贴过来,这里做一个整理,另外原网址是:https://docs.ros.org/en/melodic/api/sensor_msgs/html/msg/Image.html该消息意味包含未压缩的图像,且(0,0)在图像的左上角。参数大体含义如下:header:首先拿VINS-Mono的代码举例: sensor_msgs::Image img; //下面是定义消息参数 img.header = img_msg->header;
Subscriber ros::NodeHandle::subscribe 函数形式Subscriber ros::NodeHandle::subscribe ( const std::string & topic, uint32_t queue_size, void(*)(M) fp, const TransportHints &transport_hints = TransportHints() )参数介绍topic 为订阅的节点名,
ROS ros::init()初始化函数 功能是:初始化ros节点void ros::init ( int & argc, char ** argv, const std::string & name, uint32_t options = 0 ) ros::init()的参数分别是:argc:remapping参数的个数argv:remapping参数的列表name:节点名,必须是一个基本名称,不能包含命名空间options:[可选]用于启动节点的选项(ros::init_
VINS-Mono代码注释——数据结构 本文档用于VINS-Mono的代码学习与记录,主要参考博客VINS-Mono代码解读——各种数据结构 sensor_msgs这部分不是特明白,后续再进行学习注解一、std_msgs/Header位置:std_msgs/Header.msg一般在Image/PointCloud/IMU等各种传感器数据结构中都会出现的头信息//序列ID:连续增加IDuint32 seq //时间戳time stamp //坐标系IDstring frame_id 二、sensor_msgs::Image
拓扑排序的注意点、模板、适用问题 一、注意点二、模板vector<int> G[MAXV];//邻接表int n,m,inDegree[MAXV];//顶点数,入度//拓扑排序bool topologicalSort(){ int num=0;//记录加入拓扑序列的顶点数 queue<int> q; for(int i=0;i<n;i++) { if(inDegree[i]==0) { q.push(i);//将所有的入度为0的顶点入队 } } while(!q.em
图最小生成树kruskal算法注意点、模板和适用问题 一、注意点二、模板struct edge{ int u,v; //边的两个端点 int cost; //边权}E[MAXV]; //最多有MAXE条边bool cmp(edge a,edge b){ return a.cost<b.cost;}int father[N];//并查集数组int findFather(int x){//并查集查询函数 ……}//kruskal函数返回最小生成树的边权之和,参数n为顶点个数,m为图的边数int kruskal(in
图最小生成树prim算法注意点、模板和适用问题 一、注意点该算法的原理同Dijkstra算法,也是不断将点加入集合的方式。二、模板//邻接表struct Node{ int v,dis;//v是边的目标顶点,dis为边权};vector<Node> Adj[MAXV];//图G,Adj[u]存放从顶点u出发可以到达的所有点int n;//n为顶点数,图G使用邻接表实现,MAXV为最大顶点数int d[MAXV];//顶点与集合s的最短距离bool vis[MAXV]={false};//标记数组,vis[i]==true表
图最短路径Floyd算法的注意点、模板、适用问题 一、注意点不能将外层k循环放置内层二、模板const int INF=100000000;const int MAXV =200;//MAXV最大顶点数int n,m;//n为顶点数,m为边数int dis[MAXV][MAXV];//dis[i][j]表示顶点i和顶点j的最短距离void Floyd(){ for(int k=0;k<n;k++)//遍历每一个点作为中介点 { for(int i=0;i<n;i++)//遍历每一个点作为一个端点 { for(
图最短路径Bellman-Ford算法注意点、模板和适用问题 一、注意点正规的程序步骤应该分为两步:执行算法进行计算验证图内部是否有负环,如果有则该算法不适用二、模板struct Node{//v是邻接边的目标顶点,dis为邻接边的边权 int v,dis;};vector<Node>Adj[MAXV];//图G的邻接表int n; //n为顶点数,MAXV为最大顶点数int d[MAXV]; //起点到达各点的最短路径长度bool Bellman(int s)//s是源点{ fill(d,d+MAXV,INF);
最常考察的动态规划算法(共七个) 本文一方面用于自身备考,一方面进行整理和总结注意点。参考《算法笔记》基本结构是:类型介绍程序模板注意点一、最大连续子序列和1.类型介绍给定一个数字序列A1,A2……An,求i,j使得Ai+……+Aj最大,输出最大和。样例:-2 11 -4 13 -5 -2最大和为11+(-4)+13=202.模板//第一步,令dp[i]表示以A[i]为末尾的连续序列最大和//第二步,状态转移方程dp[0]=A[0];for(){ dp[i]=max(A[i],dp[i-1]+A[i])