OpenCV学习笔记(十一)——谈谈像素的类型和对Templates的限制使用
Templates是c++的一个很强大的特征,可以是数据结构更加安全高效。但也会增加编译时间和代码的长度,当函数被频繁调用的时候便步那么高效,所以在目前的OpenCV版本不推荐过多的使用templates。矩阵元素可以是如下类型中的一种: • 8-bit unsigned integer (uchar) • 8-bit sign
Templates是c++的一个很强大的特征,可以是数据结构更加安全高效。但也会增加编译时间和代码的长度,当函数被频繁调用的时候便步那么高效,所以在目前的OpenCV版本不推荐过多的使用templates。矩阵元素可以是如下类型中的一种: • 8-bit unsigned integer (uchar) • 8-bit sign
OpenCV提供一个功能强大的UI接口,可以在MFC、Qt、WinForms、Cocoa等平台下使用,甚至不需要其他的平台。新版本的HighGUI接口包括: 创建并控制窗口,该窗口可以显示图片并记录其内容 为窗口添加了trackbars控件,可以方便利用鼠标进行控制而不是之前版本的只能利用键盘 读写硬盘和内存的图
基于特征点的图像匹配是图像处理中经常会遇到的问题,手动选取特征点太麻烦了。比较经典常用的特征点自动提取的办法有Harris特征、SIFT特征、SURF特征。 先介绍利用SURF特征的特征描述办法,其操作封装在类SurfFeatureDetector中,利用类内的detect函数可以检测出SURF特征的关键点,保存
直方图histograms也是图像处理中经常用到的一种手段。新版本对直方图不再使用之前的histogram的形式,而是用统一的Mat或者MatND的格式来存储直方图,可见新版本Mat数据结构的优势。先介绍下其相关的函数 calcHist、calcBackProject、compareHist、EMD、equalizeHist。除了这几个常用
先介绍几个最基本的核滤波器相关的类 2D图像滤波器基础类BaseFilter:dst(x,y) = F(src(x,y), src(x+1,y)... src(x+wdith-1,y), src(y+1,x)... src(x+width-1, y+height-1) ); 相关的调用函数为getLinearFilter、getMorphologyFilter 单行核滤波器基础类BaseRowFilter:dst(x,y) = F(
1. XML、YAML文件的打开和关闭 XML\YAML文件在OpenCV中的数据结构为FileStorage,打开操作例如: stringfilename="I.xml"; FileStoragefs(filename,FileStorage::WRITE); \\... fs.open(filename,FileStorage::READ); 文件关闭操作会在FileStorage结构销毁时自
都知道,2.0版本对之前的OpenCV数据结构进行了大幅度的修改。但对之前版本的兼容是一个很重要的事情。这节就主要讨论这个问题 首先来看一下2.0版本对之前版本的进行了哪些修改 1.采用了新的数据结构Mat作为图像的容器,取代了之前的CvMat和lplImage,这个改动不是太复杂,只需适应一下
2.0新版本对数据结构进行了大幅修改: 定义了DataType类 定义了Point_模板类,取代了之前版本的CvPoint、CvPoint2D32f 定义了Point3_模板类,取代了之前版本的CvPoint2D32f 定义了Size_模板类,取代了之前版本的CvSize和CvSize2D32f 定义了Rect_模板类,取代了之前版本的CvRect RotatedRect
自从版本2.0,OpenCV采用了新的数据结构,用Mat类结构取代了之前用extended C写的cvMat和lplImage,更加好用啦,最大的好处就是更加方便的进行内存管理,对写更大的程序是很好的消息。 需要注意的几点: 1. Mat的拷贝只是复制了Mat的信息头,数据的指针也指向了被拷贝的数据地址,而没有真正新建
还是老话题,2.2版本对OpenCV可是进行了大刀阔斧的改革,用c++重新了大部分结构,而不是1.X版本中的c结构。这些模块包括: core——定义了基本数据结构,包括最重要的Mat和一些其他的模块 imgproc——该模块包括了线性和非线性的图像滤波,图像的几何变换,颜色空间转换,直
决心开始研究OpenCV。闲言少叙,sourceforge网站最近的版本是OpenCV2.3.1,下载安装,我这里使用的开发环境是vs2008,网上搜了一下配置的教程,与之前的几个OpenCV版本的配置过程大体相同:(教程网上很多,知之为知之,不知百度之,我这里粗略再讲一下) 1. 配置电脑的环境变量(Path变量)这里我的是D:\P
TLD(Tracking-Learning-Detection)学习与源码理解之(一) TLD(Tracking-Learning-Detection)是英国萨里大学的一个捷克籍博士生Zdenek Kalal在其攻读博士学位期间提出的一种新的单目标长时间(long term tracking)跟踪算法。该算法与传统跟踪算法的显著区别在于将传统的跟踪算法和传统
TLD(Tracking-Learning-Detection)学习与源码理解之(三) 下面是自己在看论文和这些大牛的分析过程中,对代码进行了一些理解,但是由于自己接触图像处理和机器视觉没多久,另外由于自己编程能力比较弱,所以分析过程可能会有不少的错误,希望各位不吝指正。而且,因为编程很多地方不懂,所以注释
TLD(Tracking-Learning-Detection)学习与源码理解之(五) 下面是自己在看论文和这些大牛的分析过程中,对代码进行了一些理解,但是由于自己接触图像处理和机器视觉没多久,另外由于自己编程能力比较弱,所以分析过程可能会有不少的错误,希望各位不吝指正。而且,因为编程很多地方不懂,所以注释
一年多前开始接触计算机视觉这个领域的时候,年幼无知,倍感吃力。当年惶恐,从而盲从。挣扎了不少时日,感觉自己好像还是处于领域的门外汉一样,在理论与实践的鸿沟中无法挣脱,心里空落落的。在这种挥之不去的烦忧中,某个时候豁然开朗,觉得要看一个系统的代码了,看看别人是怎么写的,理论又是
浅析人脸检测之Haar分类器方法 一、Haar分类器的前世今生 人脸检测属于计算机视觉的范畴,早期人们的主要研究方向是人脸识别,即根据人脸来识别人物的身份,后来在复杂背景下的人脸检测需求越来越大,人脸检测也逐渐作为一个单独的研究方向发展起来。 目前的人脸检测方法主要有两大类
目标检测的图像特征提取之(一)HOG特征 1、HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。Hog特征结合SVM分类器已经被广泛应用于图像
目标检测的图像特征提取之(二)LBP特征 LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子;它具有旋转不变性和灰度不变性等显著的优点。它是首先由T. Ojala, M.Pietikäinen,和D. Harwood在1994年提出,用于纹理特征提取。而且,提取的特征是图像的局部的
目标检测的图像特征提取之(三)Haar特征 1、Haar-like特征 Haar-like特征最早是由Papageorgiou等应用于人脸表示,Viola和Jones在此基础上,使用3种类型4种形式的特征。 Haar特征分为三类:边缘特征、线性特征、中心特征和对角线特征,组合成特征模板。特征模板内有白色和黑色两种矩形,并定
交互系统的构建之(二)Linux下鼠标和键盘的模拟控制 本文将完成: Linux下鼠标和键盘的模拟控制,也就是为手势和语音控制鼠标和键盘部分服务的。 有关于本系统构建的文章结构都会由三个部分来组织,一是该功能模块的介绍和在Linux下简单赢咖4平台的实现;二是将该功能模块整合到交互系统(
交互系统的构建之(三)TTS语音合成的加盟 本文将完成: TTS语音合成模块,具体是移植Ekho(余音)TTS引擎并整合到TLD系统中。 有关于本系统构建的文章结构都会由三个部分来组织,一是该功能模块的介绍和在Linux下简单赢咖4平台的实现;二是将该功能模块整合到交互系统(先以TLD为地基)中去;三是分
交互系统的构建之(四)手掌与拳头检测加盟TLD 本文将完成: 运行前加入手掌的检测,检测到手掌作为需要跟踪的目标(这样就不需要用鼠标框选目标box了)、运行时加入拳头的检测,检测到拳头,则表示用户单击。 有关于本系统构建的文章结构都会由三个部分来组织,一是该功能模块的介绍和在Linux
要实现目标:整合前面所说的彩色图像、深度图像和骨骼图像,就是实现和SDK自带的那个SkeletonView例程差不多的功能。另外,再增加用户抠图功能,这个功能和SDK自带的那个Green Screen功能差不多。我们通过OpenCV来显示。 一、编程前期分析 这里因为是整合前面几个学习笔记提到的功能,所以
CompressiveTracker.h /************************************************************************ *File:CompressiveTracker.h ************************************************************************/ //这是一个比较常用的C/C++杂注,只要在头文件的最
机器学习十大算法之一:EM算法。能评得上十大之一,让人听起来觉得挺NB的。什么是NB啊,我们一般说某个人很NB,是因为他能解决一些别人解决不了的问题。神为什么是神,因为神能做很多人做不了的事。那么EM算法能解决什么问题呢?或者说EM算法是因为什么而来到这个世界上,还吸引了那么多世人的目