cv::Mat类型的定义初始化方法汇总

原文链接:https://blog.csdn.net/guduruyu/article/details/66973415
cv::Mat 是Opencv2和OpenCV3中基本的数据类型,在cv::Mat类中,关于cv::Mat的定义和初始化有多种不同的形式,下面对其进行总结。
一、无数据拷贝的cv::Mat的定义和初始化
1、默认形式
cv::Mat m;
2、指定类型和大小(行列)的二维数组
cv::Mat m(int cols,int rows,int type);
或者 cv::Mat m(Size(int cols,int rows),int type);
for example,
cv::Mat m(2,3,CV_64FC1);
cv::Mat m(Size(2,3),CV_64FC1);
注:Size(width, height), 宽
3、有初始化值的指定类型和大小(行列)的二维数组
cv::Mat m(int cols,int rows,int type,const Scalar& s);
4、使用预先存在数据定义的指定类型和大小(行列)的二维数组
cv::Mat m(int rows,int cols,int type,void
data,size_t step = AUTO_STEP)
5、指定大小(size)和类型的二维数组
cv::Mat m(cv::Size sz, int type,const Scalar& s);
6、使用预先存在的数据定义的制定大小(size)和类型的二维数组
cv::Mat m(cv::Size sz, int type,voiddata,size_t step=AUTO_STEP);
7、指定类型多维数组
cv::Mat m(int ndims, const int
sizes, int type);
8、有初始化值的指定类型多维数组
cv::Mat m(int ndims, const int* sizes, int type, const Scalar& s);
二、从其他cv::Mat进行数据拷贝的定义和初始化
1、拷贝构造形式
cv::Mat m(const cv::Mat& mat);
2、指定行列范围的拷贝构造
cv::Mat m(const cv::Mat& mat,const cv::Range& rows, const cv::Range& cols);
3、指定ROI的拷贝构造
cv::Mat m(const cv::Mat& mat, const cv::Rect& roi);
4、使用多维数组中指定范围内的数据的拷贝构造
cv::Mat(const cv::Mat& mat, const cv::Range* ranges);
三、使用Opencv中的模板进行定义和初始化
1、使用cv::Vec定义相同类型、大小为n的一维数组
cv::Mat m(const cv::Vec<T, n>& vec, bool=copyData=true);
2、使用cv::Matx定义相同类型、大小为m*n的二维数组
cv::Mat m(const cv::Matx<T,m,n>& vec, bool copyData=true);
3、使用STL vector定义相同的一维数组
cv::Mat (const std::vector& vec, bool copyData=true);
四、直接使用静态函数创建cv::Mat
1、使用zeros()函数定义指定大小和类型的cv::Mat(全为0)
cv::Mat m = cv::Mat::zeros(int rows,int cols,int type);
2、使用ones()函数定义指定大小和类型的cv::Mat(全为1)
cv::Mat m = cv::Mat::ones(int rows,int cols,int type);
3、使用eye()函数定义指定大小和类型的cv::Mat (恒等矩阵)
cv::Mat m = cv::Mat::eye(int rows,int cols,int type);

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值