Opencv学习笔记(五):关于OpenCV2中的Mat图像容器
来源:互联网 发布:数据分析职业发展 编辑:程序博客网 时间:2024/05/16 04:40
关于OpenCV2中的Mat图像容器
Last Edit 2013/12/17
看过OpenCV2写的代码,才知道用OpenCV1写代码是多么麻烦的事~~~
1、为什么要用Mat容器?
还记得在OpenCV1中怎么去申请一个创建一个图像空间么,IPlimage*指针么,程序最后还要记得释放内存空间,一下小心就内在泄漏了。而C++接口中的Mat能够自动申请和释放空间。Mat的不同的对象可以共同使用同一个图像数据,也就是说每个Mat对象的header不同,但它们共对指向同一个data matrix,使用计数机制来管理。
2 、Mat的使用方式
1) Mat A,C;
Mat B(A); C=A,这样当A或者B,C改变时,A,B,C的数据都会同时改变。
为此,当我们不想要这样的结果产生时,我们可以使用拷贝的方法,来使得数据不同时发生改变。
Mat F=A.clone();
Mat G;
A.copyTo(G);
2)还可以用一个矩阵的部分行,列数据去构造一个新的矩阵
Mat D(A,rect(10,10,100,100));
Mat E=A(range:all(),range(1,3));
Mat E=A(range(1,2),range(1,3));
3) Mat的构造函数
Mat M(2,2,CV_8UC3,Scalar(0,0,123)); //生成一个2*2的,3通道的矩阵,值为(0,0,123)
cout<<"M="<<M<<endl; //可以直接使用<<来输出其中的值
4) Mat使用create()函数
Mat M;
M.create(4,4,CV_8UC3);
3、Mat构造的几个特殊矩阵
Mat M=Mat::ones(4,4,CV_32F);
Mat M=Mat::eye(4,4,CV_32F);
Mat M=Mat::zeros(4,4,CV_32F);
4、初始化一个矩阵
Mat M=(Mat_<double>(3,3)<<1,2,3,4,5,6,7,8,9)
Mat_是一个矩阵模板。
0 0
- Opencv学习笔记(五):关于OpenCV2中的Mat图像容器
- opencv2学习笔记(一)-Mat - 基本图像容器
- OpenCV2学习笔记一:基本图像容器Mat
- opencv 2.x学习笔记(五)关于Mat
- opencv学习笔记之Mat,图像的新容器
- OpenCV学习笔记——Mat,图像的新容器
- OpenCV学习笔记——Mat,图像的新容器
- OpenCV学习笔记(五):Mat结构
- OpenCv2 学习笔记(2) Mat图像显示
- OpenCV学习笔记(三)——Mat,图像的新容器
- OpenCV学习笔记(三)——Mat,图像的新容器
- OpenCV学习笔记(三)——Mat,图像的新容器
- OpenCV学习笔记(三)——Mat,图像的新容器
- OpenCV学习笔记(三)——Mat,图像的新容器
- OpenCV学习笔记(三)——Mat,图像的新容器
- OpenCV学习笔记(三)——Mat,图像的新容器
- OpenCV学习笔记(二)——Mat,图像的新容器
- OpenCV学习笔记(三)——Mat,图像的新容器
- C语言程序员必读的5本书
- Shark Machine Learning Library 安装配置运行
- .net webserver entity framework
- LeetCode | Construct Binary Tree from Inorder and Postorder Traversal
- 字符串最小周期问题
- Opencv学习笔记(五):关于OpenCV2中的Mat图像容器
- Qt中信号和槽函数的3种映射方法
- Line: 209 - com/opensymphony/xwork2/spring/SpringObjectFactory.java:209:-1
- Python使用easy install安装BeautifulSoup
- java面试常问的问题,欢迎补充
- Maven 仓库含义
- ocp学习随记(九)
- 基于C#弹幕类射击游戏的实现——(十)整合
- Debug Error: HEAP CORRUPTION DELETE