自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 摄像机高精度标定的一些方法

摄像机标定从标定板类型可以分为:一维标定物,二维标定物和三维标定物(哈哈)一维标定物标定算法是利用摄像机投影过程中的交比不变性的原理,常用来标定摄像机阵列(多个摄像机)。具体原理可参考:基于一维标定物的多摄像机标定。一维标定物见下图所示,一个直杆上有3个点,三个点之间的距离需要实现精确测量。在标定过程中,只需要在各个摄像机的视场空间不断挥动标定杆,就可以精确标定摄像机的内外参数。一维标定物在多摄像机标定中使用起来非常灵活方便,非常建议在该种场景下使用。(在这里特别感谢一下吴福朝,张广军等人在早期对传统的

2020-05-25 23:10:50 11843 21

原创 ORB特征提取详解

ORB(Oriented FAST and Rotated BRIEF)是一种快速特征点提取和描述的算法。这个算法是由Ethan Rublee, Vincent Rabaud, Kurt Konolige以及Gary R.Bradski在2011年一篇名为“ORB:An Efficient Alternative to SIFTor SURF”的文章中提出。ORB算法分为两部分,分别是特征点提取和特征点描述。特征提取是由FAST(Features from Accelerated Segment Test

2016-09-22 18:46:48 88732 20

原创 vector resize()函数重新分配地址

std::vector resize() 函数void resize (size_type n, value_type val = value_type());改变容器的大小使他包含n个元素。如果n小于当前容器大小,则内容减少到前n个元素,移除后面的元素。如果n大于当前容器大小,则在后面插入一些元素至n个大小,如果val被定义,则插入val的复制,否则插入默认值0。如果n大于当前容器的容量capacity,则自动进行内容重新分配。使用resize时,如果n大于capacity,则会重新分配地址空间;

2022-06-21 16:40:51 502 1

原创 相机模型和标定

1.Mei模型:Mei模型相机标定-matlab版本:https://www.robots.ox.ac.uk/~cmei/Toolbox.html#downloadMei模型相机标定-c/c++版本: https://github.com/hengli/camodocal (其中也包括pinhole, KB等模型标定)Mei模型相机标定-Opencv版本: https://docs.opencv.org/master/dd/d12/tutorial_omnidir_calib_main.html

2021-01-06 14:09:44 1894

原创 Eigen Matrix中的行优先,列优先问题

Eigen::Matrix<type, row, col> 默认是行优先,因此在做数据传递是要特别谨慎. 因此c++中的数据传递进来要指定行优先,才不至于出错:Eigen::Map<Eigen::Matrix<float, 3, 2, Eigen::RowMajor>> col_x2(arr)例如下面例子:#include <iostream>// Eigen#include <Eigen/Core>#include <Ei

2020-12-10 10:44:14 3221

原创 c++函数返回引用,并赋值给引用对象

函数返回引用时,返回值不需要另外申请临时对象,直接返回引用本身,大大节省了程序执行效率.但是函数返回引用后,直接赋值给引用对象和非引用对象也是很重要的一点,直接看下面例子:#include <iostream>#include <vector>#include <chrono>using namespace std;std::vector<double> v1;std::vector<double> v2;std::vector

2020-06-23 14:45:04 3463

原创 基于python3的ros melodic源代码编译安装

1. 卸载已安装的ros版本sudo apt-get remove ros-*sudo apt-get remove ros-melodic-*sudo apt-get autoremove修改.bashrc内容, 注释掉 #source /opt/ros/melodic/setup.bashvim ~/.bashrc#source /opt/ros/melodic/setup.bash删除source list文件sudo rm -rf /etc/ros/rosdep/sourc

2020-06-19 12:41:13 3224 5

原创 基于pybind11的python调用c++模块

基于ubuntu 18.04系统,使用python3调用c++生成的动态链接库1. pybind11的三种安装方式:(1) 命令安装sudo apt-get install python-pybind11(2) pip命令安装pip3 install pybind11(3) 源码编译安装pip3 install pytestgit clone https://github.com/pybind/pybind11.gitcd pybind11mkdir buildcd buil

2020-06-17 11:07:18 2941 1

原创 ubuntu nvidia和intel双显卡切换

现在很多PC上都会有intel集成显卡和nvidia独显。一般在切换时在终端输入:nvidia-settings,然后在PRIME Profiles选项卡中进行切换,如下图:然而很多时候,Nvidia X Server Settings中没有PRIME Profiles选项无法切换显卡,需要用命令方式切换:sudo prime-select query intel # 切换至intel显卡sudo prime-select query nvidia # 切换至nvidia显卡sud..

2020-06-12 14:23:16 2270

原创 code - 数组中的第K个最大元素

题目来源:leetcode链接:https://leetcode-cn.com/problems/kth-largest-element-in-an-array/215. 数组中的第K个最大元素难度中等483收藏分享切换为英文关注反馈在未排序的数组中找到第k个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例2:输入: [3,2,3,1,2,...

2020-05-26 18:43:13 202

原创 code - 搜索旋转排序数组

题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/search-in-rotated-sorted-array假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,1,2,4,5,6,7]可能变为[4,5,6,7,0,1,2])。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回-1。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是O(logn) 级别。...

