机器视觉
文章平均质量分 86
邹宇华
邹宇华
Email: chenyusiyuan*126.com;
微博:http://t.sina.com.cn/chenyusiyuan;
北京航空航天大学, 博士生,
机器视觉与多机器人协同
展开
-
OpenCV 学习笔记(1)安装设置、显示图像
20091027-Update:VS2008下安装OpenCV2.0请参考于仕琪老师《VC 2008 Express下安装OpenCV2.0》作适当修改。 1、OpenCV 的下载地址:http://sourceforge.net/projects/opencvlibrary/2、有用的网址:(1) Visit OpenCV Wiki-pages at http://openc原创 2009-09-22 23:39:00 · 21239 阅读 · 30 评论 -
OpenCV学习笔记(19)双目测距与三维重建的OpenCV实现问题集锦(四)三维重建与OpenGL显示
五、三维重建与OpenGL显示在获取到视差数据后,利用OpenCV的 reProjectImageTo3D 函数结合 Bouquet校正方法得到的Q矩阵就可以得到环境的三维坐标数据,然后利用OpenGL来实现三维重构。OpenCV与OpenGL的编程范例,我在学习笔记(15)中有详细的讨论,这里就不重复了,下面补充一些细节问题:.. 1. reProjectImageTo3D是怎样计算出三维坐标数据的?图22相信看过OpenCV第12章的朋友对上图中的Q矩阵不会陌生,根据以上变换公式原创 2010-10-28 07:04:00 · 58667 阅读 · 36 评论 -
OpenCV学习笔记(21)在OpenCV窗口中创建滚动条浏览大图
很久没发博客了,趁着近期项目需要,再和大家分享一个小程序,即在OpenCV窗口中创建水平、竖直滚动条来浏览大型图像。如果我们所要显示的图像像素较高,例如1440*900的,而显示器只有 1280*800的分辨率,那么通过cvNamedWindow创建的最大窗口也只能看到部分图像,其余的因为超出窗口大小看不到了,也没有滚动条用来滚动观察其余图像,这样,就不方便我们通过窗口对图像进行交互操作。通常滚动原创 2011-06-24 12:45:00 · 18810 阅读 · 12 评论 -
OpenCV学习笔记(22)OpenCV_SVN静态库的编译
之前按照常规方式(http://www.opencv.org.cn/index.php/VC_2008_Express%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.0/2.1)用Cmake和VS2008编译了OpenCV_SVN,都是生成动态链接库的,最近写的程序Release版需要静态连接库,于是边查Google边探索怎样生成和使用OpenCV的静态库。 一、参考原创 2011-06-29 01:18:00 · 13108 阅读 · 5 评论 -
分享一个简易的程序日志记录C++类
最近一直在忙实验室的项目开发,很少上博客了,现在总算有一定时间空出来做些总结,今天起陆续更新博客,总结一下半年多来的学习心得。今天先分享一个简易的程序日志记录类,参考自《一个简单又高效的日志系统》,针对项目本身做了一定的修改和补充,编程水平有限,仅供参考,呵呵 。头文件:#ifndef _INFO_LOGGER_H_#define _INFO_LOGGER_H_/**原创 2012-07-08 15:53:36 · 11031 阅读 · 3 评论 -
OpenCV学习笔记(24)CLR模式下System::Drawing::Bitmap与cv::Mat图像格式的转换
最近用到了一个C#写成的图像算法类,在C++ OpenCV下使用,其中涉及到图像格式在 cv::Mat 和 .Net Bitmap 的互换。网上搜了一些相关程序,总结如下:(1)cv::Mat 至 .Net Bitmap/*---------------------------- * 功能 : 将图像格式由 cv::Mat 转换为 System::Drawing::Bitmap *原创 2012-09-13 18:00:04 · 28383 阅读 · 13 评论 -
OpenCV学习笔记(31)KAZE 算法原理与源码分析(五)KAZE的源码优化及与SIFT的比较
KAZE系列笔记:1. OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波2. OpenCV学习笔记(28)KAZE 算法原理与源码分析(二)非线性尺度空间构建3. OpenCV学习笔记(29)KAZE 算法原理与源码分析(三)特征检测与描述4. OpenCV学习笔记(30)KAZE 算法原理与源码分析(四)KAZE特征的性能分析与比较5. OpenCV学习笔记原创 2013-03-29 03:04:49 · 31081 阅读 · 13 评论 -
OpenCV学习笔记(30)KAZE 算法原理与源码分析(四)KAZE特征的性能分析与比较
KAZE系列笔记:1. OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波2. OpenCV学习笔记(28)KAZE 算法原理与源码分析(二)非线性尺度空间构建3. OpenCV学习笔记(29)KAZE 算法原理与源码分析(三)特征检测与描述4. OpenCV学习笔记(30)KAZE 算法原理与源码分析(四)KAZE特征的性能分析与比较5. OpenCV学习笔记原创 2013-03-25 00:51:24 · 31322 阅读 · 42 评论 -
OpenCV学习笔记(29)KAZE 算法原理与源码分析(三)特征检测与描述
KAZE系列笔记:1. OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波2. OpenCV学习笔记(28)KAZE 算法原理与源码分析(二)非线性尺度空间构建3. OpenCV学习笔记(29)KAZE 算法原理与源码分析(三)特征检测与描述4. OpenCV学习笔记(30)KAZE 算法原理与源码分析(四)KAZE特征的性能分析与比较5. OpenCV学习笔记原创 2013-03-24 01:32:16 · 29425 阅读 · 18 评论 -
OpenCV学习笔记(28)KAZE 算法原理与源码分析(二)非线性尺度空间构建
KAZE系列笔记:1. OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波2. OpenCV学习笔记(28)KAZE 算法原理与源码分析(二)非线性尺度空间构建3. OpenCV学习笔记(29)KAZE 算法原理与源码分析(三)特征检测与描述4. OpenCV学习笔记(30)KAZE 算法原理与源码分析(四)KAZE特征的性能分析与比较5. OpenCV学习笔记原创 2013-03-24 00:29:16 · 16208 阅读 · 12 评论 -
OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波
KAZE系列笔记:1. OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波2. OpenCV学习笔记(28)KAZE 算法原理与源码分析(二)非线性尺度空间构建3. OpenCV学习笔记(29)KAZE 算法原理与源码分析(三)特征检测与描述4. OpenCV学习笔记(30)KAZE 算法原理与源码分析(四)KAZE特征的性能分析与比较5. OpenCV学习笔记原创 2013-03-23 17:44:08 · 37715 阅读 · 27 评论 -
OpenCV学习笔记(23)cv.Mat 与 .txt 文件数据的读写操作
1、按OpenCV格式实现的 .txt 文件读写可以用 cvSave 和 cvLoad 实现,格式和 .xml/.yml 的差不多,不过如果专用与 OpenCV 的数据读写,还是用 .xml/.yml 文件格式较好,我比较喜欢 .yml 格式,可读性非常棒。用 cvSave 和 cvLoad 读写 .txt 文件,其实现方式和数据格式与 .yml 文件基本一致。例如:cvSave("camera原创 2012-09-13 12:56:30 · 26555 阅读 · 9 评论 -
OpenCV学习笔记(26)自动识别OpenCV版本并添加依赖库
这里给大家介绍一种在头文件中自动判断识别OpenCV的版本号,并据此添加对应的依赖库(.lib文件)的方法。具体代码如下:#ifndef _PREDEP_H_#define _PREDEP_H_ #pragma once #include "targetver.h" #include #include #include #include "opencv2/core/version.hpp"#in原创 2013-03-22 14:23:44 · 11171 阅读 · 4 评论 -
手动切换 Kinect 的驱动程序(for OpenNI 1.* & Microsoft Kinect SDK 1.7)
微软最近推出了最新版的 Kinect SDK ,能够实现实时的 Kinect Fusion,并提供了丰富的手势交互功能,对体感交互开发人员的吸引力越来越大。而 OpenNI 2.0 以上的版本也转为使用微软官方的 Kinect 驱动,也显示了 Kinect 驱动一体化的大趋势。不过目前大部分 Kinect 开发程序还是基于 OpenNI 1.* 的旧版本,要迁移到 OpenNI 2.0 工作量非常原创 2013-04-08 18:02:15 · 16628 阅读 · 5 评论 -
OpenCV学习笔记(13)基于OpenCV2.1的MFC双目视觉平台构建
项目源码下载: OpenCV学习笔记(25)基于MFC和OpenCV的摄像机定标与立体匹配测试程序 从去年12月底起,考试和基金、项目申报的事情一件连着一件,双目视觉的课题给中止了4个月之久,看看论坛和博客上其他朋友所做的工作,自己已落后太多!得奋起直追了,呵呵,目前已完成了从 OpenCV2.0 到 2.1 版的移植,MFC 平台新增了一些实用的参数调整功能,后面还得结合 OpenGL 来做三原创 2010-05-27 19:04:00 · 19592 阅读 · 28 评论 -
深度学习相关资料总结
近这两年里deep learning技术在图像识别和跟踪等方面有很大的突破,是一大研究热点,里面涉及的数学理论和应用技术很值得深入研究,这里总结一些在微博发布和转载的相关资料,以便查阅:一、@winsty #NIPS2013# “Learning A Deep Compact Image Representation for Visual Tracking” 第一次结合deep learning和原创 2013-10-29 16:36:51 · 18643 阅读 · 4 评论 -
OpenCV学习笔记(18)双目测距与三维重建的OpenCV实现问题集锦(三)立体匹配与视差计算
四、双目匹配与视差计算立体匹配主要是通过找出每对图像间的对应关系,根据三角测量原理,得到视差图;在获得了视差信息后,根据投影模型很容易地可以得到原始图像的深度信息和三维信息。立体匹配技术被普遍认为是立体视觉中最困难也是最关键的问题,主要是以下因素的影响:(1) 光学失真和噪声(亮度、色调、饱和度等失衡)(2) 平滑表面的镜面反射(3) 投影缩减(Foreshortening)(4) 透视失真(Perspective distortions)(5) 低纹理(Low texture)(6) 重复纹理(Repet原创 2010-10-26 17:28:00 · 111138 阅读 · 51 评论 -
机器人视觉导航的OpenCV实现-视频演示
divShare视频: 优酷视频:http://v.youku.com/v_show/id_XMjE3NDY4NDY0.html原创 2010-10-25 13:49:00 · 24291 阅读 · 3 评论 -
OpenCV学习笔记(17)双目测距与三维重建的OpenCV实现问题集锦(二)双目定标与双目校正
三、双目定标和双目校正 双目摄像头定标不仅要得出每个摄像头的内部参数,还需要通过标定来测量两个摄像头之间的相对位置(即右摄像头相对于左摄像头的三维平移 t 和旋转 R 参数)。 图6 要计算目标点在左右两个视图上形成的视差,首先要把该点在左右视图上两个对应的像点匹配起来。然而,在二维空间上匹配对应点是非常耗时的,为了减少匹配搜索范围,我们可以利用极线约束使得对应点的匹配由二维搜索降为一维搜索。 图7 而双目校正的作用原创 2010-10-25 01:17:00 · 111871 阅读 · 85 评论 -
OpenCV学习笔记(2)隐藏 Console 窗口
在VC++中使用OpenCV,一般是建立一个 win32 console application 项目,当运行此类程序的时候,默认情况下会有一个类似DOS窗口的console窗口,供程序与用户之间交互之用。 但是有时候我们只想在程序中运行一段功能代码,不希望显示这个 console 窗口,而是让代码执行完毕之后程序自动退出。隐藏这种 win32 console application 的 c原创 2009-09-29 22:55:00 · 14565 阅读 · 19 评论 -
OpenCV学习笔记(3)用VS2008编译OpenCV2.0源代码(编译错误已解决)
20091027-Update:参考于仕琪老师《VC 2008 Express下安装OpenCV2.0》作适当修改。 OpenCV2.0.0今天发布了,我马上赶去下载尝鲜,不过安装后才发现,这个版本的 bin 和 lib 都是未经编译、还不能直接使用的。通过 OpenCV 中文论坛得知,要使用 Cmake 软件对 OpenCV 源代码重新编译,才能得到最终的 dll 和 lib 文件。原创 2009-09-30 23:43:00 · 18709 阅读 · 9 评论 -
OpenCV学习笔记(4)视频文件的读取与保存(2010-01-23 更新)
PS:增加了保存视频的功能~~~(chenyusiyuan 2010-01-23) 一、系统环境Windows XP SP3 Visual Studio 2008 OpenCV-2.0.0a-win32二、main 函数输入参数 argc、argv 的意义(参见[1])在学习笔记(1)中最后写到:“在Debug完成后,应该把原始图像放到项目文件夹的 debug 文件夹中,使图像原创 2009-10-08 01:14:00 · 20314 阅读 · 22 评论 -
OpenCV学习笔记(5)在单个窗口中显示多个视频子窗口
参考OpenCV中文论坛的一个帖子(http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=7996&start=0)实现了在一个窗口显示多个视频子窗口,能够读入单个的视频或摄像头数据,然后在一个窗口中分别显示原始帧图像、反色图像、灰度图像以及Canny边缘检测图像。并在每个子窗口左上角显示系统时间,函数cvShowManyImages是改写的。原创 2009-10-08 16:13:00 · 23337 阅读 · 23 评论 -
OpenCV学习笔记(6)基于 VC+OpenCV+DirectShow 的多个摄像头同步工作
因项目需要采集2个摄像头的数据进行双目检测,一开始采用以下代码来测试:#include "stdafx.h"#include cv.h>#include cxcore.h>#include highgui.h>int main(int argc, _TCHAR* argv[]){ CvCapture* capture1 = cvCreateCame原创 2009-10-08 21:05:00 · 63578 阅读 · 92 评论 -
OpenCV学习笔记(7)图像的通道(channels)问题
整理一下OpenCV中文论坛里关于图像通道的问题,如下:(1)图像的通道指的是什么?是不是灰度图的通道数为1,彩色图的通道为3?(zhuker) 正确! 基本上,描述一个像素点,如果是灰度,那么只需要一个数值来描述它,就是单通道。 如果一个像素点,有RGB三种颜色来描述它,就是三通道。(ollydbg23) (2)对于2通道和4通道如何看待?哪位帮忙解释一下?(feixue) 我见原创 2009-10-13 10:41:00 · 38865 阅读 · 11 评论 -
OpenCV学习笔记(8)VS2008 MFC下使用OpenCV2.0进行简单图像处理
在OpenCV中文论坛看到有不少帖子讲到如何在MFC下应用OpenCV进行图像和视频处理的方法,受益颇丰,主要有下面这些帖子: 1、opencv 数据读写操作+图像噪声+ MFC下OpenCV源代码 2、MFC中快速应用OpenCV & 相应论坛帖子 3、MFC+openCV对话框中显示视频 4、如何把视频显示到MFC的picture控件上 5、一个人脸-人眼检测例程,大家可以参考参考 6原创 2009-10-27 15:16:00 · 24310 阅读 · 11 评论 -
OpenCV学习笔记(9)利用MFC的Picture控件显示图像+播放视频和捕获摄像头画面
原始版本下载页面(仅显示图像): http://download.csdn.net/source/1779188 P.S.:后面又添加了播放视频和捕获摄像头画面的功能,其中播放视频的功能只有 Play 和 Stop,不能实现暂停,《A step-by-step guide to the use of Microsoft Visual C++ and the Intel OpenCV原创 2009-10-29 17:09:00 · 78081 阅读 · 98 评论 -
OpenCV 编程简介(矩阵/图像/视频的基本读写操作)
PS. 由于csdn博客文章长度有限制,本文有部分内容被截掉了。在OpenCV中文网站的wiki上有可读性更好、并且是完整的版本,欢迎浏览。OpenCV Wiki :《OpenCV 编程简介(矩阵/图像/视频的基本读写操作)》 Introduction to programming with OpenCV OpenCV编程简介 Gady Agam Department of Compu原创 2010-01-26 20:02:00 · 28040 阅读 · 24 评论 -
OpenCV学习笔记(11)OpenCV+MFC的双目视觉测距与景深实现 之 问题探讨
学习OpenCV快3个月了,主要是根据课题需要实现双目视觉测距、景深重建和目标(障碍物)检测。目前已经能实现摄像头定标和校正、双目匹配、获取视差图和环境景深图像,但是在测距方面还没有精确实现,主要是还没彻底弄清楚摄像头定标,有几个问题希望能和大家探讨下: 1、进行摄像头定标时,棋盘方格的实际大小 square_size (默认为 1.0f )的设置对定标参数是否有影响? 具体地,假如棋原创 2009-12-25 02:21:00 · 53173 阅读 · 47 评论 -
OpenCV学习笔记(12)OpenCV调用Matlab函数进行保存视频的尝试
OpenCV2.1 的 ffmpeg 似乎编译有问题,不能正常进行视频读写方面的操作,因此尝试调用 Matlab 来完成,不过也还没成功,详细记录如下:1、在 Matlab 中通过 mex –setup 和 mbuild –setup 指定 VS2008 SP1 作为 C 编译器。2、编写保存视频的 fun_saveVideo.m 文件如下:function fun_saveVid原创 2010-05-27 17:36:00 · 10230 阅读 · 5 评论 -
OpenCV学习笔记(14)利用Matlab查看双目视觉景深效果
在利用OpenCV的 reprojectImageTo3D 函数得到环境的三维(宽度、高度、深度)信息后,通过以下代码保存一帧三维数据: 然后在Matlab中读入这些数据: 由上述代码可以得到如下深度图和重构的三维环境效果,当然这样的重构只是初步的,后期还需要用OpenGL来实现:原创 2010-06-19 19:30:00 · 17266 阅读 · 16 评论 -
OpenCV学习笔记(15)使用OpenGL显示双目视觉三维重构效果
上一篇笔记中使用Matlab初步显示了双目视觉重构出的环境三维效果图,不过并没有加上纹理信息。在OpenCV中文论坛里,大象的帖子(http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=8722&sid=02986dcffb5ebcedf299833e7cbf457c)给出了利用OpenGL显示视差数据的三维点云图,这是一个学习OpenGL和OpenCV混合编程的好帖子,里面的讨论跟帖也很有参考意义,我下面的代码也是参考这个帖子的,感谢原创 2010-06-24 14:23:00 · 56778 阅读 · 58 评论 -
好文章也是要色香味俱全的!——CVPR2010最有趣文章
转自 Dahua Lin’s blog URL:http://dahuasky.spaces.live.com/blog/cns!1AB3BC993DB84FD7!1168.entry 本年度CVPR最有趣的文章 在今年的CVPR,见到了很多朋友,也看到很多Paper。 在这次会议里面让我最喜欢的一篇Paper,却不是在会议中正式发表的,而是在TC Panel派发的。这篇Paper的题目叫Paper Gestalt。文章以诙谐的笔调描述了一个基于vision + learning的自动paper原创 2010-08-16 14:31:00 · 7351 阅读 · 1 评论 -
OpenCV学习笔记(16)双目测距与三维重建的OpenCV实现问题集锦(一)图像获取与单目定标
双目测距的基本原理 如上图所示,双目测距主要是利用了目标点在左右两幅视图上成像的横向坐标直接存在的差异(即视差)与目标点到成像平面的距离Z存在着反比例的关系:Z=fT/d。“@scyscyao:在OpenCV中,f的量纲是像素点,T的量纲由定标板棋盘格的实际尺寸和用户输入值确定,一般是以毫米为单位(当然为了精度提高也可以设置为0.1毫米量级),d=xl-xr的量纲也是像素点。因此分子分母约去,Z的量纲与T相同。” 假设目标点在左视图中的坐标为(x,y),在左右视图上形成的视差为d,目标点在以左摄原创 2010-10-24 08:03:00 · 97441 阅读 · 30 评论 -
OpenCV学习笔记(25)基于MFC和OpenCV的摄像机定标与立体匹配测试程序(20140505更新)
最近整理了一下这两年一直在用的摄像机定标与立体匹配测试程序,将代码进行了重构,界面也做了调整,分享出来方便有需要的朋友使用。当然我的编程能力有限,程序可能还有各种bug,请大家多多包涵。相关问题欢迎留言或email联系讨论,谢谢! ==================================================================================源码原创 2012-10-31 02:44:14 · 58005 阅读 · 238 评论