
学习之路:OpenCV2
文章平均质量分 83
这个专栏主要是记录《OpenCV2 计算机视觉编程手册》的一些知识点,以及我个人对于一些重点算法的看法。该书以案例的形式介绍OpenCV 2.X的新特性和C++新接口,同时使用Qt平台实现一些图像处理的功能,案例中包含重点算法的代码与详细的说明,要求读者具有基础的C++知识。
Herbert_Zero
这个作者很懒,什么都没留下…
展开
-
OpenCV2学习笔记(二十二):ORB特征提取
ORB(ORiented Brief)特征提取算法,其前身Brief,是由EPFL的Calonder在ECCV2010上提出了一种可以快速计算且表达方式为二进制编码的描述子,主要思路就是在特征点附近随机选取若干点对,将这些点对的灰度值的大小,组合成一个二进制串,并将这个二进制串作为该特征点的特征描述子。原创 2015-07-18 15:45:25 · 14221 阅读 · 2 评论 -
OpenCV2学习笔记(二十一):GPU模块小记
接触一下OpenCV里一个之前没有接触的模块:GPU。目前,OpenCV中已提供了许多GPU函数,直接使用OpenCV提供的GPU模块,可以完成大部分图像处理的加速操作。该方法的优点是使用简单,利用GpuMat管理CPU与GPU之间的数据传输,而且不需要关注内核函数调用参数的设置。原创 2015-05-31 21:57:36 · 6940 阅读 · 2 评论 -
OpenCV2学习笔记(二十):Win8.1 64位+OpenCV 2.4.9+Python2.7.9配置
记录在Win8.1 64位系统下配置OpenCV 2.4.9+Python2.7.9,以便在Python中使用OpenCV图形库。原创 2015-04-29 22:17:21 · 5008 阅读 · 1 评论 -
OpenCV2学习笔记(十九):Kalman滤波算法
在视频跟踪处理中,预测目标运动轨迹是一项基本任务。目标运动状态估计的目的有三个:一是对目标过去的状态进行平滑;二是对目标现在的运动状态进行滤波;三是对目标未来的运动状态进行预测。物体的运动状态一般包括目标位置、速度、加速度等。著名的Kalman滤波技术就是其中一种,这是一种线性系统估计技术。而OpenCV中自带了kalman滤波的代码和例程。原创 2015-04-26 20:09:52 · 9690 阅读 · 0 评论 -
OpenCV2学习笔记(十八):显示视频流的帧率
在视频上实时显示帧速,即FPS。FPS是Frame Per Second的缩写,中文意思是每秒帧数。开发平台为VS2013+OpenCV2.4.9。FPS是测量用于保存、显示动态视频的信息数量。通俗来讲就是指每秒变化的画面数。在计算FPS时,需要使用的主要函数有getTickCount、getTickFrequency。而在输出图像上显示FPS水印则是使用函数putText。原创 2015-04-05 08:56:43 · 22815 阅读 · 6 评论 -
OpenCV2学习笔记(十七):VS2013中运行支持OpenGL的OpenCV工程
在VS中直接使用预编译的OpenCV进行开发,结果在使用OpenGL时提示”No OpenGL support”。上网查了一下,是因为预编译好的library不支持OpenGL,因此需要使用cmake重新build工程。我的开发环境是:Win 8.1+VS2013+OpenCV 2.4.9。原创 2015-04-04 14:05:23 · 7548 阅读 · 9 评论 -
OpenCV2学习笔记(十六):Stitching图像拼接
图像拼接stitching是OpenCV2.4.0出现的一个新模块,所有的相关函数都被封装在Stitcher类当中。这里演示一个Stitch类的实例。关于Stitcher类的详细介绍,可以参考: http://docs.opencv.org/2.4.2/modules/stitching/doc/high_level.html?highlight=stitcher#stitcher。原创 2015-03-26 11:24:46 · 13306 阅读 · 8 评论 -
OpenCV2学习笔记(十五):利用Cmake快速查找OpenCV函数源码
在使用OpenCV时,在对一个函数的调用不是很了解的情况下,通常希望查到该函数的官方声明。而如果想进一步研究OpenCV的函数,则必须深入到源码。在VS中我们可以选中想要查看的OpenCV函数, 点击右键-> 转到定义,我们可以很清楚地了解到函数的简单声明,但是并没有给出源代码。这是因为openCV将很多函数被加入了函数库,并被编译成了dll,所以只能看到函数申明,没法看到源代码。这里利用Cmake导出可以在VS中快速查找的CpenCV函数源码!原创 2015-03-18 20:07:12 · 3788 阅读 · 0 评论 -
OpenCV2学习笔记(十四):基于OpenCV的图片卡通化处理
学习OpenCV已有一段时间,除了研究各种算法的内容,在空闲之余,根据书本及资料的引导,尝试结合图像处理算法和日常生活联系起来,首先在台式机上(带摄像头)完成一系列视频流处理功能,开发平台为Qt5.3.2+OpenCV2.4.9。本次试验实现的功能主要有:调用摄像头捕获视频流;将帧图像转换为素描效果图片;将帧图像卡通化处理;简单地生成“怪物”形象;人脸肤色变换。原创 2015-03-17 23:32:35 · 11328 阅读 · 2 评论 -
OpenCV2学习笔记(十三):基于SURF特征的图像匹配
SURF算法是著名的尺度不变特征检测器SIFT(Scale-Invariant Features Transform)的高效变种。这里使用SURF算法提取两幅图像中的特征点描述子,并调用OpenCV中的函数进行匹配,最后输出一个可视化的结果,开发平台为Qt5.3.2+OpenCV2.4.9。基于SURF特征的图像匹配。原创 2015-03-12 22:08:05 · 16329 阅读 · 1 评论 -
OpenCV2学习笔记(十二):特征提取算法SIFT与SURF
当尝试在不同图像之间进行特征匹配时,通常会遇到图像的大小、方向等参数发生改变的问题,简而言之,就是尺度变化的问题。每幅图像在拍摄时与目标物体的距离是不同的,因此要识别的目标物体在图像中自然会存在不同的尺寸。因此,计算机视觉中引入尺度不变的特征,主要的思想是每个检测到的特征点都伴随对应的尺度因子。特征提取算法SIFT与SURF算法是两种著名的特征点检测算法。原创 2015-03-11 00:48:11 · 34936 阅读 · 5 评论 -
OpenCV2学习笔记(十一):特征点检测之FAST算法
本节记录另一种特征点检测算子FAST(Features from Accelerated Segment Test),它依赖少数像素的比较来确定是否接受一个特征点,其检测效率要好于Harris。FAST算法可以获得非常快速的特征点检测,在需要考虑运行速度的时候可以选用,比如在高帧率的视频序列中进行视觉跟踪。原创 2015-03-09 00:21:27 · 5069 阅读 · 0 评论 -
OpenCV2学习笔记(十):特征点检测之Harris法
在计算机视觉中,特征点的概念被大量用于解决物体识别、图像匹配、视觉跟踪、三维重建等问题,如图像中物体的角点,它们是在图像中可被轻易而精确地定位的二维特征。这里主要使用Harris特征检测器检测图像角点。原创 2015-03-08 17:26:27 · 8062 阅读 · 1 评论 -
OpenCV2学习笔记(九):视频流读取与处理
由于项目需要,计划实现九路视频拼接,因此必须熟悉OpenCV对视频序列的处理。视频信号处理是图像处理的一个延伸,所谓的视频序列是由按一定顺序进行排放的图像组成,即帧(Frame)。在这里,主要记录下如何使用Qt+OpenCV读取视频中的每一帧,之后,在这基础上将一些图像处理的算法运用到每一帧上(如使用Canny算子检测视频中的边缘)。原创 2015-03-05 17:19:48 · 29855 阅读 · 5 评论 -
OpenCV2学习笔记(八):使用霍夫变换检测直线和圆
在研究一幅图像时,常常会遇到一些平面或线性问题,直线在图像中频繁可见。这些富有意义的特征在物体识别等图像处理过程中扮演着重要的角色。本节主要记录一种经典的检测直线算法——霍夫变换(Hough Transform),用Hough变换检测图像中的直线和圆。原创 2015-03-03 15:59:39 · 7814 阅读 · 1 评论 -
OpenCV2学习笔记(七):使用Canny算子检测轮廓
在:http://blog.csdn.net/liyuefeilong/article/details/43927909 中,主要讨论了使用sobel算子和拉普拉斯变换进行边缘检测。其中主要使用了了对梯度大小进行阈值化以得到二值的边缘图像的方法。在一幅图像中,边缘往往包含着重要的视觉信息,因为它们描绘出图像元素的轮廓。这里使用Canny算子检测轮廓。原创 2015-02-28 22:27:41 · 15071 阅读 · 0 评论 -
OpenCV2学习笔记(六):检测图像颜色小程序
设计一个界面,用来检测一幅图像的颜色分布,开发平台为Qt5.3.2+OpenCV2.4.9。该程序的主要步骤如下: 1. 载入图像,选定一种颜色; 2. 设定阈值,在该值范围内判定像素属于预设的颜色; 3. 在界面的Label中输出结果。原创 2015-02-26 19:46:18 · 7216 阅读 · 0 评论 -
OpenCV2学习笔记(五):图像滤波基础
滤波是数字图像处理中的一个基本操作,在信号处理领域可以说无处不在。图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,通常是数字图像处理中不可缺少的操作,其处理效果的好坏将直接影响到后续运算和分析的效果。简单来说,图像滤波的根本目的是在图像中提取出人类感兴趣的特征。原创 2015-03-02 18:33:17 · 9651 阅读 · 3 评论 -
OpenCV2学习笔记(四):两种图像分割方法比较
此次研究两种图像分割法,分别是基于形态学的分水岭算法和基于图割理论的GrabCut算法。OpenCV均提供了两张算法或其变种。鉴于研究所需,记录一些知识点,开发平台为OpenCV2.4.9+Qt5.3.2。原创 2015-02-23 16:16:44 · 20178 阅读 · 4 评论 -
OpenCV2学习笔记(三):形态学及边缘角点检测
形态学滤波理论于上世纪90年代提出,目前被广泛用于分析及处理离散图像。其基本运算有4个: 膨胀、腐蚀、开启和闭合, 它们在二值图像和灰度图像中各有特点。基于这些基本运算还可推导和组合成各种数学形态学实用算法,用它们可以进行图像形状和结构的分析及处理,包括图像分割、特征抽取、边缘检测、 图像滤波、图像增强和恢复等。原创 2015-02-20 12:26:34 · 7168 阅读 · 2 评论 -
OpenCV2学习笔记(二):图像的直方图
图像增强、直方图均衡化、基于对比度受限自适应直方图均衡化算法、彩色图像的直方图均衡方法原创 2015-02-12 13:47:25 · 6694 阅读 · 3 评论 -
OpenCV2学习笔记(一):图像的基本操作
基于Qt5+OpenCV2.4.9的图像阈值分割原创 2015-02-09 18:07:18 · 4585 阅读 · 0 评论 -
Win8.1下OpenCV2.4.9+Qt5.3.2开发环境搭建
Win8下opencv2.4.9+Qt5.3.2编译环境的搭建原创 2015-02-05 13:47:52 · 4374 阅读 · 1 评论