OpenCV
bitowang
这个作者很懒,什么都没留下…
展开
-
通过OpenCV读取AVI视频,多路视频输出播放器
OpenCV在多线程下不能读取AVI视频新的解决办法:问题情况:在OpenCV中,使用cvCaptureFromAVI打开一个视频文件后,并使用cvReleaseCapture释放关闭它后,再开启一个线程使用cvCaptureFromAVI打开一个视频文件,此时就会出现错误,在调试中,执行这个“CvCapture *capture = cvCaptureFromAVI( m_strVideoP原创 2013-01-16 16:13:33 · 3601 阅读 · 0 评论 -
OpenCV学习笔记(十)——图形交互和媒体接口HighGUI
OpenCV提供一个功能强大的UI接口,可以在MFC、Qt、WinForms、Cocoa等平台下使用,甚至不需要其他的平台。新版本的HighGUI接口包括:创建并控制窗口,该窗口可以显示图片并记录其内容为窗口添加了trackbars控件,可以方便利用鼠标进行控制而不是之前版本的只能利用键盘 读写硬盘和内存的图片 读取摄像头的视频、读写视频文件 先来介绍UI,包括函数createTra转载 2013-05-30 00:26:25 · 1569 阅读 · 0 评论 -
OpenCV学习笔记(九)——2维特征Feature2D
基于特征点的图像匹配是图像处理中经常会遇到的问题,手动选取特征点太麻烦了。比较经典常用的特征点自动提取的办法有Harris特征、SIFT特征、SURF特征。先介绍利用SURF特征的特征描述办法,其操作封装在类SurfFeatureDetector中,利用类内的detect函数可以检测出SURF特征的关键点,保存在vector容器中。第二部利用SurfDescriptorExtractor类进行转载 2013-05-30 00:15:59 · 893 阅读 · 0 评论 -
OpenCV学习笔记(十二)——随机数产生器RNG
用OpenCV做算法的朋友们肯定为随机数烦恼过,新版本一直支持随机数产生器啦,而且还继续支持之前版本的c格式的函数,不过与时俱进,我这里介绍C++的RNG类。它可以压缩一个64位的i整数并可以得到scalar和array的随机数。目前的版本支持均匀分布随机数和Gaussian分布随机数。随机数的产生采用的是Multiply-With-Carry算法和Ziggurat算法。其构造函数的初始化可以转载 2013-05-30 00:31:56 · 4297 阅读 · 0 评论 -
OpenCV学习笔记(十一)——谈谈像素的类型和对Templates的限制使用
Templates是c++的一个很强大的特征,可以是数据结构更加安全高效。但也会增加编译时间和代码的长度,当函数被频繁调用的时候便步那么高效,所以在目前的OpenCV版本不推荐过多的使用templates。矩阵元素可以是如下类型中的一种:• 8-bit unsigned integer (uchar)• 8-bit signed integer (schar)• 16-bit un转载 2013-05-30 00:28:20 · 816 阅读 · 0 评论 -
OpenCV学习笔记(三)——Mat,图像的新容器
自从版本2.0,OpenCV采用了新的数据结构,用Mat类结构取代了之前用extended C写的 cvMat 和 lplImage,更加好用啦,最大的好处就是更加方便的进行内存管理,对写更大的程序是很好的消息。需要注意的几点:1. Mat的拷贝只是复制了Mat的信息头,数据的指针也指向了被拷贝的数据地址,而没有真正新建一块内存来存放新的矩阵内容。这样带来的一个问题就是对其中一个Mat转载 2013-05-23 20:56:44 · 796 阅读 · 0 评论 -
OpenCV学习笔记(一)——安装配置、第一个程序
决心开始研究OpenCV。闲言少叙,sourceforge网站最近的版本是2011年8月的OpenCV2.3.1,下载安装,我这里使用的开发环境是vs2008,网上搜了一下配置的教程,与之前的几个OpenCV版本的配置过程大体相同:(教程网上很多,知之为知之,不知百度之,我这里粗略再讲一下)1. 配置电脑的环境变量(Path变量)这里我的是D:\Program Files\OpenCV2.转载 2013-05-23 20:35:36 · 650 阅读 · 0 评论 -
OpenCV学习笔记(二)——新版本模块结构
还是老话题,2.2版本对OpenCV可是进行了大刀阔斧的改革,用c++重新了大部分结构,而不是1.X版本中的c结构。这些模块包括:core——定义了基本数据结构,包括最重要的Mat和一些其他的模块imgproc——该模块包括了线性和非线性的图像滤波,图像的几何变换,颜色空间转换,直方图处理等等video——该模块包括运动估计,背景分离,对象跟踪calib3d——基本的多视角几何算法转载 2013-05-23 20:40:39 · 873 阅读 · 1 评论 -
OpenCV学习笔记(四)——新版本的数据结构core
2.0新版本对数据结构进行了大幅修改:定义了DataType类定义了Point_模板类,取代了之前版本的CvPoint、CvPoint2D32f定义了Point3_模板类,取代了之前版本的CvPoint2D32f定义了Size_模板类,取代了之前版本的CvSize和CvSize2D32f定义了Rect_模板类,取代了之前版本的CvRectRotate转载 2013-05-23 21:01:25 · 755 阅读 · 0 评论 -
OpenCV学习笔记(五)——2.0以上版本和以下版本的数据兼容
都知道,2.0版本对之前的OpenCV数据结构进行了大幅度的修改。但对之前版本的兼容是一个很重要的事情。这节就主要讨论这个问题首先来看一下2.0版本对之前版本的进行了哪些修改1.采用了新的数据结构Mat作为图像的容器,取代了之前的 CvMat 和 lplImage,这个改动不是太复杂,只需适应一下新东西,而且可以自由转换Mat I;IplImage pI = I;CvMat m转载 2013-05-23 21:05:36 · 735 阅读 · 0 评论 -
OpenCV学习笔记(七)——图像处理之滤波器ImgProc
先介绍几个最基本的核滤波器相关的类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单行核滤波器基础类Base转载 2013-05-24 23:35:12 · 994 阅读 · 0 评论 -
OpenCV学习笔记(六)——对XML和YAML文件实现I/O操作
1. XML、YAML文件的打开和关闭XML\YAML文件在OpenCV中的数据结构为FileStorage,打开操作例如:string filename = "I.xml"; FileStorage fs(filename, FileStorage::WRITE); \\... fs.open(filename, FileStorage::READ); :文转载 2013-05-24 23:28:05 · 1273 阅读 · 0 评论 -
OpenCV学习笔记(八)——图像处理之直方图ImgProc
直方图histograms也是图像处理中经常用到的一种手段。新版本对直方图不再使用之前的histogram的形式,而是用统一的Mat或者MatND的格式来存储直方图,可见新版本Mat数据结构的优势。先介绍下其相关的函数calcHist、calcBackProject、compareHist、EMD、equalizeHist。除了这几个常用的函数以为,还有一些c函数写的直方图类CvHistogr转载 2013-05-25 20:23:13 · 1300 阅读 · 0 评论 -
OpenCV学习笔记(十三)——模板匹配
寻找一幅图像的匹配的模板,可以在一段视频里寻找出我们感兴趣的东西,比如条形码的识别就可能需要这样类似的一个工作提取出条形码区域(当然这样的方法并不鲁棒)。而OpenCV已经为我们集成好了相关的功能。函数为matchTemplate。所谓模板匹配就是在一幅图像中寻找和模板图像(patch)最相似的区域。该函数的功能为,在输入源图像Source image(I)中滑动框,寻找各个位置与模板图像转载 2013-05-30 20:55:08 · 1155 阅读 · 0 评论