博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

openCV C++ Mat类基本操作

Posted on 2011-08-24 17:29  yuanzfy  阅读(13535)  评论(0)    收藏  举报

openCV C++数据类型用了大量的STL通用编程技术。主要概述了一下Mat类的基本操作

Mat类型的成员变量和CvMat结构体还是比较相像的,前面cxcore基本数据结构已经介绍过了。主要介绍下Mat的基本操作。

Mat类型可以实现从CvMat IplImage CvMatND的转换。

Mat Mat::row(int i) const

Mat Mat::col(int j) const

Mat Mat::rowRange(int startrow,int endrow) const//注意:实际获得的矩阵是以0为索引开始的[startrow,endrow-1],这个概念类似于STL里的超尾。

Mat Mat::rowRange(const Range& r) const

Mat Mat::colRange(int startcol,int endcol) const

Mat Mat::colRange(const Range& r) const

Mat Mat::clone() const //创建一个全拷贝,包括数据

void Mat::copyTo(Mat& m) const //m.col(0).copyTo(n)此函数并不是简单的数据拷贝,而是相当于n=m.col(0)

void Mat::copyTo(Mat& m,const Mat& mask) const

void Mat::create(int rows,int cols,int type)

void Mat::create(Size size,int type)

void Mat::create(int ndims,const int * sizes,int type)

void Mat::resize(size_t sz) const //改变mat rows,数据区不受影响

template<typename T> void Mat::push_back(const T& elem)

temolate<typename T> void Mat::push_back(const Mat_<T>& elem) //m.push_back<int> (n);T表示Mat数据类型

template<typename T> void Mat::pop_back(size_t nelems=1) //nelems:the number of rows removed,T is not used

template<typename T> T& Mat::at(int i,int j) const //int i=m.at<int>(i,j);