按分类归档:模式识别

Ubuntu11.04 下安装 OpenCV2.2

一、注意事项 Ubuntu 11.04 下安装 OpenCV2.2 由于2.6.38内核移除了videodev.h,一般会出现以下错误: 错误1: /home/user/OpenCV-2.2.0/modules/highgui/src/cap_v4l.cpp:217:28: fatal error: linux/videodev.h: No such file or directory compilation terminated. make[2]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/src/cap_v4l.o] Error 1 make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] Error 2 make: *** [all] Error 2 错误2: ../../lib/libopencv_highgui.so.2.2.0: undefined reference to `cvCreateCameraCapture_V4L(int) 其解决方案如下:

, , , , 1 comment

SIFT算法学习心得

这篇文章主要介绍 SIFT 算法。希望通过对 SIFT 算法的总结来更加深入地了解“尺度不变特征变换”,除此之外,也加深来对 SURF 算法的理解。 附件:SIFT—Scale Invariant Feature Transform 1 SIFT 发展历程及主要思想 SIFT算法由D.G.Lowe 1999年提出,2004年完善总结。后来Y.Ke将其描述子部分用PCA代替直方图的方式,对其进行改进。是一种提取局部特征的算法,在尺度空间寻找极值点,提取位置,尺度,旋转不变量。 2 SIFT算法的主要特点 a) SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性;

, , , , 发表评论

成果初展

这学期才开始的研究,第一篇论文便是计算机视觉(Computer Vision)相关的,题目:Learning Graph Matching。看了很多遍,查找了无数的相关与不相关资料,遇到了无数的理论和实践问题,也走了不少的弯路。历时两个月、60天,如果说之前的叫做万里长征走出了第一步,那么如今可以说万里长征走到了第98步,但心中这只能说是Maybe 98步。而做研究就是探索未知世界,部分人说看论看作者主页有没有源代码,拿过来改改就行了(的确:作者开源代码的做法是值得鼓励的,但其目的并不是让你修改一下然后就成为你的)。仔细一想,要真是那样,你做的只是Copy and Modify,只是为了应付任务才去理解论文、思考论文,那问一句:还要你干研究么?

, , , , 3 comments

VS2008 与 Matlab 的混合编程(quadprog函数为例)

本文简单介绍VS2008与Matlab的混合编程(quadprog函数为例),C/C++与Matlab的混合编程有多种方式,这里只介绍采用动态链接库的方式。 附件:M文件及生成的DLL | Matlab_C源代码 | 意大利人的QuadProg++ 众所周知Matlab的强大运算能力让各种工程软件望而却步,而VC程序的友好界面又让人爱不释手,如果能够让两者的优势结合起来的话,势必能让程序员欢欣鼓舞。还好MathWorks已经为我们想到了,基本上现在市面上主流的Matlab版本都可以支持VC和Matlab的混合编程。但是目前网上资料基本上都是基于Matlab 6.0和VC++ 6.0的,和新版本的实现方法有所不同,由于笔者在实现论文算法的时候要用到求解二次规划问题(QAP),经过大约几天的摸索,初步还是决定采用Matlab优化工具箱中的quadprog来解决,毕竟基于C/C++的求解二次规划问题的工具程序包极为稀少(目前在网上也只能找到一位意大利人写的Quadprog++),这是由于Quadprog++没有尝试过,故所能解决问题的规模(论文中要求的二次规划问题变量个数上千个,限制条件至少也有上百个,甚至上千个)并不能得到保证,而Matlab经过大量的实践,优化工具箱的效果非常好!言归正传,下面简单介绍介绍VS2008与Matlab的混合编程:

, , , , 11 comments

Tracking-Learning-Detection

看看吧,人家都做到什么程度了!(几乎镜头里的任何物体可以识别、跟踪)Tracking-Learning-Detection (2010年新品,2011年四月发布) 配合一下LiMu。 [5] Z. Kalal, K. Mikolajczyk, and J. Matas, “Face-TLD: Tracking-Learning-Detection Applied to Faces,” International Conference on Image Processing, 2010.pdf

, , 发表评论

Intel视觉库中鼠标事件小结

最近写一个程序,希望与用户之间的交互功能比较具有亲和力。其中用到了鼠标事件,对于鼠标事件,Intel 算机视觉库 (OpenCV) 中对鼠标事件的响应采用回调函数的方式来处理。即,为了可以响应鼠标点击事件,首先必须创建一个回调函数,使鼠标点击事件发生时 OpenCV 可以调用这个函数。创建这个函数以后,需要在 OpenCV 中注册这个函数,以便特定窗口被触发鼠标事件以后,OpenCV 可以正确调用这个函数。 回调函数 callback 可以是满足指定输入参数以及返回参数类型的任何参数。这里,我们必须清楚告诉回调函数触发的事件以及触发位置。函数还需要被告知,用户是够在触发鼠标事件时同时触发了 Shift 或者 Alt等键,下面是回调函数必须符合的格式:

, , , , 发表评论

Surf算法学习心得(三)——Demo分析

OpenCV Demo分析(find_obj.cpp) OpenCV2.1中有关于Surf算法的简单示例(1.1以上的版本都添加了这个算法),在路径:C:\Program Files\OpenCV2.1\samples\c下,名为find_obj.cpp,运行它可以直接观察到相应结果。为了便于介绍这个示例,简单做了如下修改(只是删掉一些代码,但是对于如何使用Surf算法没有影响)。 修改后的代码及其注释如下:(主要是介绍这个main函数) /* * A Demo to OpenCV Implementation of SURF * Further Information Refer to “SURF: Speed-Up Robust Feature” * Author: Liu Liu * liuliu.1987+opencv@gmail.com */

, , , , 3 comments

Surf算法学习心得(二)——源码简析

说明:作为初学者,我对于源代码也只是简单的分析,开始和(一)中一样都叫做源码分析,后来感觉自己分析的质量不太好,还是都改为源码简析吧,结合起(一)及后面的心得来看估计效果会好点,呵呵。只是希望对于即将要学习Surf算法的人有一定的帮助就行!对于一些介绍得不对的地方,也希望各位大虾能过指出,相互交流,共同进步! Surf算法源代码分析 surf算法源代码分为两种文件,学过C/C++的都知道,在此不多说。头文件主要包括:imload.h、ipoint.h、image.h、fasthessian.h、surf.h、surflib.h,其中每个文件用于声明一个特定的相应类,下面大体进行简单介绍。

, , , , 3 comments