自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JinLn的博客

南山静修僧

  • 博客(94)
  • 资源 (8)
  • 收藏
  • 关注

原创 总结SLAM论文主要创新点和论文分类 —— 持续更新ing

持续更新1. 适用于大规模动态环境的鲁棒稠密地图Robust Dense Mapping for Large-Scale Dynamic Environments文章发表时间:2018年5月文章下载链接:Robust Dense Mapping for Large-Scale Dynamic Environments开源链接:http://andreibarsan.github.io/dynslam创新点:一种针对大型动态城市环境的基于立体声的稠密地图算法。研究了两种不同的最新实时立体..

2020-12-24 15:57:58 2880 2

原创 什么,你还不会使用AI修复老照片?

使用GPEN网络修补人脸、增强人脸、黑白照片上色等

2022-04-14 10:17:03 2301

原创 Linux面经

面经

2022-04-11 09:54:25 3029

原创 进华为你必须了解的——华为精神

1)吃苦耐劳精神几乎每个华为人都备有一张床垫,卷放在各自的储存铁柜的底层或办公桌、计算机台的底下,外人从整齐的办公环境中很难发现这个细节。午休的时候,席地而卧,方便而适用。晚上加班,夜深人静,灯火阑珊,很多人却不回宿舍,就这一张床垫,累了睡,醒了再爬起来干,黑白相继,没日没夜。可以说,一张床垫半个家,华为人是携着这样一张张床垫走过8年创业的艰辛与卓越。颜色各异、新旧杂陈的一张张床垫,载着华为人共同的梦想。床垫文化的意味也从早期华为人身体上的艰苦奋斗发展到现在思想上的艰苦奋斗,构成华为文化一道独特的风景。

2022-04-11 09:49:43 6583

原创 SLAM面经

一部分SLAM面试问题

2022-04-11 09:46:23 1400

原创 单目测距中的H矩阵

// 计算经过H矩阵转换的点位置 /** * @brief TransportpointforH * @param inpoint 输入点 * @param outpoint 输出点 * @param H 转换矩阵 */ void TransportpointforH(Point2f &inpoint, Point2f &outpoint, Mat H) { cv::Mat_&lt...

2022-04-07 11:27:34 564

原创 C++和Python之间互调用,c++ Mat和openncv_python cv2互转

C++和python互通

2022-01-12 11:26:18 1925

原创 EVO自动处理SLAM数据脚本

evo自动批量处理SLAM数据

2021-12-30 17:32:51 570

原创 构建二叉树C++

#include<iostream>#include <vector>using namespace std;struct Node { int val; Node* left; Node* right; Node() {} Node(int val_):val(val_) {} Node(int val_, Node* left_, Node* right_) :val(val_), left(left_), right(right){}};//层序数组

2021-09-24 13:03:29 200

原创 顺时针打印矩阵

#include <iostream>#include <vector>using namespace std;void printMatrix(vector<vector<int> > m) { if (m.empty()) return; int rows = m.size(); int cols = m[0].size(); // 四个角落 int left = 0; int right = cols - 1; int top =

2021-09-22 21:00:28 59

原创 最近最少使用算法LRU

#include <iostream>#include <unordered_map>using namespace std;// 双向链表节点struct DLinkedNode { int key, val; DLinkedNode* pre; DLinkedNode* next; DLinkedNode() : key(0), val(0), pre(nullptr), next(nullptr) {} DLinkedNode(int _key,int _

2021-09-22 19:24:28 139

原创 重排链表.

leetCode 143#include<iostream>#include<vector>using namespace std;struct Lis { int val; Lis* next; Lis() :val(0), next(nullptr) {} Lis(int x) :val(x), next(nullptr) {} Lis(int x, Lis* next) :val(x), next(next) {}};vo

2021-09-11 20:45:31 75

原创 m个数的全排列、// n个数取m个数出来

#include <iostream>#include <string>#include <vector>#include <algorithm>#include <stack>using namespace std;//m个数的全排列void AllRange(vector<int>& nums, vector<vector<int>>& sub, int k, int m) {

2021-08-25 15:36:39 176

原创 KMP算法

#include<iostream>#include<vector>#include<string>using namespace std;// 最大相等前后缀int preh(string s) { int n = s.size(); int j = n-1; while (j) { if (s.substr(0, j) == s.substr(n - j , j)) { break; } else { j--; } }

2021-08-25 15:34:33 73

原创 C++面经

持续更新1. vector是怎么实现的?2. 使用vector有什么要注意的?3. 一个程序的内存模型是怎么样的?他们都有什么用?4. 四次挥手的time_wait有什么用?5. 如果出现了非常多的time_wait,会有什么影响?怎么解决?6. c++多态如何实现?7. c++vector迭代器失效场景?8. c++如何避免内存泄漏?9. share_ptr是线程安全的吗?10. 多线程11. 解决hash冲突的办法12. C++11 最常用的新特性如下/标准模板库,哪些数据结构13. 进程和线程关系及区

