OpenCV 简介(cxcore, ml)

本文介绍了OpenCV库的主要组件,包括CXCORE的数据结构(如CvPoint、CvMat)、CV的计算机视觉函数、ML的机器学习算法,以及highgui和CVCAM。OpenCV的最新版本为1.1pre1,但在某些系统(如debian)中可能较旧,需要手动编译。此外,文章还详细讲解了CvMat和IplImage的使用,以及如何进行矩阵操作、图像处理和机器学习任务。OpenCV还提供了基本的RTTI实现、XML存储以及错误处理机制。
摘要由CSDN通过智能技术生成

这里简单的记录一些 OpenCV 这个库的使用。这是用 C/C++ 写的一个和 computer vision 相关的库,一共含有 5 个组件:

  • CXCORE 是 OpenCV 里面使用的常用数据结构,以及处理这些数据结构的函数。
  • CV 是常用的 computer vision 相关的函数,比如计算 histogram、目标检测、跟踪的程序。
  • ML 是常用的 machine learning 相关的函数,如做分类的 naive Bayes、SVM 等等。
  • highgui 是一些比较高层函数,主要是做用户界面。
  • 另外还有一个从摄像头获取数据的 CVCAM 库,但是 1.1 里面似乎并进 highgui 了。

最新的是 1.1pre1,但是 debian 里面还是两年前的 1.0 版本的,这就需要自己编译一个了,后面有空学着 debian 的方式做个 deb 包好了。

OpenCV 的文档也算是还不错的了,除了函数的解释,部分功能还有例程、例子可以参考,这对对函数功能不是很清楚的人是非常有用的,比如我 :-D 这里不打算详细的记录 OpenCV 的每个功能,感兴趣的看文档吧。

 

先从 CXCORE 的基本结构讲起,OpenCV 里面提供了:

点 CvPoint(分 int 和 float 类型的,一般 int 的都没有后缀,float 会写 32f,double 是 64f;有 2D 和 3D 的版本),

大小 CvSize、

矩形 CvRect(用左下角的顶点坐标和宽、高表示)、

向量 CvScalar(4 个 double 那么大)。

更重要的就是存储矩阵用的 CvMat、CvMatND(多维矩阵,一般图片就是几个 channel,每个 channel 是一个 CvMat),稀疏矩阵 CvSparseMat。注意这里面有一个比较重要的成员,就是 int* refcount,这是允许多个“矩阵”(其实是 CvMatHeader 或者 CvMatNDHeader)对同一个矩阵进行引用,这时释放的时候涉及到矩阵元素的属主(ownership),只有当 refcount 为 0 的时候,释放的时候才会释放这些元素。数据的入口都是匿名 union,data 可以当作指针用。

图片一般存放在一个 IplImage 结构里面,这个结构里面有很多参数决定图片数据的类型,比如是 UINT8 还是 float 等。创建这些数据最基本的函数就是 cvCreate*,这是产生一个完整的结构,并

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值