OpenCV中Mat类的七种显式创建方法

引言

Mat类是OpenCV中最重要的几个类之一,与之对应的,它的创建的方式也是十分的多样,这里笔者为了以后自己使用方便,于是把这几种方法都列出来,希望能对你有帮助。

创建方式

1、使用Mat构造函数

比较常用的有:
Mat image(int rows,int cols,int type,const Scalar&s);
其中row和col是表示定义的image的行和列,type则是表示图像的类型,一般来说有cv_8uc3等等,这里的类型一般来说表达的含义如下:
在这里插入图片描述
最后一个参数则是image的颜色,通常遵循BGR原则。

2、c/c++构造函数

与第一种方法差不多,但是可以用来创建超过二维的矩阵。
首先定义一个数组,存储这矩阵每一维度的大小。
int sz[dims]={a,b,c};
Mat image(int dims,int *sz.int type,const Scalar&s);
这里的第一个参数是指这个矩阵的维度,第二个参数是一个指向包含各维度大小的数组的指针。后面两个参数与第一个方法中的含义相同

3、为已经存在的lpIImage创建信息头

IplImageimage=cvLoadImage(“1.jpg”);
Mat max(image);
这里的IplImage是在OpenCV2中的图像数据结构,后来OpenCV3出来后,mat逐步讲IPLImage取代,上面两句代码是将IplImage
的强制转换成Mat类型。

4、利用create函数

M.create(int rows,int cols,int types);
或者 M.create(int dims,int *sz,int types);
需要注意的是,create函数不能为矩阵设初值,只能在改变尺寸时出现为矩阵开辟内存。

5、利用与MATLAB相似的方法

利用zeros,eye,ones等函数,创建矩阵,这三种的创建方法类似,都是(int rows,int cols,int types)

6、创建小矩阵

这里的3,3表示的是矩阵的尺寸,后面的是具体数值

7、利用成员函数clone和copyto为一个已经存在的Mat对象创建信息头

Mat rowclone = c.row(1).clone();

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值