2.0新版本对数据结构进行了大幅修改:
定义了DataType类
定义了Point_模板类,取代了之前版本的CvPoint、CvPoint2D32f
定义了Point3_模板类,取代了之前版本的CvPoint2D32f
定义了Size_模板类,取代了之前版本的CvSize和CvSize2D32f
定义了Rect_模板类,取代了之前版本的CvRect
RotatedRect模板类,
TermCriteria模板类,取代了之前的CvTermCriteria,这个类是作为迭代算法的终止条件的,这个类在参考手册里介绍的很简单,我查了些资料,这里介绍一下。该类变量需要3个参数,一个是类型,第二个参数为迭代的最大次数,最后一个是特定的阈值
Matx模板类。Matx模板类是对Mat类的一个拓展,从Matx类有派生出Vec类,又Vec类又派生出Scalar_类,取代了CvScalar
定义了Range类指定了一个序列的一个连续的子序列
定义了Ptr类用来对老版本的数据结构进行指针操作,更安全有效,可以防止内存的不正常使用。
最最重要的定义了Mat类来表示矩阵,取代了之前的CvMat和lplImage。Mat结构支持的操作有:
构造析构函数Mat和~Mat
对=、MatExpr、( )、CvMat、IplImage进行了运算符重载
row、col函数
rowRange、colRange
类似matlab的运算操作diag、t、inv、mul、cross、dot、zeros、one、eye
复制转换变形clone、copyTo、convertTo、assignTo、setTo、reshape、create、addref
其中copyTo函数有个妙用,不但可以复制Mat,还可以通过mask提取出感兴趣的部分
数据的操作release、resize、reserve、push_back、pop_back、locateROI、adjustROI
Mat的信息total、isContinuous、elemSize、elemSize1、type、depth、channes、step1、size、empty
定位ptr、at、begin、end
还做了几个扩展类Mat_、NAryMatlterator、SparseMat、SparseMat_取代了之前的CvSparseMat。这些类的操作运算与Mat大同小异,类声明参考core的具体头文件
当然,新版本对老版本的数据结构和函数依然支持。
新版本还在这些结构里支持dft、dct变换,我这里讲一下我的新发现PCA类、SVD类
PCA类有构造函数PCA,运算符重载(),project,backProject。SVD类有构造函数SVD,运算符重载(),compute,solveZ,backSubst
这里介绍几个我使用过的实用函数:
inRange函数可以检查Matsrc的内容是否在Matlower、Matupper之间,输出结果是一个uchar型矩阵,1表示在两者之间,否则为0,值得注意的是,Matlower,Matupper也可以用Scalar的格式
bitwise_xxx函数对两个矩阵进行位运算,结果保存在第三个矩阵当中
mixChannels函数可以实现矩阵的指定通道复制到新矩阵的指定通道
总之,新版本支持更多的数学运算,还支持一些画图操作
分享到:
相关推荐
对着官方的教程翻译的,有一点点自己的注释,但不一定全对,没把握的地方有英文原文。
对着OpenCV官方教程翻译的东西,初学者看看比较好。
Opencv学习笔记 辛苦收集希望和大家交流
爱分享、爱极客的编程怪兽--DaveBobo 博文 《【OpenCV学习笔记 005】 操作像素》 博文链接: http://blog.csdn.net/davebobo/article/details/52541612 OpenCV版本:2.4.9
Opencv2.4.9源码分析——HoughCircles.pdfOpencv2.4.9源码分析——HoughCircles.pdfOpencv2.4.9源码分析——HoughCircles.pdfOpencv2.4.9源码分析——HoughCircles.pdfOpencv2.4.9源码分析——HoughCircles....
这个一个很基础的opencv学习笔记,一些常会遇到的问题,在这里做了肤浅的介绍,还有很多问题没有提及,以后会陆续整理,并上传
OpenCV学习笔记(C++版OpenCV学习笔记,主要包括基础模块和DNN模块)带详细注释源码!!!
《OpenCV3编程入门》以当前最新版本的OpenCV最常用最核心的组件模块为索引,深入浅出地介绍了OpenCV2和OpenCV3中的强大功能、性能,以及新特性。书本配套的OpenCV2和OpenCV3双版本的示例代码包中,含有总计两百多个...
OpenCV学习笔记,(基础概念,归纳总结),相信你所选择的。
OpenCV学习笔记(四)运动物体跟踪的camshift算法
opencv-python使用GPU资源--虚拟环境安装与编译opencv源码(csdn)————程序
详细介绍SIFT算法,opencv的SIFT源码分析,以及应用实例
详细介绍SURF算法,以及opencv的源码分析,并给出应用实例。
计算机视觉这种技术可以将静止图像或视频数据转换为一种决策或新的表示。所有这样的转换都是为了完成某种特定的目的而进行的。 输入数据可能包含一些场景信息,例如“相机是搭载在一辆车上的”或者“雷达发现了一米...
在局部特征点检测快速发展的时候,人们对于特征的认识也越来越深入,近几年来许多学者提出了许许多多的特征检测算法及其改进算法,在众多的特征提取算法中,不乏涌现出佼佼者。 从最早期的Moravec,到Harris,再到...
OpenCV学习笔记入门版,真正的入门级别,自己写的
资源包括opencv学习中的一些典型示例程序——鼠标响应方面,均已经通过测试。从基础的编程语法到精讲的实例程序,程序的思想和资源来源于如下书籍: 1、OpenCV 2 计算机视觉编程手册_中文版(必学 ) 2、OpenCV 2 ...
爱分享、爱极客的编程怪兽--DaveBobo 博文 《【OpenCV学习笔记 007】使用直方图统计像素》 博文链接: http://blog.csdn.net/davebobo/article/details/52554968 OpenCV版本:2.4.9
本文档共分为三个部分,第一个部分介绍SVM的原理,我们全面介绍了5中常用的SVM算法:C-SVC、ν-SVC、...第二个部分我们给出了OpenCV中SVM程序的详细注解。第三个部分我们给出了一个基于OpenCV的SVM算法的简单应用实例。
学习Opencv(中文版)、(附书中案例源码) 第一章——概述 第二章——Opencv入门 第三章——初探Opencv 第四章——细说HighGUI 第五章——图像处理 第六章——图像变换 ...第十四章——Opencv的未来