大纲
- Mat类
- Point类
- Scalar类
- Size类
- Rect类
一、Mat类
Mat是Opencv中的通用矩阵类型,我们通常将它作为图片的容器,它包含了矩阵头(包含矩阵尺寸,储存方法,储存地址等信息)和指向储存所有点值的指针。其创建方法如下:
1.使用Mat()构造函数
对于二维多通道的Mat类型,我们通常可以用如下形式来构建:
Mat test(2,3,CV_8UC3,Scalar(0,22,23));
前两个参数给出了矩阵的行列信息,第三个参数给出了矩阵的通道数目以及位深,最后一个参数则是给元素赋初值(可以暂时忽略,后续赋值)
2.使用create()成员函数
利用Mat类的成员函数来进行Mat类的初始化,使用方法如下:
Mat test;
test.create(4,4,CV_BUC2);
可以看到这种初始化方法和前一种看起来差别不大,但要注意使用这种方式的话无法对Mat赋初值,默认所有值为205,所以这种方法一般适用于后续改变矩阵尺寸时开辟内存空间
3.使用函数初始化特定矩阵
这种方法和Matlab中创建数组的方法一致,可以用于建立全零、全一、对角阵,使用方法如下:
Mat E=Mat::eye(4,4,CV_64F);
Mat O=Mat::ones(2,2,CV_32F);
Mat Z=Mat::zeros(3,3,CV_8UC1);
4.小矩阵直接赋值
当所需矩阵较小时,可以通过”<<"运算符对其直接初始化赋值,使用方法如下:
Mat C=(Mat_<double>(3,3)<<0,1,2,3,4,5,6,7,8);
5.通过已有矩阵赋值
通过clone()

本文深入探讨了OpenCV中关键的Mat、Point、Scalar、Size和Rect类的使用方法及应用场景,涵盖了矩阵创建、访问、坐标、尺寸和矩形区域的处理技巧。
最低0.47元/天 解锁文章
1812

被折叠的 条评论
为什么被折叠?



