自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 33

2019-03-24 09:49:19 276

原创 ubuntu黑屏 只有左上角一个白色光标 ubuntu桌面循环登录 解决办法

     由于我想在ubuntu上连接kinect2.0,所以安装了libfreenet,造成ubuntu桌面瘫痪,无法进入系统,现象就是启动后黑屏,只有左上角的一个白色光标,有时候删有时候不闪。。。解决办法:一:联网我是win7和ubuntu双系统,所以在win7上联网后ubuntu也能上网,便于安装软件以及更新二:更新sudo apt-get updatesudo ap...

2018-07-18 10:39:20 5174

原创 ORB-SLAM2 闭环检测 computeSim3和CorrectLoop 流程图

接上一篇博客:第四阶段:紫色线,计算当前关键帧mpCurrentKF共视的关键帧mvpCurrentConnectedKFs的纠正位姿CorrectedSim3和未纠正位姿NonCorrectedSim3,并用纠正后的位姿计算mvpCurrentConnectedKFs和mvpCurrentConnectedKFs的地图点vpMPsi的worldpose。第五阶段:蓝色线,用当前关键帧mpCurr...

2018-05-31 16:05:59 2982

原创 ORB-SLAM2 闭环检测 LoopClosing::ComputeSim3() 流程图

mpCurrentKF:当前关键帧pKF:mvpEnoughConsistentCandidates[i] detectloop给出的候选关键帧mpMatchedKF:选定的闭环关键帧vvpMapPointMatches[i]:mpCurrentKF和mvpEnoughConsistentCandidates[i] (pKF)匹配的地图点vpMapPointMatches[j]:pSolver-&...

2018-05-31 08:17:02 1973 2

原创 c++ 文件流 ifstream 读取txt文件中数或者字符串

