- 博客(26)
- 资源 (11)
- 收藏
- 关注
转载 正确释放Vector的内存
原文链接:http://blog.jobbole.com/37700/今天在看微博的时候, 有人提出了一个对于Vector内存泄露的疑问( Link)。博主采用 Vector存储一些数据,但是发现在执行 clear() 之后内存并没有释放,于是怀疑产生了内存泄露。随后有人回复:“vector 的 clear 不影响 capacity , 你应该 swap 一个空的 vect
2016-12-13 15:40:46 1634
原创 关于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 4566 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 21737 32
原创 相机姿态轨迹最小二乘多项式平滑优化(防抖动)
上一篇讲了利用随即一致性来减少错误匹配的情况,这一篇讲一下使用最小二乘多项式平滑方法来减少姿态的抖动问题。因为我们的设备是手持单目,相机在移动的过程中,会产生细微的抖动。虽然EKF或者G2O(通用图优化)会帮我们最小化错误,但是当我们得到正确的最接近真实的姿态后,我们会发现这些姿态是存在细微抖动的。下图为未平滑的相机姿态(Matlab):我们看到有大量的抖动在里面。体现在图像上则是AR...
2016-05-11 17:50:31 8091 4
原创 关于SLAM的那些事——通用图优化(G2O)环境搭配(windows8.1 vs2013)
好久不见啊各位亲,最近刚中期答辩完,得以有时间好好更新下博客啦。 自从上一个单目AR系统做完后,就仔细思考了一下我到底在做什么,接下来要做什么。之前博客上写的是3d重建,后来视野开阔了之后发现无论我做3d重建,SLAM,AR,重要的都是姿态更新。一个精准的稳定的姿态更新,决定着系统的好坏。贝叶斯滤波器(EKF扩展卡尔曼滤波,PF粒子滤波)和通用图优化(G2O)是使得姿态更加精准稳定的两种方法。近些
2016-04-26 13:58:56 17730 18
原创 关于OpenCV的那些事——利用RANSAC消除错误姿态
上一节《关于OpenCV的那些事——跟踪点选取方式和特征点跟踪恢复》讲了两种跟踪和恢复的方法,本来项目就此结束了,想开一个新项目3D重建的,但是老板让发一篇journal,心想着这点东西肯定发不了,于是对项目进行了优化。11月半-1月半,两个月(一个月写,一个月改,老板对格式要求极其严格。。)发了香港的一个图像信号处理的期刊,3月的时候收到了accepted的通知。在这期间,我一边优化着项目,一边
2016-04-20 14:42:26 6256
原创 关于PCL的那些事——环境搭配(PCL1.8 64bitWIN8.1 VS2013)
新项目是3D重建,最近都在查资料看论文,关于生成3D点云,特征检测,点云匹配,曲面重建等等。有篇知乎写得不错,讲了实现3D重建的相关体系和方法。不过我也是从那里面得到了启发,方法和里面也不太相同,因为里面主要是多幅2D图像三维重建和单目三维重建,他们都没有深度信息而是通过SFM等一些算法计算出景深。而我使用的是RGBD传感器如kinect,xtion。所以我关注与3D特征检测匹配等。大家可以看看微
2015-11-20 17:45:41 29840 44
原创 关于OpenNI2和OpenCV2的那些事——获取三维点云数据并用OpenGL表示
上一节呢,我们利用openni2获得了彩色图像和深度图像,这一节我们用openni2的转换函数将深度数据转换为三维点云,然后用彩色数据作为纹理将点云用opengl画出来。首先介绍CoordinateConverter::convertDepthToWorld(const VideoStream& depthStream, int depthX, int depthY, DepthPixel d
2015-11-12 15:45:40 18181 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 11475 4
原创 关于OpenCV的那些事——画AR物体(单目控制)
这段时间把项目的剩余部分全部完成了,包括角点检测改进和恢复追踪。这一节先继续讲利用OpenGL画AR物体。上一节中我们利用SolvePnP得到了相机的姿态(rotation和translation),利用姿态信息我们可以通过加载model_view_matrix来控制opengl里的相机。首先我试了用cmake重新编译with_opengl版的opencv,但是失败了(后来有了成功编译wi
2015-11-02 16:49:11 8064 2
原创 关于OpenNI2和OpenCV2的那些事——获取彩色图和深度图(XtionProLive)
上一节讲述了搭环境时遇到的挫折,这一节我们来讲讲如何使用XtionProLive(XtionPro没有彩色摄像头,Live版才有)获取彩色图和数度图,以及彩色图的放大与水平镜像。(PS: 对比两代OpenNI,2真的比1要简洁得多,使用OpenNI2编程序,代码简单易懂。)首先初始化环境:OpenNI::initialize();创建状态:Status rc = STATUS_OK;接
2015-11-02 14:20:02 12872 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 5232 1
原创 函数传参测试(传地址还是传值)
函数传参问题是基础的知识点,时间长了难免记忆模糊,今天重新测试了一下,结果如下:1. 普通变量传入函数时,加&表示传地址,不加表示传值(结束函数后,在函数内部的改变不会影响到该变量的值,除非返回了该变量)。2. 数组变量传入函数时,不用加&既是传入地址,因为数组名表示数组首地址。加上&即报错。3. Vector容器传入函数时,加&则可修改容器中的值,不加则会和普通变量不加&一样,在函数
2015-10-23 19:50:11 1596
原创 关于auxDIBImageLoad函数:char * 转 LPCWSTR
在使用OpenGL加载纹理图的过程中,遇到了Unicode字符集的问题:auxDIBImageLoad函数。查看定义我们发现系统将auxDIBImageLoad函数define为auxDIBImageLoadW函数,而auxDIBImageLoadW函数的参数为LPCWSTR。通过查阅资料,MultiByteToWideChar函数是解决这个问题的最方便的一种。解决方法:(LPCWST
2015-10-14 20:29:25 3667
原创 关于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 28133 10
原创 关于OpenCV的那些事——相机标定
这一节我们首先介绍下计算机视觉领域中常见的三个坐标系:图像坐标系,相机坐标系,世界坐标系。以及他们之间的关系。然后介绍如何使用张正友相机标定法标定相机。图像坐标系:理想的图像坐标系原点O1和真实的O0有一定的偏差,由此我们建立了等式(1)和(2),可以用矩阵形式(3)表示。相机坐标系(C)和世界坐标系(W):通过相机与图像的投影关系,我们得到了等式(4)和等式(5)
2015-10-05 16:09:09 75558 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 2752 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 12669 8
原创 关于EMGU CV的那些事——3.不同角点检测算法比较
最近几个月一直忙着研究,现在将这几个月的学习过程一一分享出来~博主之前用C#和EmguCV测试了不同的角点检测算法并比较了他们的性能和用时。Harris不具备尺度不变性,Fast是harris的简化版,速度快但是没有旋转不变性和尺度不变性。Sift依旧好用但是速度慢,Surf简化了Sift的一些步骤提高了速度但依旧不能达到实时效果(30FPS)。Orb使用改进的fast检测子和brief描述子
2015-10-02 16:57:16 6817 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 12502 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 22138 8
原创 对OpenGL的初步认识及多版本框架介绍(基于NeHe的OpenGL教程)
由于以后接触的技术和图形有关,所以最近也是来学学习一下opengl的相关知识点。当然有看到《opengl编程指南》这本红宝书,但是对于初学者来言,这本书需要花很多精力,所以我找到了《NeHe的opengl》教程,并且自己搭了环境,尝试着利用这个教程来提升自己对于opengl的认知。我将持续更新OpenGL系列,当然只是学习的心得,尊重原作者NeHe的一片好意,感谢作者为我们提供了这么有用的知识。
2014-06-30 01:25:16 2074
原创 大家一起学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 655
原创 如何扩大二维数组的大小(任何类型的通用版)
下面给大家介绍一种人为扩大二维数组大小的一种方法。第一个函数是扩大一维数组的,第二个是扩大二维数组的:import java.lang.reflect.Array;public class ResizeArray{ /** * 为一个新数组分配新空间,并将原来数组的内容拷贝到新数组中去 * @param oldArray the old array, to be
2012-10-21 15:10:28 4568
rgbd_xtion_orb_slam
2016-05-24
OpenNI获取三维点云并用OpenGL显示(可旋转缩放)
2015-11-12
特征点跟踪的实时画AR物体
2015-11-02
特征点追踪和实时画AR物体
2015-11-02
EmguCV实现不同角点检测
2015-10-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人