自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Change The World

----------- 那些年,那些事,只为改变世界!

  • 博客(26)
  • 资源 (11)
  • 收藏
  • 关注

转载 正确释放Vector的内存

原文链接:http://blog.jobbole.com/37700/今天在看微博的时候, 有人提出了一个对于Vector内存泄露的疑问( Link)。博主采用 Vector存储一些数据,但是发现在执行 clear() 之后内存并没有释放,于是怀疑产生了内存泄露。随后有人回复:“vector 的 clear 不影响 capacity , 你应该 swap 一个空的 vect

2016-12-13 15:40:46 1586

原创 关于OpenCV的那些事——ORB的brief描述子(256bit)的match心得

用了ORB那么久,今天第一次将256bit的描述子打印出来,直观看到了match的汉明距离。上代码:#include #include #include #include #include #include using namespace std;using namespace cv;int main(){ Mat image = imread("t.png

2016-05-26 00:33:52 4477 2

原创 关于SLAM的那些事——实时RGBD_ORB_SLAM (Ubuntu+Xtion)

最近写完了windows上的实时rgbd_slam后,读了些论文,想着怎么改进程序,感觉在闭环检测的方面可以改进。最近很火的ORB_SLAM2使用了DBoW2(ORB词袋)的方法,极大的提高了速度和匹配准确度,windows版的orb_slam2还没跑成功(一部分库的编译出现了问题,不过等研究做完了,会继续跑windows版本的),这几天一直在尝试ubuntu版的orb_slam的实时重建,今天终

2016-05-24 20:54:15 21516 32

原创 相机姿态轨迹最小二乘多项式平滑优化(防抖动)

上一篇讲了利用随即一致性来减少错误匹配的情况,这一篇讲一下使用最小二乘多项式平滑方法来减少姿态的抖动问题。因为我们的设备是手持单目,相机在移动的过程中,会产生细微的抖动。虽然EKF或者G2O(通用图优化)会帮我们最小化错误,但是当我们得到正确的最接近真实的姿态后,我们会发现这些姿态是存在细微抖动的。下图为未平滑的相机姿态(Matlab):我们看到有大量的抖动在里面。体现在图像上则是AR...

2016-05-11 17:50:31 7728 4

原创 关于SLAM的那些事——通用图优化(G2O)环境搭配(windows8.1 vs2013)

好久不见啊各位亲,最近刚中期答辩完,得以有时间好好更新下博客啦。 自从上一个单目AR系统做完后,就仔细思考了一下我到底在做什么,接下来要做什么。之前博客上写的是3d重建,后来视野开阔了之后发现无论我做3d重建,SLAM,AR,重要的都是姿态更新。一个精准的稳定的姿态更新,决定着系统的好坏。贝叶斯滤波器(EKF扩展卡尔曼滤波,PF粒子滤波)和通用图优化(G2O)是使得姿态更加精准稳定的两种方法。近些

2016-04-26 13:58:56 17539 18

原创 关于OpenCV的那些事——利用RANSAC消除错误姿态

上一节《关于OpenCV的那些事——跟踪点选取方式和特征点跟踪恢复》讲了两种跟踪和恢复的方法,本来项目就此结束了,想开一个新项目3D重建的,但是老板让发一篇journal,心想着这点东西肯定发不了,于是对项目进行了优化。11月半-1月半,两个月(一个月写,一个月改,老板对格式要求极其严格。。)发了香港的一个图像信号处理的期刊,3月的时候收到了accepted的通知。在这期间,我一边优化着项目,一边

2016-04-20 14:42:26 6186

原创 关于PCL的那些事——环境搭配(PCL1.8 64bitWIN8.1 VS2013)

新项目是3D重建,最近都在查资料看论文,关于生成3D点云,特征检测,点云匹配,曲面重建等等。有篇知乎写得不错,讲了实现3D重建的相关体系和方法。不过我也是从那里面得到了启发,方法和里面也不太相同,因为里面主要是多幅2D图像三维重建和单目三维重建,他们都没有深度信息而是通过SFM等一些算法计算出景深。而我使用的是RGBD传感器如kinect,xtion。所以我关注与3D特征检测匹配等。大家可以看看微

