Opencv3编程入门学习笔记(二)之显式创建Mat对象
来源:互联网 发布:福州趣读网络 编辑:程序博客网 时间:2024/04/30 03:12
以下总结是基于《Opencv3编程入门》一书4.1节总结的内容进行验证与总结,验证环境均为Windows10 ---VS2013 C++环境,验证Opencv3.0提供的开发包。
1. 方法壹---Mat()构造函数
Mat M(2,2,CV_8UC3,Scalar(0,0,255));
这是最常用的方法,以上示例构造了一个二位多通道图像。
2. 方法贰---在C\C++中通过构造函数进行初始化
int sz[3] = {2,2,2};
Mat L(3,sz,CV_8UC3,Scalar::all(0));
这个方法笔者在VS2013 C++编译环境中验证没有通过。
3. 方法叁---为已存在的IplImage指针创建信息头
IplImage* img = cvLoadImage("1.jpg",1);
Mat mtx(img);
这个方法笔者在VS2013 C++编译环境中验证没有通过,至于IplImage指针如何转换成Mat还有待探索。
4. 方法肆---使用create()函数
Mat mat();
mat.create(4,4,CV_8UC(2));
这个方法验证可以正常编译,但输出结果与书中所对应结果不同。
5. 方法伍---采用Matlab方式的初始化
a. Mat E = Mat::eye(4,4,CV_64F);
创建了一个4*4的单位矩阵
b. Mat O = Mat::ones(2,2,CV_32F);
创建了一个2*2的全1矩阵
c. Mat Z = Mat::zeros(3,3,CV_8UC1);
创建了一个3*3的全0矩阵
小结:以上验证均可通过。
6. 方法陆---对小矩阵使用逗号分割式初始化函数
Mat C = (Mat_<double>(3,3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
经验证可以正常使用。
7. 方法柒---为已存在的对象创建信息头
Mat C = (Mat_<double>(3,3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
Mat RowClone = C.row(1).clone();
RowClone对C矩阵中的第二行进行了克隆,注意row()中的参数是从0开始。
注意:
a. 以上程序均在书中有详细注解;
b. 在控制台输出矩阵统一都可以使用 cout << "C=" <<endl << " " << C << endl << endl;
- Opencv3编程入门学习笔记(二)之显式创建Mat对象
- opencv3编程入门学习笔记1-----基本图像容器Mat
- Opencv3编程入门学习笔记(一)
- OpenCV3编程入门学习笔记
- 《OpenCV3编程入门》学习笔记二:快速上手OpenCV
- 《OpenCV3编程入门》学习笔记之官方例程学习
- 《OpenCV3编程入门》学习笔记之书本资源汇总
- 《OpenCV3编程入门》学习笔记番外篇之图像形态学处理
- 《OpenCV3编程入门》学习笔记番外篇之OpenCV-Python使用
- 《OpenCV3编程入门》读书笔记(1) - 基础图像容器Mat
- opencv3学习之Mat类
- Opencv3编程入门学习笔记(五)之通道分离(split)与合并(merge)
- Opencv3编程入门学习笔记(三)之访问图像像素的三种方法
- Opencv3编程入门学习笔记(四)之split通道分离Debug过程中0xC0000005内存访问冲突问题
- 《OpenCV3编程入门》学习笔记番外篇之目标跟踪object tracking
- 《OpenCV3编程入门》学习笔记一:邂逅OpenCV
- 《OpenCV3编程入门》学习笔记三:HighGUI图形用户界面
- 《OpenCV3编程入门》学习笔记四:初探core组件
- Git命令一览
- Mybatis框架
- 计算机基础知识——操作系统(三):并发控制
- 康拓展开和逆康拓展开
- 如何让北京小车摇号中签更容易?
- Opencv3编程入门学习笔记(二)之显式创建Mat对象
- 红蓝牌 ssl 2627
- LeetCode:414. Third Maximum Number
- javaSE_07Java中类和对象-封装特性
- 21天精通java基础之Day19调用指定的属性方法构造器
- Nao机器人B-human安装1
- Privacy Policy
- 非线性方程求根迭代法
- Driver:硬件原理补充(2)