近几周通过对C 语言及OPENCV 的逐渐学习,初步了解了OPENCV 的一些知识,现在对自己的学习做一个总结。 OpenCV 是一个开源的计算机视觉库,其采用 C 编写,被设计成为可移植的函数库,OpenCV 的设计目标是执行速度尽可能的快,其主要关注的是实时应用。 OpenCV 的结构和内容: 上面这幅截图是 OpenCV 源码的文件组成结构,可以看出其中包括cv,cvaux,cxcore,highgui,ml 这 5 个模块。 CV:包含了基本的图像处理函数和高级的计算机视觉算法,包括图像处理,图像结构分析,运动描述和跟踪,模式识别和摄像机标定。 ML: 是机器学习库,包含一些基于统计的分类和聚类工具。 HighGUI:包含图像和视频的输入/输出函数。 CXCORE:包含了 OpenCV 的一些基本的数据结构和相关函数。 CVAUX :该模块则是一般用存放即将被淘汰的算法和函数,同时也包含一些新出现的实验性的函数和算法。 下面是我学习OPENCV 时具体例子: (1)利用 OPENCV 加载一幅图片: 刚开始学习是对OPENCV 不怎么懂,不知道其怎么使用。最后发现OPENCV 就是一个用做信号,图像等方面检测处理的C 语言库,只要把库添加到 VISUAL C 中便可以。然后我们用 VISUAL 做我们所需要的分析处理。 #include”highgui.h” Void main(){ IplImage *img=cvLoadImage(“D:\\02.jpg”); cvNamedWindow(“example1”,CV_WINDOW_AUTOSIZE); cvShowImage(“example1”,img); cvWaitkey(0); cvReleaseImage(&img); cvDestroyWindow(“example1”); } 其实这个例子很简单,就是调用显示一张图片了。 #include”highgui.h” 这句是包含头文件了,highgui.h 中包含图像处理,显示等方面的函数。 IplImage *img=cvLoadImage(“D:\\02.jpg”); 该功能是将显示的图像加载至内存,cvLoadImage(); 执行后返回的是一个指针,此指针指向一块描述该图片属性信息的结构体。IplImage为一个结构体,专门用在图像的处理。我们也可以看下 IplImage 的数据结构 其实他是这样定义的: Typedef struct_IplImage{ Int size; Int id; Int nChannels; Int alphaChannel; Int depth; …………. }IplImage; 从这里可以看见 IplImage 是结构体,并且怎么定义的。 cvNamedWindow(“example1”,CV_WINDOW_AUTOSIZE); 作用在屏幕上创建一个窗口,将被显示的图片包含在该窗口中,函数的第一个参数指定了该创建窗口的标题,第二个参数定义了窗口的属性,CV...