2015-11-20 17:45:41 29661 43

原创 关于OpenNI2和OpenCV2的那些事——获取三维点云数据并用OpenGL表示

上一节呢,我们利用openni2获得了彩色图像和深度图像,这一节我们用openni2的转换函数将深度数据转换为三维点云,然后用彩色数据作为纹理将点云用opengl画出来。首先介绍CoordinateConverter::convertDepthToWorld(const VideoStream& depthStream, int depthX, int depthY, DepthPixel d

2015-11-12 15:45:40 18103 10

原创 关于OpenCV的那些事——跟踪点选取方式和特征点跟踪恢复

这一节应该是本项目(Feature Tracking and Synchronous Scene Generation with a Single Camera)的最后一节了,实现了两种选取跟踪点和恢复跟踪的方法,顺便把AR物体换成了AR小游戏。首先讲讲跟踪点的选取。之前的文章中我们选取ORB作为特征点检测的办法,然后手动选取N个ORB角点去利用LK光流法跟踪。这样的方法是事先定义好3D点的位

2015-11-02 22:32:42 11348 4

原创 关于OpenCV的那些事——画AR物体(单目控制)

这段时间把项目的剩余部分全部完成了,包括角点检测改进和恢复追踪。这一节先继续讲利用OpenGL画AR物体。上一节中我们利用SolvePnP得到了相机的姿态(rotation和translation),利用姿态信息我们可以通过加载model_view_matrix来控制opengl里的相机。首先我试了用cmake重新编译with_opengl版的opencv,但是失败了(后来有了成功编译wi

2015-11-02 16:49:11 8000 2

原创 关于OpenNI2和OpenCV2的那些事——获取彩色图和深度图(XtionProLive)

上一节讲述了搭环境时遇到的挫折,这一节我们来讲讲如何使用XtionProLive(XtionPro没有彩色摄像头,Live版才有)获取彩色图和数度图,以及彩色图的放大与水平镜像。(PS: 对比两代OpenNI,2真的比1要简洁得多,使用OpenNI2编程序,代码简单易懂。)首先初始化环境:OpenNI::initialize();创建状态:Status rc = STATUS_OK;接

2015-11-02 14:20:02 12624 11

原创 关于OpenNI(1.5/2)和OpenCV的那些事——环境搭建(Windows8.1, 64位系统, VS2012/2013, 华硕XtionProLive)

今天着手写这篇博客,真的是已经被OpenNI虐的不行的,浏览了国内国外好多博客,论坛,但是版本,环境,设备,操作系统的不同,使得我最终放弃了cmake重新编译opencv(with_openni)的做法,改成直接使用openni。两者的区别在于获取图象时,使用重新编译过的opencv时,经过opencv的强大处理,我们不仅可以得到彩色图像,深度图,还可以直接得到视察图,甚至三维点云;而使用open

2015-11-01 20:14:21 5160 1

原创 函数传参测试(传地址还是传值)

函数传参问题是基础的知识点,时间长了难免记忆模糊,今天重新测试了一下,结果如下:1. 普通变量传入函数时,加&表示传地址,不加表示传值(结束函数后,在函数内部的改变不会影响到该变量的值,除非返回了该变量)。2. 数组变量传入函数时,不用加&既是传入地址,因为数组名表示数组首地址。加上&即报错。3. Vector容器传入函数时,加&则可修改容器中的值,不加则会和普通变量不加&一样,在函数

2015-10-23 19:50:11 1551

原创 关于auxDIBImageLoad函数:char * 转 LPCWSTR

在使用OpenGL加载纹理图的过程中,遇到了Unicode字符集的问题:auxDIBImageLoad函数。查看定义我们发现系统将auxDIBImageLoad函数define为auxDIBImageLoadW函数,而auxDIBImageLoadW函数的参数为LPCWSTR。通过查阅资料,MultiByteToWideChar函数是解决这个问题的最方便的一种。解决方法:(LPCWST

2015-10-14 20:29:25 3597

原创 关于OpenCV的那些事——相机姿态更新

上一节我们使用张正友相机标定法获得了相机内参,这一节我们使用Robust Planar Pose (RPP) 算法估计相机初始姿态并更新之。推荐3篇我学习的博客:【姿态估计】Pose estimation algorithm 之 Robust Planar Pose (RPP)algorithm,POSIT算法的原理--opencv 3D姿态估计,三维姿态:关于solvePnP与cvPOSIT

2015-10-05 17:42:42 27938 10

原创 关于OpenCV的那些事——相机标定

这一节我们首先介绍下计算机视觉领域中常见的三个坐标系:图像坐标系,相机坐标系,世界坐标系。以及他们之间的关系。然后介绍如何使用张正友相机标定法标定相机。图像坐标系:理想的图像坐标系原点O1和真实的O0有一定的偏差,由此我们建立了等式(1)和(2),可以用矩阵形式(3)表示。相机坐标系(C)和世界坐标系(W):通过相机与图像的投影关系,我们得到了等式(4)和等式(5)

2015-10-05 16:09:09 74555 29

转载 计算机视觉、机器学习相关领域论文和源代码大集合

转自: http://blog.csdn.net/zouxy09/article/details/8550952 作者:zouxy09一、特征提取Feature Extraction:·         SIFT [1] [Demo program][SIFT Library] [VLFeat]·         PCA-SIFT [2] [Project]

2015-10-04 16:21:37 2726 1

原创 关于OpenCV的那些事——Orb角点检测,BF匹配跟踪和LK光流跟踪

从这一节开始学习OpenCV并使用它实现PTAM 的另类版本:Feature Tracking and Synchronous Scene Generation with a Single Camera主要思想还是parallel,两个线程tracking和mapping并行运行。这里我将mapping简化为generation,细节以后会做具体介绍,今天开始记录我的研究历程。上一节中我们

2015-10-02 19:07:06 12543 8

原创 关于EMGU CV的那些事——3.不同角点检测算法比较

最近几个月一直忙着研究,现在将这几个月的学习过程一一分享出来~博主之前用C#和EmguCV测试了不同的角点检测算法并比较了他们的性能和用时。Harris不具备尺度不变性,Fast是harris的简化版,速度快但是没有旋转不变性和尺度不变性。Sift依旧好用但是速度慢,Surf简化了Sift的一些步骤提高了速度但依旧不能达到实时效果(30FPS)。Orb使用改进的fast检测子和brief描述子

2015-10-02 16:57:16 6720 1

原创 关于EMGU CV的那些事——2.摄像头捕捉(RGB and GRAY)

今天我们更进一步,来看看Emgu CV如何捕捉摄像头并显示视频。思路很简单,Capture cap = new Capture()来开启一个新的摄像头,cap.Start()开始图像捕捉。利用cap.QueryFrame()得到一帧图像显示在窗口里或者控件里,利用while循环即可不断的获得视频帧。这里说明一下,若使用imshow函数将视频帧显示在窗口里,是不需要多线程的,用户不想得到视频帧时

2015-05-28 14:43:05 12364 2

原创 关于EMGU CV的那些事——1.环境搭建(win8 vs2012 emgucv3.0)

楼主读研阶段研究图像处理,想用C#实现PTAM/PTAMM算法并用UNITY创建相关应用。对于PTAM(Parallel Tracking and Mapping)算法,使用了大量的第三方库,实现语言是C/C++。之所以选择C#,是因为楼主想要使用Unity将PTAM算法用于AR系统。那么问题来了,C/C++处理图像使用Open CV,C#就只能使用Open CV的兄弟Emgu CV了,Emgu

2015-05-27 14:44:28 21971 8

原创 NeHe的OpenGL教程 lesson6-8 学习心得

昨天和今天学了3个课程,实现了纹理贴图,gua

2014-07-07 16:25:47 1239

原创 NeHe的OpenGL教程 lesson1-5 学习心得

这两天学习了NeHe的pengl教程的前

2014-07-06 16:05:00 1177

原创 对OpenGL的初步认识及多版本框架介绍(基于NeHe的OpenGL教程)

由于以后接触的技术和图形有关,所以最近也是来学学习一下opengl的相关知识点。当然有看到《opengl编程指南》这本红宝书,但是对于初学者来言,这本书需要花很多精力,所以我找到了《NeHe的opengl》教程,并且自己搭了环境,尝试着利用这个教程来提升自己对于opengl的认知。我将持续更新OpenGL系列,当然只是学习的心得,尊重原作者NeHe的一片好意,感谢作者为我们提供了这么有用的知识。

2014-06-30 01:25:16 2021

原创 大家一起学C++(4)

1.typedef可以用来定义类型的同义词:   double wages;   //wages is a synonym for double   wages hourly, weekly;   //double hourly, weekly;2.typedef 通常被用于以下三种目的:  *为了隐藏特定类型的实现,强调适用类型的目的  *简化复杂的类型定义,使其更易理解

2012-11-25 21:36:56 637

原创 如何扩大二维数组的大小(任何类型的通用版)

下面给大家介绍一种人为扩大二维数组大小的一种方法。第一个函数是扩大一维数组的,第二个是扩大二维数组的:import java.lang.reflect.Array;public class ResizeArray{ /** * 为一个新数组分配新空间,并将原来数组的内容拷贝到新数组中去 * @param oldArray the old array, to be

2012-10-21 15:10:28 4476

rgbd_xtion_orb_slam

基于orb_slam2的xtion实时重建demo,更多细节http://blog.csdn.net/aptx704610875/article/details/51490201

2016-05-24

OpenNI获取三维点云并用OpenGL显示(可旋转缩放)

用的xtion(kinect也相同)和openni获取深度数据,转换为三维点云后在opengl中表示(用彩色数据作纹理),可用鼠标和键盘对三维点云进行旋转与缩放。

2015-11-12

特征点跟踪的实时画AR物体

Feature Tracking and Synchronous Scene Generation with a Single Camera项目的完整版2.0,利用orb算法检测特征点,lk光流跟踪,solvepnp计算相机姿态,opengl画ar物体并实时跟踪重现。

2015-11-02

特征点追踪和实时画AR物体

Feature Tracking and Synchronous Scene Generation with a Single Camera项目的完整版1.0,利用orb算法检测特征点,lk光流跟踪,solvepnp计算相机姿态,opengl画ar物体并实时跟踪重现。

2015-11-02

跟踪特征点并画AR物体

利用LK光流法跟踪ORB特征点,利用solvePnP计算相机姿态,并控制opengl里的相机,在特征点处画AR物体。

2015-11-02

OpenCV相机姿态更新

使用OpenCV中的solvePnP函数计算相机姿态(旋转与平移)

2015-10-06

张正友相机标定(OpenCV实现)

使用OpenCV中的calibrateCamera函数进行张正友相机标定,得到相机内参矩阵。

2015-10-05

ORB角点检测与匹配

对于两幅图像进行ORB角点检测并使用BF匹配。 界面中可设置ORB算法的部分参数。

2015-10-02

EmguCV实现实时角点检测

从摄像头读取数据,利用不同方法检测角点并画在图像上,结束时显示fps。

2015-10-02

EmguCV实现不同角点检测

使用C#和EmguCV实现了不同算法的角点检测,包括Harris,Fast,Sift,Surf,Orb算法。我将他们写在了一个界面里,用户选择图像即可。

2015-10-02

电子的钢琴音

我们开发音乐软件时,肯定会遇到找不到钢琴音的时候,lz为大家提供一些~

2015-02-08

空空如也

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

TA关注的人

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