2021-07-28 18:09:42 1314 1

原创 笔试编程题目1-百度

笔试编程题目1-百度1、翻硬币2、取数1、翻硬币桌子上放着N枚硬币,将其从1到N编号,初始时有的正面朝上,有的反面朝上。现在要将所有硬币翻至正面朝上,每次可选择一个区间[L,R](1≤L≤R≤N),并执行以下两种操作的一种:(1)将编号为L到R的硬币翻面;(2)若编号为L到R的硬币均反面朝上,则将其翻至正面朝上。其中操作①所需代价为x,操作②的代价为y,那么将所有硬币翻至正面朝上的总代价最少是多少?输入第一行包含三个整数N,x和y,1≤N≤10^5,1≤x,y≤10。第二行包含N个空格隔开的

2021-06-01 16:50:59 630

原创 Qtcmake设置

2021-01-26 20:18:28 216

原创 ORBSLAM中单应矩阵求解

ORBSLAM中单应矩阵求解1. 单应矩阵求解2.用DLT方法求解单应矩阵H3. 三角化求深度4. 使用RT三角化1. 单应矩阵求解/** * @brief 计算单应矩阵,假设场景为平面情况下通过前两帧求取Homography矩阵,并得到该模型的评分 * 原理参考Multiple view geometry in computer vision P109 算法4.4 * Step 1 将当前帧和参考帧中的特征点坐标进行归一化 * Step 2 选择8个归一化之后的点对进行迭代 * Step

2021-01-21 16:45:29 518

转载 ubuntu 16.04修改Swap空间大小

当你需要重新修改增加交换空间Swap的大小时候,这个方法非常有效,实测没问题,放心使用提高服务器响应速度和防止应用程序内存不足错误的最简单方法之一是添加一些交换空间。 在本指南中,我们将介绍如何将交换文件添加到Ubuntu 16.04服务器。但是,请注意:尽管swap区通常建议用于使用传统旋转硬盘驱动器的系统,但使用与SSD交换可能会导致随着时间的推移硬件退化问题。 由于这个考虑,我们不建议在DigitalOcean或任何其他使用SSD存储的供应商上启用swap分区。 这样做可能会影响到您和您的邻.

2021-01-19 16:09:41 1421

原创 QT 中设置CMAKE编译核心数量,加快编译

QT 中设置CMAKE编译核心数量,加快编译CMAKE_CODEBLOCKS_MAKE_ARGUMENTS -j8

2021-01-18 14:08:35 1166

原创 Ubuntu 多线程程序报错 `error: undefined reference to ’pthread_create‘`

Ubuntu 多线程程序报错 error: undefined reference to ’pthread_create‘解决方法在CMakeLists文件中加入// 文件头部set(THREADS_PREFER_PTHREAD_FLAG ON)find_package(Threads REQUIRED)// add_executable(main Examples/main.cpp)后面target_link_libraries(main Threads::Threads)...

2020-12-12 10:55:34 179

原创 undistortPoint函数的实际用法

undistortPoint函数介绍请看:传送门 Point p0 , _p0; cv::Mat mat(1,2,CV_32F); mat.at<float>(i,0)=p0.x; mat.at<float>(i,1)=p0.y; mat=mat.reshape(2); cv::undistortPoints(mat,mat,K2, D2, R2, P2); mat=mat.reshape(1);

2020-11-30 19:48:00 1248

原创 在ROS上运行ORB_SLAM3双目stereoslam

1. 准备工作看前一篇之前运行了slam单目,ORB_SLAM2和ORB_SLAM3在ROS上运行monoslam不同之处是发布相机的节点多一个,修改相机打不节点请看rm_stereo_distort其他基本都是和mono_slam 一样2. 运行ORB_SLAM3rosrun ORB_SLAM3 Stereo /home/jinln/catkin_ws/src/ORB_SLAM3/Vocabulary/ORBvoc.txt /home/jinln/jinln/DATASET/baslers

2020-11-25 18:09:26 1766 1

原创 ORB_SLAM2和ORB_SLAM3在ROS上运行monoslam

1.参考博客https://blog.csdn.net/xyt723916/article/details/89388188https://blog.csdn.net/qq_27339501/article/details/109682210https://blog.csdn.net/qq_42585108/article/details/105519029https://blog.csdn.net/qq_42585108/article/details/105563648感谢以上博客的指点2.

2020-11-25 09:52:53 1516 2

原创 evo画轨迹

evo_traj kitti KITTI_00_ORB.txt MF-SLAM_00.txt --ref=KITTI_00_gt.txt -p --plot_mode=xz

2020-11-23 15:11:20 672

原创 CmakeLists中写加入C++11

CmakeLists C++11 时间特性和其他相关11要求include(CheckCXXCompilerFlag)CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)if(COMPILER_SUPPORTS_CXX11) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}

2020-11-18 16:01:31 1838

原创 glob函数批量命名文件夹内图片

这种方法的好处是不用管文件名类型CV_EXPORTS void glob(String pattern, std::vector& result, bool recursive = false);#include <iostream>#include <opencv2\opencv.hpp>#include<string>#include<vector>using namespace cv;using namespace std;.

2020-11-06 10:52:26 204

原创 ubuntu Basler相机怎么设置静态IP

1. 在basler官网下载baler相机ubuntu驱动,并安装,默认安装地址为/opt/pylon5https://www.baslerweb.com/cn/sales-support/downloads/2. 打开路径/opt/pylon5/bin/IpConfigurator可执行文件,并将basler相机网口接入主机,接入一个网口相机后,可看到界面:3. 点击对应相机,并选择Static IP;4. 填入IP address 、Subnet Mask、Gateway,之后点击保存,就可更

2020-11-04 21:47:44 1718

原创 VScode运行ORBSLAM3

VScode编译ORBSLAM1. 创建c_cpp_properties.json文件2. 创建tasks.json1. 创建c_cpp_properties.json文件按ctrl + shift + P打开vscode控制台(记住此快捷键,以后经常用),输入C/Cpp: Edit configurations,就自动生成了一个c_cpp_properties.json文件,这样你就可以在该文件中编写参数来调整设置我的c_cpp_properties.json{ "configuratio

2020-11-03 18:01:18 1196

原创 在图片上写上点的坐标

sprintf(temp0, "(%d,%d)", maxPos.x, maxPos.y); sprintf(temp1, "(%d,%d)", rightbottom.x, rightbottom.y); Point text; text.x=rightbottom.x-100; text.y=rightbottom.y-20; putText(srcImage ,temp0, maxPos, CV_FONT_...

2020-10-30 07:41:47 300

原创 ubuntu循环读取图片

int i=300; std::string left = "/home/jinln/jinln/DATASET/baslerstereodata/20201019/2020101901/image_0/*.png"; std::string right = "/home/jinln/jinln/DATASET/baslerstereodata/20201019/2020101901/image_2/*.png"; std::vector<cv::String> imag

2020-10-29 21:51:50 243

原创 NCC归一化相关匹配算法,这个时间比较久

原作者#include <opencv2/opencv.hpp>using namespace cv;//纯粹的归一化相关匹配算法,没有用到任何提速手段,纯ncc函数运行时间大约在23秒左右void ncc(Mat& srcImage, Mat& templImage, Mat& result){ int rows = srcImage.rows - templImage.rows + 1; assert(templImage.rows <=.

2020-10-29 21:04:39 1478 1

原创 用opencv调用摄像头进行拍照,按空格拍照(可连续拍摄多张),然后按esc退出拍照 在拍摄的第一张照片上选择roi,自动显示roi图片

用opencv调用摄像头进行拍照,按空格拍照(可连续拍摄多张),然后按esc退出拍照 在拍摄的第一张照片上选择roi,自动显示roi图片

2020-10-29 20:51:16 807

转载 使用opencv在图像上绘制圆、矩形

转至 OpenCV探索之路(十四):绘制点、直线、几何图形

2020-10-27 21:16:48 1228

原创 ORBSLAM3双目匹配增加左相机索引

void Frame::ComputeStereoMatches(){ mvuRight = vector<float>(N,-1.0f); mvuLeft = vector<float>(N,-1.0f); mvDepth = vector<float>(N,-1.0f); const int thOrbDist = (ORBmatcher::TH_HIGH+ORBmatcher::TH_LOW)/2; const int

2020-10-25 15:42:41 395

原创 orbslam2的双目匹配机制代码注释

/* * 双目匹配函数 * * 为左图的每一个特征点在右图中找到匹配点 \n * 根据基线(有冗余范围)上描述子距离找到匹配, 再进行SAD精确定位 \n ‘ * 这里所说的SAD是一种双目立体视觉匹配算法,可参考[https://blog.csdn.net/u012507022/article/details/51446891] * 最后对所有SAD的值进行排序, 剔除SAD值较大的匹配对,然后利用抛物线拟合得到亚像素精度的匹配 \n * 这里所谓的亚像素精度,就是使用这个拟合得到一个小于

2020-10-22 22:18:19 985 2

原创 CMakeList.txt

CMakeList.txt

2020-10-22 09:18:52 66

原创 opencv的掩膜mask

#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include <iostream>#include <stdio.h>using namespace std;using namespace cv;int main(){ Mat image, mask; Rect r1(100, 100, 250, 300); Mat img1, img2, img3,

2020-10-21 10:21:46 530

原创 RANSAC随机采样一致性筛选特征点

#include <iostream>#include "opencv2/opencv.hpp"#include "opencv2/core/core.hpp"#include "opencv2/features2d/features2d.hpp"#include "opencv2/highgui/highgui.hpp"using namespace cv;using namespace std;int main(int argc, char** argv){ Mat ob

2020-10-10 10:40:06 449

原创 各种排序算法

各种排序算法1. 冒泡排序2. 选择排序3. 插入排序4. 希尔排序5. 快速排序6. 归并排序7. 堆排序完全代码 排序时间快慢比较: 快速>合并>希尔>堆>插入>选择>冒泡1. 冒泡排序//冒泡排序void BubbleSort(int arr[], int length) { for (int i = 0; i < length-1; i++) { for (int j = 0; j<length-i-1; j++) { i

2020-09-25 15:58:37 53

Moving object detection for camera pose

文献

2021-12-14

SaveimgBasler.tar.gz

采集图片

2020-08-07

baslerSaveVideo.tar.gz

保存视频和图片

2020-08-07

bag2jpg.txt

#Build cd <sdk> make ros #Run source wrappers/ros/devel/setup.bash roslaunch mynt_eye_ros_wrapper mynteye.launch #With RViz to preview source wrappers/ros/devel/setup.bash roslaunch mynt_eye_ros_wrapper display.launch #以上命令链接https://github.com/slightech/MYNT-EYE-S-SDK/tree/master/wrappers/ros #使用rosbag记录.bag文件(录制数据子集) rosbag record -O newbag /mynteye/left/image_raw /mynteye/right/image_raw /mynteye/left_rect/image_rect /mynteye/right_rect/image_rect #ROS 提供了改变 topic 发布频率的节点throttle, (通常设备采集的频率为 20-60 hz, 这会使得标定的图像过多, 而导致计算量太大. 最好将ros topic的频率降低到4hz左右进行采集.)指令如下 :

2020-07-07

你需要的全部opencv安裝步驟.txt

1.依賴 sudo apt-get install build-essential -y sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev -y sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev -y # 处理图像所需的包 sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev -y sudo apt-get install libxvidcore-dev libx264-dev -y # 处理视频所需的包 sudo apt-get install libatlas-base-dev gfortran -y # 优化opencv功能 sudo apt-get install ffmpeg -y

2020-06-30

基于CUDA的opencv安裝步驟.txt

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 [1] 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。 OpenCV用C++语言编写,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令, 如今也提供对于C#、Ch、Ruby,GO的支持

2020-06-18

Systematic Handling of Heterogeneous Geometric.pdf

摘要本文提出了一种支持点、线、面映射的位姿地标图优化后端。我们的后端允许同时表示同质(点-点,线-线,平面)和异质测量(点-线,点-面,线-面)。我们并没有独立地处理所有的情况,而是使用统一的公式,从而得到紧凑的推导和简洁的实现。由于使用了更高维的基元和约束,得到了更多的几何信息,增强了算法的鲁棒性,拓宽了算法的收敛范围。我们从合成数据和原始数据两方面对所提出的公式进行了评估。最后,我们提供了一个开源实现来复制实验。

2020-04-01

Multi-camera visual SLAM for autonomous navigation of micro aerial vehicles .pdf

本文提出了一种视觉同步定位与映射(SLAM)系统,该系统集成了多个摄像机的测量数据,实现了未知复杂环境下微型飞行器(MA-Vs)自主导航的鲁棒姿态跟踪。分析了多摄像机情况下视觉SLAM姿态跟踪和地图细化的迭代优化问题。分析确保了每次优化更新的正确性和准确性。扩展了一个著名的单目视觉SLAM系统,在最终的实现中使用了两个具有非重叠视场(fov)的摄像机。由此产生的视觉SLAM系统使MAV能够在复杂的场景中自主导航。当星载计算能力允许时,这个系统背后的理论可以很容易地扩展到多摄像头配置。对于大规模环境中的操作,我们将得到的视觉SLAM系统修改为一个恒定时间鲁棒的视觉里程计。为了形成一个完整的视觉SLAM系统,我们进一步实现了一个高效的闭环后端。后端维护一个基于关键帧的全局映射,该映射也用于循环闭合检测。提出了一种自适应窗口位姿图优化方法,用于优化全局地图的关键帧位姿,从而修正视觉里程测量中固有的位姿漂移。在自主飞行和人工飞行的实验中,我们证明了所提出的视觉SLAM算法在MA-Vs机载应用中的有效性。将姿态跟踪结果与外部跟踪系统提供的地面真实数据进行比较。

2020-03-31

空空如也

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

TA关注的人

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