- 博客(83)
- 资源 (34)
- 收藏
- 关注
原创 OpenCV学习笔记(六十二)——《OpenCV Computer Version with Python》阅读摘要
现在python火啊,每次OpenCV自带的ml模块都让我直呼坑爹,索性准备用python来做OpenCV后期的机器学习算法的处理。于是赶紧拿起这本书读读。适合OpenCV和python都有一定基础的。。。。由于都比较熟悉这两个东西,我阅读之前比较关心的只有几个问题,具体的应用实例没有仔细看。1.如何在python中安装opencv2.OpenCV的Mat数据结构能否方便的转换成num
2014-08-30 08:29:19
11892
2
原创 OpenCV学习笔记(五十九)——marker检测识别"Master OpenCV"chp.2
第二章原本是讲如何将基于标定的增强现实在ios平台实现,包括以下4个方面:1、在ios平台建立opencv工程2、Marker检测识别3、摄像机标定及Marker姿态估计4、在Marker基础上渲染一个3维虚拟物体这里面第一部分是IOS平台的开发,我不是太关注,略去;第四部分是基于OpenGL的3维虚拟物体建立,也是基于IOS平台,因为第三章里还要用到OpenGL,这里留着第三
2013-01-30 12:24:12
32964
8
原创 OpenCV学习笔记(六十一)——建立支持OpenGL的OpenCV工程“Master OpenCV”chp.3
从OpenCV2.4beta版本,OpenGL就可以有接口到highgui的模块中了。结合Master OpenCV第三章的阅读,这里说说如何在OpenCV的显示中嵌入OpenGL的虚拟物体。要注意的一点:如果想使OpenCV支持OpenGL,不能使用预编译好的library,要用cmake rebuild工程,注意ENABLE_OPENGL = YES,(在2.4.2版本中,默认ENABLE
2013-01-23 18:01:05
25333
5
原创 OpenCV学习笔记(五十八)——读《Master OpenCV》初感
好久没更新这个系列了。去年12月初的时候就知道出了一本OpenCV的新书《Master OpenCV with Practical Computer Vision Projects》,一直没来得及看,春节前也不想做什么任务,就把这书读一读吧。大概看了一下,和OpenCV的其他书对比了一下,感觉如下:《Learning OpenCV》是一本经典的老书了,是一个入门教材,读完可以知道OpenCV能
2013-01-21 17:42:33
16786
5
原创 读了几篇boosting文献的收获。。。
距离上一篇blog都3个多月了。最近也是有的懒,看到别人的blog层次都很高,总是介绍些opencv的粗浅的东西,总是感觉自惭形愧。所以一直野就没写啥。白驹过隙,3个月,我都转博了,opencv都2.4.3了,可是感觉自己还是弱爆了,懂得太少,翻来看看以前学习过的知识,也多半一知半解。这次就又翻了翻boosting的东西学习了一下(研一上课就这东西听懂了。。。。)。自己看完了,也不知道自己的理解都
2012-11-22 17:50:39
17983
10
原创 OpenCV学习笔记(五十七)——在同一窗口显示多幅图片
好久没更新blog里,看到OpenCV官网做的越来越好,心里也是很高兴的,真有些冲动将来加入到这个组织里做些事。估计2.4.3要在国庆左右跟大家见面,让我们多期待一下吧。闲话少说,今天不介绍复杂的算法了,来个简单的,大家写文章做图经常用Matlab,在Matlab里经常在一个窗口里打开多幅图片。遗憾的是OpenCV没有集成这样的功能,但这难不倒大家,让我试试用ROI来解决这个问题。没啥好讲
2012-08-28 15:14:01
23369
9
原创 OpenCV学习笔记(五十六)——InputArray和OutputArray的那些事core
看过OpenCV源代码的朋友,肯定都知道很多函数的接口都是InputArray或者OutputArray型的,这个接口类还是很强大的,今个就来说说它们的那些事。InputArray这个接口类可以是Mat、Mat_、Mat_、vector、vector>、vector。也就意味着当你看refman或者源代码时,如果看见函数的参数类型是InputArray型时,把上诉几种类型作为参数都是可以的。
2012-07-17 14:37:49
69346
6
原创 OpenCV学习笔记(五十五)——用OpenCV做人脸识别和性别识别contrib
人脸识别的故事说也说不完,调研的事还是交给大家吧。这里说的是用OpenCV做人脸识别。因为是真正的人脸识别,不是搞笑娱乐的东西,所以数据库一定要强大的,推荐个网站http://www.face-rec.org/databases/。这里有最全的人脸库的概述,希望大家能找到自己需要的人脸库(PS:我现在特别需要一个3d的人脸库,不知道哪位大侠知道如何free获取,或者愿意共享给我那更是极好的了,
2012-07-15 11:52:46
66387
29
原创 OpenCV学习笔记(五十四)——概述FaceRecognizer人脸识别类contrib
在最新版的2.4.2中,文档的更新也是一大亮点,refrence manual扩充了200多页的内容,添加了contrib部分的文档。contrib就是指OpenCV中新添加的模块,但又不是很稳定,可以认为是一个雏形的部分。这次结合refman的阅读,介绍一下FaceRecognizer这个人脸识别类,这个类也是2.4.2更新日志里着重强调过的更新,配套的文档也是相当充实。这个类的基类也是Algo
2012-07-11 15:11:29
77759
29
原创 OpenCV学习笔记(五十三)——新版本2.4.2简介&FREAK和ORB特征描述子效果对比features2d
OpenCV 2.4.2简介OpenCV从未放慢自己前进的步法,就在7月4日,最新版的2.4.2又放出来了。与之同时放出的还有两个网站http://opencv.org/和http://answers.opencv.org,前者作为一个正式的全新的官方用户网站,简单浏览了一下,应该是一个对应之前维基百科上的那个网站,是一个介绍性的新闻网站,对开发者的意义可能不是太大;后面这个网站就厉害了,是一
2012-07-10 20:54:50
38456
38
原创 FFmpeg浅尝辄止(四)——音频的解码和编码
音频和视频其实是一样的,在文件中寻找音频流,然后解压出来,得到音频帧的数据,同样也可以按照设定的编码格式进行压缩,我这里把音频的解码和编码做成了两个工程,也是直接上代码:#include #include extern "C"{#include #include #include }int main(char arg,char *argv[]){ char *fil
2012-06-28 16:45:46
34061
2
原创 FFmpeg浅尝辄止(三)——小试视频解码
上一篇介绍了视频编码的小例子,视频解码跟编码差不多,只是要在视频文件中寻找视频流,找到后对流逐帧解码,就这样简单。闲言少叙,上code:int main(int argc, char *argv[]){ AVFormatContext *pFormatCtx; int i, videoStream; AVCodecContext *pCodecCtx; AV
2012-06-28 15:35:39
15218
原创 FFmpeg浅尝辄止(二)——YUV视频序列编码为视频
上一篇已经写了如何配置好开发环境,这次就先小试牛刀,来个视频的编码。搞视频处理的朋友肯定比较熟悉YUV视频序列,很多测试库提供的视频数据都是YUV视频序列,我们这里就用用YUV视频序列来做视频。关于YUV视频序列,我就不多讲了,可以看书学习,通常的视频序列都是YUV420格式的。步骤也就那几步,添加视频流,打开编码器,开辟相应的内存空间,然后就可以打开YUV序列逐帧写入数据了,so easy!
2012-06-28 11:30:55
22491
2
原创 FFmpeg浅尝辄止(一)——工欲善其事,必先利其器
好久没更新blog了,最近一直在看ffmpeg方面的资料,也是应急,学的也是皮毛。我只是把我学习的一些弯路跟大家分享一下,希望能对大家有些许帮助,如果哪里说的不对,还请大神指点啊。首先,当然还是开发工具的选择,我去ffmpeg的官网看了一下,吓死人,竟然都更新到0.11.1,真是版本更新的快啊,我看网上广泛使用的都是6.0以下的版本,即使我们最爱的OpenCV也是用FFmpeg0.7.x进行的
2012-06-28 09:41:03
27974
原创 OpenCV学习笔记(五十二)——号外:OpenCV 2.4.1 又出来了。。。。。
距离2.4.0放出来才一个月。儿童节当天2.4.1就出炉了。。。。真心跟不上节奏啊,路漫漫其修远兮。。。。这次主要的改变还是bug的修订,之前有朋友告诉我,说他的2.3.1版本说什么都不能成功配置CUDA,后来他用2.2版本就成功了,看来新出的版本bug还是很多的,也不能盲目求新。这次的2.4.1版本更新如下:GPU模块支持了CUDA4.1、CUDA4.2版本,添加了一个文件字符串存储回读
2012-06-06 08:41:24
10197
5
原创 OpenCV学习笔记(五十一)——imge stitching图像拼接stitching
stitching是OpenCV2.4.0一个新模块,功能是实现图像拼接,所有的相关函数都被封装在Stitcher类当中。这个类当中我们可能用到的成员函数有createDefault、estimateTransform、composePanorama、stitch。其内部实现的过程是非常繁琐的,需要很多算法的支持,包括图像特征的寻找和匹配,摄像机的校准,图像的变形,曝光补偿和图像融合。但这些模块的
2012-05-22 17:26:49
70083
33
原创 OpenCV学习笔记(五十)——Algorithm类介绍(core)
刚开始学习新的2.4.0,大概看了一遍使用手册,还是有些失望的,很多章节还是2.3.1的内容,文档上的代码也是漏洞很多。这里就简单介绍一下Algorithm这个新的基类。本来以为这部分是一个新模块的,看了referenceManual后才知道它只是一个基类,集成了一些相对复杂的算法,比如BM算法等立体匹配算法,前景背景分离的算法,光流法等模块都集成在其中。类内成员函数主要有get、set、writ
2012-05-04 13:25:03
30475
6
原创 OpenCV学习笔记(四十九)——号外!OpenCV-2.4.0 release 千呼万唤始出来
最近一直很忙,没有及时回复网友的咨询和疑问,有些回复也是寥寥数语。其实我也没有办法,面对大量的问题,有大部分都是可以通过网络和图书获得答案,我实在没有精力每个问题都详细具体的回答,希望大家谅解,还是一位老师说的好:“知之为知之,不知百度知”。前阵子有些朋友已经发现了OpenCV-2.4.0beta已经放出了,又有重大改动,很是让人兴奋,我前一篇blog——OpenCV学习笔记(三十四)——Op
2012-05-03 17:01:03
12287
2
原创 ASM(active shape models)算法介绍
ASM是基于统计学习模型的特征点提取的一种方法。这个方法是95年就提出来的,不过至今仍是我认为比较好的人脸特征点提取的方案。方法的提出人Tim Cootes后来还提出了aam算法,也很有名,但如果简单是特征点的定位的话,我认为asm的效果可能更好一些。ASM跟大多数统计学习方法一样,也包括train和test(or fit)两部分,也就是形状建模build和形状匹配fit。这个算法其实很简单,可以
2012-04-17 12:00:01
29594
15
原创 OpenCV学习笔记(四十八)——PCA算法实现core
PCA(principal component analysis,主成分分析),我想是大家用的最多的降维手段,对于PCA的理解,我想大神们都各有各的绝招,可以应用的场合也非常多。下面就介绍一下OpenCV中PCA这个类,因为常用,所以这个类相对OpenCV而言显得比较独立,放在了core这部分中。PCA类的成员函数包括构造函数、运算符重载()、project、backProject这几个函数,
2012-04-10 20:41:10
27750
23
原创 OpenCV学习笔记(四十七)——VideoWriter生成视频流highgui
首先要先纠正个误区,我见有人用OpenCV做多媒体开发,真的是很搞笑,OpenCV这东西再强大,这方面也不行的,之所以把视频读取写入这部分做的强大一些,也是为了方便大家做视频处理的时候方便些,而且这部分也是基于vfw和ffmpeg二次开发的,功能还是很弱的。一定要记住一点,OpenCV是一个强大的计算机视觉库,而不是视频流编码器或者解码器。希望大家不要走入这个误区,可以把这部分简单单独看待。目前,
2012-04-09 16:38:09
120793
20
原创 OpenCV学习笔记(四十六)——FAST特征点检测features2D
特征点检测和匹配是计算机视觉中一个很有用的技术。在物体检测,视觉跟踪,三维常年关键等领域都有很广泛的应用。这一次先介绍特征点检测的一种方法——FAST(features from accelerated segment test)。很多传统的算法都很耗时,而且特征点检测算法只是很多复杂图像处理里中的第一步,得不偿失。FAST特征点检测是公认的比较快速的特征点检测方法,只利用周围像素比较的信息就可以
2012-03-30 16:50:32
63337
13
原创 多线程开发简易工具——OpenMP使用
最近有朋友问我tld感觉运行还是不够快,问我如何提升效率,我说用多线程,可是感觉很多编程人员认为这是个禁区,不敢涉足。但其实大家不用如此害怕,并行编程固然涉及很多系统运行机制的问题,搞不好可能会使程序崩溃,但OpenMP大大降低了并行开发的难度和复杂度。具体使用也非常简单,不用安装任何辅助开发插件,只是在vs开发环境中简单配置一下,我这里使用的vs2008的中文版,只需如图设置,对应英文版应该
2012-03-23 13:52:10
6600
13
原创 随机蕨(random ferns)简介
之前看到的TLD代码中里机器学习的部分就是用的这个方法。不过TLD作者在论文中实现使用的是random forest,不过归到底,random forest和random ferns都是一种东西。英文比较好的,推荐链接http://cvlab.epfl.ch/alumni/oezuysal/ferns.html,ferns方法的提出者在这里面介绍的已经很详细了。这个链接也是之前交流tld时一个
2012-03-15 21:24:19
24714
9
原创 OpenCV学习笔记(四十五)——小试随机森林(random forest)算法ml
对于随机森林算法,原理我想大家都会去看论文,推荐两个老外的网址http://www.stat.berkeley.edu/users/breiman/RandomForests/和https://cwiki.apache.org/MAHOUT/random-forests.html,第一个网址是提出随机森林方法大牛写的,很全面具体,第二个是我自己找的一个,算是一个简化版的介绍吧。说白了,随机森林分类
2012-03-12 18:38:22
49740
19
原创 用mfc制作程序启动logo
完了,这次土鳖了,介绍个非常过时的东西,其实就是自己收藏一下,怕以后想用的时候自己忘了。直接进入正题,首先用ps等工具做一个自己喜欢的程序启动的logo位图,我这里制作的logo大小为500*313,比例为黄金比例,看上去很舒服。新建mfc工程,把制作好的logo位图添加的资源中去,资源ID号设置为IDB_SPLASH。新建类CSplashWnd,#pragma once#inc
2012-03-06 09:52:40
6349
4
原创 waffles机器学习包——概述及安装
我也是刚接触到这个开发包,这个开发包也就十几个人写的,有人问我opencv里也有ml的部分,如何比较,我感觉这个都是设计的关注点不同,设计的思路当然也不同,用处也不同,我最近在看ml的算法部分,我感觉这个库还是对我的学习有很大帮助的。先介绍一下这个库的概述吧waffles_audio 包含了处理音频文件的工具(处理音频做什么?还没有用到过)waffles_cluster 包含了聚类的方
2012-03-02 16:47:52
3942
2
原创 Waffles——机器学习开发包
Waffles是一款跨平台的、基于命令行的机器学习开发包,包含了现有的主要机器学习算法,完全开源,用C++编写,使用方便。该工具包的强大之处非常多,很重要的一个方面就是其在非监督学习方面的包罗万象,特别是降维算法,实现了PCA、isomap、LLE、manifold sculpting、breadth-first unfolding、neuro-PCA、cycle-cut、unsupervis
2012-02-29 15:18:06
6104
8
原创 MDS(multidimensional scaling)多维尺度分析
大家一般想到降维,就自然想到一种方法PCA,其实还有一种方法MDS(multidimensional scaling),可以获得样本间的相似性的空间表达。先说说这两种方法的相似处,PCA是把观察的数据用较少的维数来表达,这点上两种方法的相似的;两种方法的不太之处在于,MDS利用的是成对样本间相似性,目的是利用这个信息去构建合适的低维空间,是的样本在此空间的距离和在高维空间中的样本间的相似性尽可
2012-02-28 17:29:21
73411
6
原创 matlab c++混合编程入门之Mex环境配置
最近一直在看文章,很多老外都提供了源代码,好多都是matlab写的。其中不少都夹杂着c++混合编程的程序。对于matlab本身就是知之甚少,又遇到混http://www.opencv.org.cn/forum/viewto合编程,让我头大的不行啊。硬着头皮搞吧,还好,弄出来了。于是把我解决问题的过程拿出来分享一下,希望对和我一样菜的朋友有个帮助。一个matlab程序,编译总是不通过,说我其中混
2012-02-24 15:09:21
18687
12
原创 OpenCV学习笔记(四十四)——初探GPU
好久没有更新啦,感觉最近没有什么特别的收获值得和大家分享,还是有些懒,TLD结束了也没有写个blog做总结。还是和大家分享一下OpenCV的一个大家很少接触的模块吧——GPU。这个部分我接触的也是很少,只是根据教程和大家简单交流一下,如果有高手有使用心得,欢迎多多批评。OpenCV的GPU模块只支持NVIDIA的显卡,原因是该部分是基于NVIDIA的CUDA和NVIDIA的NPP模块实现的。而
2012-02-13 14:12:32
43286
8
原创 OpenCV学习笔记(四十三)——存取像素值操作汇总core
在上一讲OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年里,对Mat内数据的各种读写操作进行了速度的比较,都是我自己想到的方法,感觉不够系统,这次整理了下思路,参考了文献,把能想到的方法进行了汇总,希望能对大家有所帮助。1.存取单个像素值最通常的方法就是img.at(i,j) = 255;img.at(i,j)[0] = 255;如果你觉得at操
2012-01-06 18:36:12
37266
9
原创 OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年
首先还是要感谢箫鸣朋友在我《OpenCV学习笔记(四十)——再谈OpenCV数据结构Mat详解》的留言,告诉我M.at(3, 3)在Debug模式下运行缓慢,推荐我使用M.ptr(i)此类方法。这不禁勾起了我测试一下的冲动。下面就为大家奉上我的测试结果。我这里测试了三种操作Mat数据的办法,套用流行词,普通青年,文艺青年,为啥第三种我不叫2b青年,大家慢慢往后看咯。普通青年的操作的办法
2011-12-29 11:47:18
48474
27
原创 OpenCV学习笔记(四十一)——再看基础数据结构core
记得我在OpenCV学习笔记(四)——新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马虎了。对于新版本的数据结构,我再说说。Point_类不用多言,里面两个成员变量x,y。Point_就是Point2i,也是Point,Point_就是Point2f,Point_就是Point2d。Point3_类不太常用,跟Point_类差不太多,成
2011-12-28 12:51:40
41692
2
原创 OpenCV学习笔记(四十)——再谈OpenCV数据结构Mat详解
我记得开始接触OpenCV就是因为一个算法里面需要2维动态数组,那时候看core这部分也算是走马观花吧,随着使用的增多,对Mat这个结构越来越喜爱,也觉得有必要温故而知新,于是这次再看看Mat。Mat最大的优势跟STL很相似,都是对内存进行动态的管理,不需要之前用户手动的管理内存,对于一些大型的开发,有时候投入的lpImage内存管理的时间甚至比关注算法实现的时间还要多,这显然是不合适的。除了
2011-12-28 10:33:32
166199
12
原创 OpenCV学习笔记(三十九)——再谈OpenCV的数据结构,Mat是如此强大
还是一个实时性要求的程序最近把我弄得有些上火。为了提高代码运行的速度,我也是又新啃东西学了。由于我代码里使用了vector,网上搜来搜去有人说vector慢,又有人说STL里的sort排序速度是我等常人不能企及的,有人说要少resize,这个重新分配内存非常耗时,又有人说要用swap来彻底删除不要的内存空间。带着这么多疑问,我实在不知道我程序慢的原因。于是乎阅读了《Effective STL》,这
2011-12-27 21:09:36
39121
7
原创 OpenCV学习笔记(三十八)——显示当前FPS
最近做一个东西,需要实时显示,于是想在屏幕显示FPS。FPS是Frame Per Second的缩写,中文意思是每秒帧数,即帧速。FPS是测量用于保存、显示动态视频的信息数量。通俗来讲就是指动画或视频的画面数。这就需要我在系统函数一讲里提到的getTickCount、getTickFrequency这两个函数了。前一个函数返回tick次数,后一个函数返回每秒tick次数,它们的比就是时间咯。
2011-12-22 16:20:29
18614
原创 庖丁解牛TLD(五)——井底之蛙啦~
随着和我交流TLD的朋友越来越多,我渐渐的知道的也多了,才发现我研究的结果只是沧海一粟。这里先膜拜一下Alan Torres大神,他已经用c++把TLD重新写好了,而且代码很规范。他设计的理念有:1. depends *only* on OpenCV (2.3) 2. no Matlab! 3. easy to compile and run (on linux, work in
2011-12-21 15:40:51
44826
74
原创 OpenCV学习笔记(三十七)——实用函数、系统函数、宏core
如果你想在OpenCV的基础上自己开发一些算法,我觉得core这部分内容不得不精啊,能熟练使用OpenCV的数据结构是开发的基础,又是重中之重。最近就又拌在这上头了,所以再重温一下。这次分析一下Utility and System Functions and Macros这部分,就是实用函数、系统函数和宏。OpenCV在这部分里包含一些类似标准c++、c里面的一些东西。系统函数有很多。有些
2011-12-20 16:22:31
15776
1
原创 庖丁解牛TLD(四)——Tracking解析
前几节都是根据作者的程序流程一步步介绍作者的工作,感觉只是对代码的一个注释,这次换一个思路,一部分一部分啃,作者的工作主要就是3部分么,tracking,learning,detection。这次先介绍Tracking的工作。对于Tracking,作者主要使用的是他提出的Forward-Backward Error的办法,使用Lucas-Kanade光流法跟踪,对跟踪的结果,用Forward-
2011-12-17 13:28:53
17251
8
基于OpenCV的二维码检测识别基础demo
2013-01-30
FFmpeg将YUV视频序列编码为视频
2012-06-28
手势检测(基于OpenCV)
2011-11-02
splash程序启动时显示Logo画面
2011-08-22
电脑技术06年巨献资料
2010-06-11
TFT液晶彩图显示法
2009-11-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人