2020-05-25 11:20:36 108

原创 std标准库中 map, set, unordered_map, unordered_set插入方法比较

std标准库中存在map, set, unordered_map, unordered_set这四种结构,其中map包括key 和value 组成,set只有key(键值)。unordered_map和unordered_set是通过哈希表(hash)的形式存储数据,以适应更快速的查找。需要注意的是这四种数据结构,在存储列表中都不回出现相同的键值的。set和unordered_set只能通过insert()函数插入数据,如果set中已经存在该简直,则insert()函数插入失败,不改变set队列,直..

2020-05-22 15:37:00 1626

原创 code - 复原IP地址

题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/restore-ip-addresses著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 '.' 分隔。示例:输入: "25525511135"输出: ["255.255.11.135", "255.255.1

2020-05-20 15:12:09 341

原创 code-简化路径

题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/simplify-path著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (..)表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。更多信息请参阅:Linux / Unix中的绝对路.

2020-05-19 11:37:49 178

原创 code-翻转字符串里的单词

题目引自leetcode:https://leetcode-cn.com/problems/reverse-words-in-a-string/给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: "the sky is blue"输出:"blue is sky the"示例 2:输入: " hello world! "输出:"world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: "a ...

2020-05-18 14:28:28 120

原创 code-字符串相乘

题目引自:https://leetcode-cn.com/problems/multiply-strings/43. 字符串相乘给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1和num2的长度...

2020-05-18 10:44:14 111

原创 code-字符串的排列

给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。换句话说,第一个字符串的排列之一是第二个字符串的子串。示例1:输入: s1 = "ab" s2 = "eidbaooo"输出: True解释: s2 包含 s1 的排列之一 ("ba").示例2:输入: s1= "ab" s2 = "eidboaoo"输出: False注意:输入的字符串只包含小写字母两个字符串的长度都在 [1, 10,000] 之间class Solution ..

2020-05-15 18:37:56 157

原创 摄像机中的基础矩阵

基础矩阵也叫做基本矩阵。基础矩阵描述的是图像点与其对应极线的对应关系。也就是说基础矩阵是极几何的代数表示。基础矩阵的推导方式比较难看懂。具体的可以参考吴福朝的计算机视觉中的数学方法。这本书很不错,特别推荐。  在理解基础矩阵之前要先搞懂摄像机投影关系和极几何的知识。   如上图,I,I'为两个摄像机的成像平面。空间中的一点X在摄像机C下的投影m,在C'下的投影为m'。e和e'为

2015-06-26 16:41:14 2161 1

原创 opencv2 Mat分配的数据空间

这里先从Mat的几种初始化说起。(1) Mat::Mat()(2) Mat::Mat(int rows, int cols, int type)(3) Mat::Mat(Size size, int type)(4) Mat::Mat(int rows, int cols, int type, constScalar& s)(5) Mat::Mat(Size size, int

2015-01-19 15:41:46 2878

相机标定\数码相机标定方法研究

相机标定中摄像机内参以及外部参数的确定方法

2012-09-25

空空如也

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

TA关注的人

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