加载中…
个人简介
后续更新将迁移至新的个人网站:
www.weixinyu.info
个人资料
SlowlyThinking
SlowlyThinking
  • 博客等级:
  • 博客积分:0
  • 博客访问:512,902
  • 关注人气:86
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
搜博主文章
留言
加载中…
评论
加载中…
博文
置顶: (2017-08-08 22:08)
分类: 研究生
后续更新将迁移至新的个人网站:http://www.weixinyu.info
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2017-06-12 12:09)
ORB在使用双目数据时需要相机参数,这些参数用于Opencv的函数initUndistortRectifyMap()中,用来矫正图像,包括:
# LEFT.K:输入的摄像机内参数矩阵
# LEFT.D:输入的摄像机畸变系数矩阵
# LEFT.R:输入的第一和第二相机坐标系之间的旋转矩阵
# LEFT.P:输入的校正后的3X3摄像机矩阵

但是目前DUO的标定程序计算出来的只有以下数据:
相机内参
旋转矩阵
镜头的视角(FOV)以及矫正后的视角(Rectified FOV)

另外一个未知的问题是DUO的SDK中提供的程序读出的IMU的角度信息中z轴的始终为0,这个待查:


图像还未矫正,跑ORB的效果如下(图像较暗的原因是DUO设备的三个参数Gain、Exposure和Led灯亮度设置有问题,目前已经能够在配置文件中进行设置,ORB程序运
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2017-06-12 12:02)
标签:

opencv

图像处理

分类: 图像三维重建
学习fitLine函数有感:

1.不要在网上盲目地找某个函数的教程

2.先在官方文档中查看函数的输入输出及基本功能介绍
opencv3.1.0文档:http://docs.opencv.org/3.1.0/
以fitLine函数为例,其输入中有InputArray和OutputArray两个不太熟悉的数据类型,继续查看可以发现这两个类型是_InputArray和_OutputArray类型的别名,继续查看,可以发现这两个类型是opencv中用于处理输入输出的代理类,可以将mat、vector等类型转化为代理类,使用代理类来对数据进行访问和处理。

3.然后阅读opencv源码中给出的相关实例,明确函数具体用法。
比如在linux环境下,可以在opencv文件夹下搜索fitLine:grep -r -n 'fitLine' .
由此可以确定fitLine函数的源文件为./moduals/imgproc/src/linefit.cpp,并且在./moduals/imgproc/test/test_imgwarp.cpp中有相关使用的例子。直接打开test_imgwarp.cpp文件并搜索fitLine函数,可以发现有二维点拟合直线、三维点拟合直线的具体使用实例
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2016-06-22 15:04)
分类: 图像三维重建
看SVO代码,SVO也是将一帧图像处理成多层图像金字塔形式,跟踪过程,也就是通过灰度残差最小来算相机位姿,这部分都在FrameHandlerMono类的addImage方法中,addImage方法完成初始化过程和相机位姿跟踪的部分,跟踪部分中存在四个系统状态第一帧,第二帧,其他帧,relocalizing (这个状态要干什么还不是特别清楚),一二帧是初始化(算单应矩阵分解求位姿),其他帧就是有了初始地图之后的跟踪过程,具体函数为FrameHandlerMono类的processFrame函数,这个函数中的跟踪过程与论文中基本一样,也包括几个步骤:图像配准(alignment)求位姿,优化特征点的二维坐标,同时优化位姿和特征点坐标(BA)。
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: TOC

常用方法见后,此处介绍对于word中自己绘的图如何存为高质量eps图像。

1.复制word中的图,在另一处粘贴(我选择的是新开一个word文档)
2.粘贴后的图仍不能另存为png,但是可以再次复制,右键粘贴为图片
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2016-06-18 14:26)
标签:

杂谈

分类: 研究生
      已经凑完了这个软件,开发过程中遇到的问题:
1.对java控件的layout不熟悉,原来的代码中使用了GroupLayout,这个很麻烦,我只需要一行,改成了FlowLayout,不要害怕代码,不懂的东西其实没想象的那么难,比如layout,看看他们的种类和作用,选一个去实现就好了,不要一直在那儿试。

