自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 手眼标定Tsai方法的Matlab仿真分析

手眼标定方程推导手眼标定求解:Tsai方法

2019-08-06 23:51:04 7024 22

原创 算法导论复习与实践(一):插入排序与归并排序

是否拥有扎实的算法知识和技术基础,是区分真正熟练的程序员与新手的一项重要特征。虽然利用当代的计算技术,无需了解很多算法方面的知识,也可以完成一些任务,但是如果有良好的算法基础和背景的话可以做更多的事情,并且拥有更强的思维能力。学生时期虽然全面学习过算法导论里的相关知识,但是学生时没有太多的编程经验,实践算法时候需要边看书上的伪代码边写程序才能实现,经过工作几年,很多知识已经不记得了。现在想重新拿起...

2019-03-28 20:08:06 597

原创 朴素贝叶斯分类算法公式推导

文章目录1、贝叶斯公式理解2、朴素贝叶斯分类由于学习《机器学习:算法原理与编程实践》,对一些算法进行总结,加深理解与记忆。1、贝叶斯公式理解我们上高中学概率就有接触贝叶斯公式:其中P(A)为样本空间中事件A的概率,P(B)为样本空间中事件B的概率,P(A|B)为事件B发生的条件下事件A发生的概率,P(B|A)为事件A发生的条件下事件B的概率,P(A)和P(B)称为全概率,P(A|B)和P(B...

2019-03-24 01:47:39 2196

原创 matlab单目相机标定

文章目录1、标定图片2、标定3、获取标定结果使用matlab进行相机参数标定非常方便,相机畸变模型请参考另一篇文章相机内参与畸变模型,单目相机标定的结果就是得到相机内参与畸变系数。1、标定图片首先,需要使用待标定的相机获取标定板的图片,这里使用棋盘格作为标定板。采集标定板图片需要在相机各个方位进行拍摄,不要在同一个位置获取多张图片,标定板的大小根据相机视野而定,一般选择棋盘格图案占图片大小的...

2019-03-23 21:17:02 4694 20

原创 四元数运算与姿态变换

描述旋转有几种方式:旋转矩阵、欧拉角、旋转向量、四元数。旋转矩阵用9个量描述3个自由度,具有冗余性;欧拉角和旋转向量虽然是紧凑的,但是具有奇异性;因此某个牛人找到了四元数,既紧凑又没有奇异性。1. 四元数表示一个四元数有一个实部和三个虚部:q=qw+qxi+qyj+qzkq = q_w + q_xi+q_yj+q_zkq=qw​+qx​i+qy​j+qz​k2. 四元数运算qa=wa+xa...

2018-12-19 19:19:41 7986

原创 旋转矩阵(Rotation matrix):旋转轴与旋转角 ( axis and angle )

任意旋转都可以用一个旋转轴和一个旋转角来表示;旋转向量是方向与旋转轴一致,长度等于旋转角,这样一个三维向量即可描述旋转;假设有一个旋转轴为n,角度为θ的旋转,那旋转向量则为θn。旋转向量到旋转矩阵可以根据罗德里格斯公式Rodrigues’s Formula进行转换:参考:https://en.wikipedia.org/wiki/Rotation_matrix旋转矩阵同样也可以用如下表达式...

2018-11-21 10:08:35 30211 4

原创 手眼标定(二):Tsai 求解方法

在手眼标定(一)中介绍了机械臂一次运动过程可以推导出手眼标定方程Hg * Hce = Hce * Hc,本节介绍Tsai方法求解手眼标定方程。若要算出Hce就需要进行多次运动得到多组方程进行求解。我们记每组方程为: Hgij * Hce = Hce * Hcij:符号解释:Pgij: 是 Rgij 对应的旋转轴。Pce: 是 Rce 对应的旋转轴。Pcij: 是 Rcij 对应的旋转轴...

2018-11-13 12:58:57 15262 5

原创 手眼标定(一):AX = XB方程详细推导

2018-11-06 14:49:23 17092 27

原创 C++适配器类——修改其它类接口

适配器类是一种接口类类型,为其它现有面向对象类型提供封装器,也就是说它将一个类的接口转换成另一个类接口的样子。在有些情况下,某个类可能表示了我们需要的数据且包含对数据的基本操作,但我们需要将这个类的接口调整或重新定义。适配器的两种实现途径,第一种是使用继承,第二种是使用模板将类封存。继承方式先看下面两个类:#include<iostream>class Math

2018-10-23 10:46:22 505

原创 C++抽象类

抽象类用于为所有子类提供布局和蓝图的基类,至少必须有一个纯虚函数,不能声明此类型对象,必须派生新类,对抽象基类中声明的所有纯虚函数提供实际定义,抽象类必须至少有一个后代它才会发挥作用。抽象类不是一种语言结构,但它被C++语言结构所支持。例如:#include<pthread.h>class A{public: virtual void lock() = 0; virtu...

2018-10-10 19:08:25 1618

原创 相机内参与畸变模型

相机内参包括相机矩阵参数和畸变系数。相机内参矩阵为3*3的矩阵:M = [fx 0 ppx ; 0 fy ppy ; 0 0 1]畸变系数:k1 k2 k3 p1 p2首先看一下无畸变情况下,已知相机坐标系内的一个点[xc, yc, zc],通过内参矩阵求出该点在图像平面的投影点[u, v]。如下图,其中M矩阵边上相机的内参矩阵,x = xc / zc, y = yc...

2018-09-28 19:47:07 8943 1

原创 C++常用新特性: std::bind && std::function

dkjf

2018-09-26 20:27:51 451

原创 rodrigues.m

在手眼标定中需要使用罗德里格斯计算旋转矩阵对应的旋转轴rodrigues.m文件内容如下:function [out,dout]=rodrigues(in)% RODRIGUES Transform rotation matrix into rotation vector and viceversa.% % Sintax: [OUT]=RODRIGUES(IN)% If I...

2019-08-06 23:49:25 1119

原创 gflag小测试

gflags是google开源的命令行参数解析工具,使用方便,支持从环境变量和配置文件中读取参数,现在来做一些小测试,下面程序测试使用-version查看应用程序版本号、使用-help查看应用程序帮助文档、解析命令行参数、及显示参数信息.相关函数:gflags::SetVersionString 设置版本号,可通过-version查看应用程序的版本号gflags::SetUsageMessa...

2019-05-18 18:03:31 1330

原创 算法导论复习与实践(三):堆排序

堆排序(heapsort)是一种原地排序,任何时候数组中只有常数个元素存储在输入数组以外,运行时间复杂度O( n log(n) )。堆数据结构是一种数组对象,可视为一棵完全二叉树,树中每个节点与数组中存放该节点值的那个元素对应,除最后一层外,树的每一层都是填满的。堆排序过程涉及以下相关操作:计算某个节点的父节点,计算某个节点的左子节点,计算某个节点的右子节点,维护堆的性质,建堆,堆排序。维护...

2019-04-10 20:26:38 392

原创 常见的几种多线程架构

在应用程序中使用多线程处理需精选出具有内在并发性与并行性的架构,有些应用程序天生就适合使用多线程处理的常见架构,三种常见的多线程处理架构:(1)客户机/服务器(2)事件驱动编程(3)黑板。客户机/服务器客户机/服务器将工作模式分为两个端口,一端(客户机)请求数据或者动作,另一端(服务器)完成该请求。例如,使用一个命名管道连接两个进程时,创建管道的进程通常称为服务器,请求此管道的进程通常称为...

2019-03-24 00:07:46 2318

原创 protobuf安装与使用

1.protobuf安装https://github.com/protocolbuffers/protobuf/blob/master/src/README.mdhttps://github.com/protocolbuffers/protobuf/releases/tag/v3.6.1

2019-02-20 15:34:59 435

原创 《联盟》读书笔记(三):如何协调员工与公司的目标和价值观

前面已经介绍了通过诚实对话使员工与公司建立信任,且介绍了针对不同类型员工的任期制。但是很多情况下,员工与公司的目标和价值观很难保持一致,并且现在公司不可能指望企业目标成为员工的唯一目标,那么如何协调员工与公司的目标和价值观?公司与员工的目标与价值观存在共性才有可协调空间,一些明显的共性会自然出现:双方都追求发展进步。前面我们讲到承认员工可能离职的必要性,即使任期内的工作并不涉及员工的业余爱好,但是...

2018-11-11 21:11:36 1245

原创 std::this_thread::sleep_for 与std::this_thread::yield的区别

std::this_thread::yield: 当前线程放弃执行,操作系统调度另一线程继续执行。即当前线程将未使用完的“CPU时间片”让给其他线程使用,等其他线程使用完后再与其他线程一起竞争"CPU"。std::this_thread::sleep_for: 表示当前线程休眠一段时间,休眠期间不与其他线程竞争CPU,根据线程需求,等待若干时间。两者具有相似的作用,但使用目的不同。例如以下两个...

2018-10-30 12:19:40 14831 2

原创 《联盟》读书笔记(二)

在上一篇读书笔记中提到互联网经济时代需要一种新的可以实现双赢雇佣关系框架,并提出了联盟理念改造团队的将解决的问题。本节将介绍“任期制–设计渐进性的承诺”。 David Hahn 在领英工作9年中,经历了四段不同的“任期”后,他改变了公司和他自己职业生涯,每段任期,都会制定一个任务目标,让双方都能长期受益,他从毫无商业经验成长为硅谷最炙手可热的高管之一,对公司而言,在他的领导下推出了数十个重要的产品...

2018-10-29 23:30:12 1018

原创 qtcreator创建CMake项目

使用qtcreator创建CMake工程项目,并可在原有的工程代码基础上继续进行开发.打开qtcreator,然后点击“New Project”, 出现如下界面,选择C++应用程序开发参考下图输入工程名字和工程路径,然后下一步,最后将在该工程路径下自动创建工程名字命名的文件夹"Build System"选择CMake,然后下一步,下一步,然后完成工程创建完成后在工...

2018-10-24 20:07:09 5047 4

原创 /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5: no version information available

qt可执行程序运行时报出以下错误:./××××××: /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5: no version information available (required by ./××××××) ./××××××: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: no version informati...

2018-10-24 11:25:57 4646

原创 GLIBCXX_3.4.20 not found 解决方法

问题描述:一个Ubuntu系统上编译好的C++库文件或可执行文件在另一个Ubuntu系统上使用时报出GLIBCXX_3.4.20 not found问题。此问题由于编译器版本过低导致的,需将g++和gcc升级到4.9版本以上。升级方法:sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update sudo a...

2018-10-24 11:15:08 12101

原创 升级g++4.9 && gcc4.9

若使用C++14新特性,需将g++和gcc升级到4.9版本以上升级方法:sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update sudo apt-get install gcc-4.9 sudo apt-get install g++-4.9sudo su cd ../../usr/bin l...

2018-10-24 11:13:12 2232

原创 《联盟》读书笔记(一)

文章目录终身雇佣制度:我们是一个团队,不是一个家庭从开创型人才中获得价值改造团队推荐阅读"奇点系列"书籍《联盟》-互联网时代的人才变革终身雇佣制度:记得刚考上大学时见人就被问“听说你考上大学了,毕业了能不能分配工作啊?是不是就可以进入国家大企业工作了?## 标题”,因为大家觉得被分配的工作环境稳定,进了

2018-09-30 14:34:40 1902

原创 librealsense2查看相机设备信息

文章目录1. librealsense2设备信息读取2.realsense 投影函数和反投影函数3.深度相机与彩色相机的坐标变换1. librealsense2设备信息读取librealsense2提供的接口可以检测连接到系统的所有realsense设备,如sr300,并可以读取每个设备的编号、彩色相机和深度相机的内参(相机内参矩阵参数和畸变系数及其畸变模型)、彩色相机和深度相机坐标系间的变换...

2018-09-28 20:23:23 4339 5

原创 librealsense2 && opencv

采集realsense设备的彩色图像和深度图像,并转换位opencv的cv::Mat图像数据格式#include <librealsense2/rs.hpp> // Include RealSense Cross Platform API#include<iostream>#include<opencv2/opencv.hpp&am

2018-09-27 19:08:20 1997 2

原创 solver.prototxt文件解析

使用caffe训练自己的物体识别数据时,在solver.prototxt文件里配置训练过程参数,学习记录总结了需要配置的各个参数的作用如下:net: "train_val.prototxt" #模型文件test_iter: 1000 #test_iter = 测试样本总数/batch_size, 迭代test_iter次将全部测试样本执行一遍test_interval...

2018-09-26 16:07:49 428

原创 Windows 与 ubuntu双系统启动修复

使用Ubuntu启动U盘启动系统,选择试用Ubuntu(Try Ubuntu)进入Linux启动盘之后,按下ctrl + alt + T调出终端查看系统所有分区: sudo fdisk -l找到根分区(/分区),将根分区(/)mount到/mnt,使用命令:sudo mount /dev/sdaxx /mnt其中xx就是根分区的编号,例如1/2/3等等挂在必要的目录,使...

2018-09-23 15:40:56 396

原创 Windows 下 VMware虚拟机安装ubuntu系统

准备工作:windows系统下安装好VMware软件打开虚拟机,点击创建新的虚拟机显示以下界面,默认典型安装,下一步然后选择 稍后安装操作系统选择客户机操作系统,选择"Linux" ,版本选择“Ubuntu64位”,然后下一步给虚拟机命名和选择虚拟机系统安装位置,然后下一步设置虚拟机磁盘容量,然后下一步配置虚拟机点击自定义硬件:(1)设置...

2018-09-23 15:12:28 403

原创 Ubuntu系统安装

首先制作一个启动U盘插上启动U盘, 电脑启动时按F2键,进入系统安装界面,注意:安装系统时,断开网络连接双击桌面上的 Install Ubuntu 14.04 (我安装的是 ubuntu 14.04), 然后选择合适的语言,我一般安装英文版然后进行下一步,出现以下安装界面,点继续:确认已经连接到互联网一行是 “X”, 否则安装时间很长这时可以看到以下界面,选择安装类...

2018-09-23 14:27:20 1346

原创 C++常用新特性(一)

总结学习的一些常用C++新特性:auto , lambda, decltype, function.1.自动类型推导auto C++11中引入了auto, 用于通过初始化表达式自动推导出变量的数据类型,使用例程如下:...

2018-09-05 19:12:31 390

空空如也

空空如也

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

TA关注的人

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