cv mat 灰度值和_OpenCV2:总结篇 cv::Mat 类

一.简介

在OpenCV中,可以用C++语法的Mat类来表示一张图像

也可以用C语法的lpllmage或CvMat结构体来表示一张图像

1.单通道像素值

cv mat 灰度值和_OpenCV2:总结篇 cv::Mat 类_第1张图片

2.多通道像素值

OpenCV默认颜色顺序为BGR

cv mat 灰度值和_OpenCV2:总结篇 cv::Mat 类_第2张图片

二.成员公有函数

cv::Mat类能够自动管理内存,由矩阵头和指向存储所有像素值的矩阵的指针构成

cv::Mat类表示一个n维的密集数值单通道或多通道数组,它可用于存储实数或复数值的向量和矩阵 灰度和彩色图像  体素  向量场  点云  张量  直方图等

1.常用的成员函数

Mat::Mat()

Mat::~Mat()

Mat::row                 // 创建一个具有指定了矩阵头中行数的参数的矩阵

Mat::col                  // 创建一个具有指定了矩阵头中列数的参数的矩阵

Mat::rowRange      // 为指定的行span创建一个新的矩阵头,可取指定行区间元素

Mat::colRange       // 为指定的列span创建一个心得矩阵头,可取指定列区间元素

Mat::clone             // 创建一个数据及其基础数据的完整副本

Mat::copyTo          //

Mat::convertTo

Mat::zeros

Mat::ones

Mat::channels

Mat::empty

Mat::at

Mat::isContinuous()    //判断图像存储是否连续

2.不常用的成员函数

Mat::addref()

Mat::adjustROI()

Mat::assignTo()

Mat::at()

Mat::begin()

Mat::channels()

Mat::checkVertor()

Mat::clone()

Mat::col()

Mat::colRange()

Mat::convertTo()

Mat::copySize()

Mat::copyTo()

Mat::create()

Mat::cross()

Mat::deallocate()

Mat::depth()

Mat::diag()

Mat::dot()

Mat::elemSize()

Mat::elemSize1()

Mat::empty()

Mat::end()

Mat::eye()

Mat::inv()

Mat::isContinuous()

Mat::isSubmatrix()

Mat::locateROI()

Mat::mul()

Mat::ones()

Mat::pop_back()

Mat::ptr()

Mat::push_back()

Mat::push_back_()

Mat::release()

Mat::reserve()

Mat::reshape()

Mat::resize()

Mat::row()

Mat::rowRange()

Mat::setTo()

Mat::step1()

Mat::t()

Mat::total()

Mat::type()

Mat::zeros()

3.成员数据

4.构造函数

Mat()                                                                                                                                 // 默认构造函数

Mat(int row,int cols,int type)

Mat(Size size,int type)

Mat(int rows,int cols,int type,const Scalar& s)

Mat(Size size,int type,const Scalar& s)

Mat(int ndims,const int* sizes,int type)

Mat(int ndims,const int* sizes,int type,const Scalar& s)

Mat(const

Mat&

m)

// 拷贝构造函数

Mat(int rows,int cols,int type,void* data,size_t step=AUTO_STEP)

Mat(Size size,int type,void* data,size_t step=AUTO_SETP)

Mat(int ndims,const int* sizes,int type,void* data,const size_t* steps=0)

Mat(const Mat& m,const Range& rowRange,const Range& colRange=Range::all());

Mat(const Mat& m,const Rect& roi);

Mat(const Mat& m,const Range* ranges);

Mat(const CvMat* m,bool copyData=false);

Mat(const CvMatND* m,bool copyData=false);

Mat(const IplImage* img,bool copyData=false);

templateexplicit Mat(const vector<_tp>& vec,bool copyData=false);

templateexplicit Mat(const Vec<_tp>& vec,bool copyData=true);

template

三.cv::Mat 类型转换

1.cv::Mat 类转换为 IplImage 类型和 CvMat 类型

cv::Mat img;

CvMat cvMatImg=img;

IplImage iplImage = img;

2.IpIImage 类型和 CvMat 类型转换为 cv::Mat 类型

IplImage* iplImg = cvLoadImage("a.jpg");

cv::Mat img(iplImg,true);

你可能感兴趣的:(cv,mat,灰度值和)