读取数 ifstream infile; infile.open("/home/zss/Documents/ORB_SLAM2/0-612.txt"); for (int i = 0; i < 7; i++) { for (int j = 0; j < 2207; j++) { yolo_detectio...

2018-04-12 22:03:09 25768

原创 c++ 定义全局变量 不同文件中可以引用

一:extern+变量声明主函数文件:extern int a; //全局变量aint main() {    ...... return 0; } 引用变量的函数文件:using namespace std;int a;//相当于变量声明,会去extern的变量找相应的变量add(){cout<<a<<endl;}二:static类成员+...

2018-04-11 14:16:44 7002 1

原创 yolo检测结果数据整理

fid = fopen('output.txt','r');bb = textscan(fid,'%s');fclose(fid);T=zeros(1163,8);%disp(bb{1,1}{10,1});%[x,y]=find(strcmp(bb{1,1}, 'FPS:0.0')); %disp(x(:,2));aa=strfind(bb{1,1},'left=');cc=st...

2018-04-05 22:11:20 1538

原创 CmakeList中常用语法学习

一:add_library该指令的主要作用就是将指定的源文件生成链接文件,然后添加到工程中去。SHARED:库会被动态链接(动态链接库),在运行时会被加载。《视觉slam十四讲》中的例子:add_library( myslam SHARED frame.cpp mappoint.cpp map.cpp camera.cpp ...

2018-03-22 21:11:47 1674

原创 结合SLAM十四讲的示例程序理解SE3, se(3), so(3),R, t等

博客中程序参考/slambook/project/0.2/src/visual_odometry.cpp一:理解各种表示下的R,t变量关系    void VisualOdometry::poseEstimationPnP()    {        vector<Point3f> pts_3d;        vector<Point2f> pts_2d;    ...

2018-03-21 21:02:46 16271 11

原创 李群,李代数知识点总结(无数学公式)

一:为什么用李群李代数  在slam问题中,R为旋转矩阵,它是正交矩阵并且行列式为1,t是平移向量。在求解最小化重投影或者光度误差的时候,必须考虑到它们满足的约束,那么这个问题就变成了有约束优化问题。但是我们不想去求有约束的问题,因为不好求。我们更喜欢的是去求无约束问题,而且无约束问题有很多现成的解法。   于是就有大神想出我们可以去另外一个空间求解,比如李代数。最后研究表明确实通过李代数可以将求...

2018-03-21 16:15:35 3647

转载 sophus库的一些使用

参考博客:http://blog.csdn.net/robinhjwy/article/details/77334189一:SO3Eigen::Matrix3d R = Eigen::AngleAxisd(M_PI/2, Eigen::Vector3d(0,0,1)).toRotationMatrix();//由轴角构造旋转向量Sophus::SO3 SO3_R(R); ...

2018-03-21 15:38:35 1674

转载 Eigen库:旋转矩阵,旋转向量和四元数的初始化和相互转换

参考博客:http://blog.csdn.net/u011092188/article/details/77430988Eigen库中各种形式的表示如下:1: 旋转矩阵(3X3):Eigen::Matrix3d——用一个矩阵来表示空间中的旋转变换关系2: 旋转向量(3X1):Eigen::AngleAxisd——用一个旋转轴和一个旋转角来表示旋转3: 四元数(4X1):Eigen::Quater...

2018-03-21 15:18:20 9692

原创 视觉SLAM—Eigen库

一:常用基本类型Eigen::Matrix3d——3*3矩阵Eigen::Matrix3d::Identity()——3*3单位矩阵Eigen::Vector3d——3*1向量Eigen::Isometry3d——4*4变换矩阵(T)二:与cv::Mat的转换Eigen转MatEigen::Matrix3d R_;cv::Mat R(3,3);R=(Mat_<double>(3,3...

2018-03-21 10:07:52 2777

原创 视觉SLAM十四讲之向量(vector)与容器(unordered_map)的使用

一:向量 vectorvector基本操作(stl_vector.h):.size().begin() .end().push_back().clear()vector<KeyPoint>基本操作(types.hpp):.pt()//关键点的坐标.angle()//关键点的方向角vector<DMatch>基本操作(types.hpp).distance()//两匹...

2018-03-17 20:14:42 700

转载 世界坐标系,相机坐标系,图像坐标系,像素坐标系转换

参考博客1参考博客2世界 ——> 相机 (外参:R,T ) [Xc,Yc,Zc]T表示相机坐标,[Xw,Yw,Zw,1]T表示归物体所在的世界坐标。R表示旋转矩阵,T表示平移矩阵。相机 ——> 图像 (内参:f)从相机坐标系到图像坐标系,属于透视投影关系,从3D转换到2D。此时投影点p的单位还是mm,并不是pixel,需要进一步转换到像素坐标系f表示焦距。[Xc,Yc,Zc]T表示相机...

2018-03-12 14:46:40 18388 10

原创 如何在本地完成CS231n课程作业

最近开始学习斯坦福大学的CS231n课程,课程地址:网易云课堂,只有中文字幕,现在学完了1-7课时,准备着手做一下第一次作业,但是第一次接触不免有些手忙脚乱,自己探索了半天,准备写一个教程给和我一样的小白菜们,一起学习一起进步哦~实验平台:Ubuntu14.04 一:安装Anaconda下载地址:点击打开链接选择python2.7版本的64-Bit (x86) Installer (533 MB)...

2018-02-28 14:49:26 18000 22

原创 视觉SLAM或视觉里程计数据集整理

SLAM或视觉里程计1. TUM RGB-D数据集自带Ground-truth轨迹与测量误差的脚本(python写的,还有一些有用的函数)。网址:点击打开链接2. KITTI数据集地址:点击打开链接著名的室外数据集,包括单目视觉 ,双目视觉, velodyne, POS 轨迹。3. Oxford数据集含有一些Fabmap相关的数据集,用来验证闭环检测的算法。室外场景。网址:点击打开链接4. ICL...

2018-02-25 16:47:32 4729 1

原创 谷歌浏览器背景颜色设置为豆沙绿保护色详细教程!

一:如下图所示,选择三个点--更多工具---扩展程序二:选择最下面的"获取更多扩展程序",打开Google应用商店三:搜索“保护眼睛”我用的是第一个,很好用,或者也可以搜索“Apple Green”可以看到更多类似的插件。点击添加至Chrome四:可以看到这个插件已经添加到下面,打开百度一下试试看,网页的背景颜色已经变成了豆沙绿色。注意的是:在域名为http://的时候

2018-01-30 10:18:39 75712

转载 深入理解机器学习中的:目标函数,损失函数和代价函数

参考知乎回答整理:https://www.zhihu.com/question/52398145主要参考:https://www.zhihu.com/question/52398145/answer/209358209基本概念:损失函数:计算的是一个样本的误差代价函数:是整个训练集上所有样本误差的平均目标函数:代价函数 + 正则化项实际应用:损失函数和代价函数是同一个东

2018-01-29 21:20:19 36352 8

转载 ubuntu14.04:g2o安装和卸载

参考地址:http://blog.csdn.net/yoouzx/article/details/53083496?locationNum=2&fps=1一:下载依赖项libqglviewer-qt4-dev 链接: https://pan.baidu.com/s/1o8Oz3vW 密码: n7fs下载之后解压,然后进入下载目录依次安装三个文件(双击)二:下载g2o: ht

2018-01-26 16:35:29 4546 3

原创 跟高翔学习RGBD-SLAM遇到的问题总结(随更)

一:undefined reference to `cv::解决办法:链接opencv,pcl库二:undefined reference to point2dTo3d解决办法:添加 libslambase.a(截图截错了, libslambase.a前面注释应该去掉)三:error: ‘KeyPoint’ is not a member of ‘c

2018-01-26 09:31:46 3700 6

原创 与opencv斗智斗勇

经过无数次安装,卸载opencv,感觉自己萌萌哒。。。1.1:opencv2.4.8安装sudo apt-get install libopencv-dev1.2:opencv2.4.8卸载sudo apt-get --purge remove libopencv-dev2.1:opencv2.4.9安装下载源码包:https://github.com/opencv/opencv注意要选择2.4....

2018-01-25 15:29:12 457

原创 深入理解卡尔曼滤波

参考博客:http://blog.csdn.net/zkl99999/article/details/46619771参考知乎链接里肖畅的回答:https://www.zhihu.com/question/23971601/answer/46480923首先,需要明确的一点是滤波的概念:filtering is weighting(滤波即加权),滤波的作用就是给不同的信号分量不同的权重

2018-01-15 21:48:40 443

原创 Ransom Note

bool canConstruct(char* ransomNote, char* magazine) { unsigned int rason[256]={0}; unsigned int mag[256]={0}; int i=0; for(i=0;i<strlen(ransomNote);i++) { rason[ransomNote[

2017-01-13 21:45:52 578

原创 Minimum Moves to Equal Array Elements

方法一:找规律直接输出int minMoves(int* nums, int numsSize) { int i,sum,tempmin; sum=tempmin= nums[0];//记住一定要拿到外面,否则循环一次付一次nums[0],sum也要拿到外面,要不然少一个nums[0] for (i = 1; i < numsSize; i++) { if (nums[i]

2017-01-13 20:08:38 231

原创 Move Zeroes

方法一:C++遇见非0往前交换,0往后窜swap时要包含以下两个:#includeusing namespace std;子函数:void moveZeroes(int* nums, int numsSize) { int last = 0, cur = 0; while (cur < numsSize) { if (nums[cur] != 0) { swap(

2017-01-11 20:47:30 221

原创 Assign Cookies

方法一:int compInc(const void *a, const void *b){ return *(int *)a - *(int *)b;}int findContentChildren(int* g, int gSize, int* s, int sSize) { int i, j, count = 0, a = 0; qsort(g, gSize, sizeof(

2017-01-11 20:07:15 218

原创 Invert Binary Tree

方法一:struct TreeNode* invertTree(struct TreeNode* root) { TreeNode* temp; if(root==NULL) return root; temp=root->left; root->left=invertTree(root->right); root->right=invertTree(t

2017-01-11 19:15:24 205

原创 Add Digits

方法一:这道题让我们求树根,所谓树根,就是将大于10的数的各个位上的数字相加,若结果还大于10的话,则继续相加,直到数字小于10为止。那么根据这个性质,我们可以写出一个解法如下:class Solution {public: int addDigits(int num) { while (num / 10 > 0) { int sum

2017-01-11 16:38:02 214

原创 Find the Difference(类似 Single Number)

#include#include#includechar findTheDifference(char* s, char* t) { int i, j,s1=0,s2=0; for (i = 0; i < strlen(s)+1; i++) { s1 += s[i]; s2 += t[i]; } return(char)(s2 - s1);}int main(){

2017-01-11 16:14:11 203

原创 二叉树深度(最大和最小)

/**最大深度 * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */int maxDepth(struct TreeNode* root) { i

2017-01-11 15:49:52 406

原创 Sum of Two Integers计算机如何实现两个数相加

int getSum(int a, int b) { int sum = a; while (b != 0) { sum = a ^ b;//calculate sum of a and b without thinking the carry b = (a & b) << 1;//calculate the

2017-01-10 20:13:27 518

原创 Single Number奇数个数 偶数个数

nt singleNumber(int a[], int n) { int num = 0; for (int i = 0; i < n; ++i) { num ^= a[i]; } return num; }解释:What if the input is {1,1,2,2,0}? 就是两个一样的异或就是0,有一个不一样的异或出来就

2017-01-10 19:51:59 444

原创 Nim Game 博弈游戏

这句话很重要:你俩一个套路Both of you are very clever and have optimal strategies for the game当n∈[1,3]时,先手必胜。当n == 4时,无论先手第一轮如何选取,下一轮都会转化为n∈[1,3]的情形,此时先手必负。当n∈[5,7]时,先手必胜,先手分别通过取走[1,3]颗石头,可将状态转化为n == 4时的

2017-01-10 16:42:33 269

原创 Find All Numbers Disappeared in an Array

//注意:数组个数与最大数一致#include#include#includeint* findDisappearedNumbers(int* nums, int numsSize, int*returnSize) { int *zss = (int *)malloc(sizeof(int)*numsSize); int *zs = (int *)malloc(sizeof(int)*n

2017-01-10 16:19:33 236

原创 Island Perimeter 求四邻域有几个1的问题

子函数:int islandPerimeter(int** grid, int gridRowSize, int gridColSize) { int i, j, k=0; for (i = 0; i < gridRowSize; i++) { //grid[i] = (int*)malloc(sizeof(int) * gridRowSize);有就错了 for (j = 0

2017-01-09 22:26:16 437 1

原创 二维数组和二级指针

二级指针:int a[SIZE][SIZE];int **p = a;这样是不行的但是可以这样:int**p = (int**)malloc(sizeof(int*)*SIZE);for (int i = 0; i < SIZE; i++) {p[i] = (int*)malloc(sizeof(int)*SIZE);}然后就可以这么用了 p[i][j]。想要指向二维数组

2017-01-09 20:54:45 278

原创 Reverse String反向输出字符串

首先:runtime error的原因 一种是内存错误吧,例如访问了未定义的某块内存空间,int arr[8];但是访问了arr[8]这个元素。或者int *n = NULL; *n = 10;这种也会报内存错吧。还有就是有endless loop吧,可能没有能使程序跳出某循环的条件存在。方法一:程序:char* reverseString(char* s) { int i,

2017-01-09 18:57:40 385

原创 FizzBuzz

实际运行时头文件:vs2013#if _MSC_VER#define snprintf _snprintf#endif#pragma warning(disable: 4996)方法一:char** fizzBuzz(int n, int* returnSize) { int i; char **ret; char *buf; ret = (char **)cal

2017-01-09 16:49:56 319

转载 char *,char**,char***

char s1[10];s1[0] s1[1]等都是chars1是char*,等同于&s1[0]char*s2[10];s2[0] s2[1]等都是char**s2[0] *s2[1]等都是char,是s2[0] s2[1]指向的字符串的第一个字符s2是char**,等同于&s2[0]char**s3[10];s3[0] s3[1]等都是char***s

2017-01-08 21:40:52 412

空空如也

空空如也

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

TA关注的人

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