2.JTextField..setPreferredSize(new Dimension(300,200))设置组件首选项大小,如果把组件放到了layout里面去了,在可视化界面改变其大小是没用的,他们只会最小化适应layout。

3.JTable选择行事件:
jTable_data.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e) {
//鼠标按下时bl=true释放时bl=false
boolean bl=e.getValueIsAdjusting();
if(!bl){
l
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: 图像三维重建
       概率方法分析图像点的深度信息
       一幅图像中的像素点为中心产生一个patch,在另一幅图像对应的极线上搜索patch,使用NCC(Normalized Cross Correlation)来分析两个patch间的相似程度,在深度[X(min),X(max)]区间内进行搜索匹配,这个区间内NCC的计算结果会产生一系列局部极值。
       把上述计算过程看作是一个深度传感器的计算过程,其输出结果为一系列NCC的局部极值对应的点的深度信息。它们是有噪声的数据
       一幅图像对应另外n幅图像,可以看作为n个深度传感器,把得到点的深度信息的问题看作是有噪声的多传感器数据融合的问题,使用Gaussian Uniform mixture model来对这一问题进行建模,假设好的测量值符合正态分布,噪声符合均匀分布,好的测量值的比例为pi,使用贝叶斯方法不断更新这个模型,让点的深度(也就是正态分布中的均值参数)和好的测量值的比例pi收敛到真实值
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: 图像三维重建
书《State Estimation for Robotics: A Matrix-Lie-Group Approach》

自由度(degree of freedom, df):在数学中能够自由取值的变量个数,如有3个变量x、y、z,但x+y+z=18,因此其自由度等于2。

超定方程组:是指方程个数大于未知量个数的方程组。对于方程组Ra=y,R为n×m矩阵,如果R列满秩,且n>m。则方程组没有精确解,此时称方程组为超定方程组。

       在SLAM中,除了表达3D旋转与位移之外,我们还要对它们进行估计,因为SLAM整个过程就是在不断地估计机器人的位姿与地图。为了做这件事,需要对变换矩阵进行插值、求导、迭代等操作。例如,在经典ICP问题中,给定了两组3D点,我们要计算它们之间的变换矩阵。假设第一组的3D点为P={pi|i=[1,2,…,N]},第二组3D点为Q={qi|i=[1,2,…,N]},那我们实际要
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2016-06-18 12:15)
分类: TOC
1.origin中怎么把坐标系的原点改成0,0?
鼠标双击坐标上的数字,在出现的界面中选择scale,更改from值为0

2.origin中如何去掉上面标注的边框?
首先选择标注,右键调出菜单,选择Properties,设置背景为NONE

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2016-06-18 12:03)
分类: TOC
安装与运行的所有文档:https://github.com/uzh-rpg/rpg_svo/wiki 

有两种安装方式:
没ros的似乎比较麻烦,首先依照ros的安装方法:

1.安装Sophus
cd SVO
git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff
mkdir build
cd build
cmake ..
make
在~/.cmake/package
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2016-06-18 12:01)
分类: 图像三维重建
       为什么要用回调函数:有这样的需求,你想让别人的代码执行你的代码,而别人的代码你又不能动。
       使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个函数。
       而那个函数在需要的时候,利用传递的地址调用回调函数,这时你可以利用这个机会在回调函数中处理消息或完成一定的操作。至于如何定义回调函数,跟具体使用的API函数有关,一般在帮助中有说明回调函数的参数和返回值等。C++中一般要求在回调函数前加CALLBACK(相当于FAR PASCAL),这主要是说明该函数的调用方式.

       那么什么是回调函数呢,那是不得以而为之的设计策略,想象一种系统实现:在一个下载系统中有一个文件下载模块和一个下载文件当前进度显示模块,系统要求实时的显示文件的下载进度,想想很简单在面向对象的世界里无非是实现两个类而已。但是问题恰恰出在这里,显示模块如何驱动下载进度条
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有