OpenCV学习笔记(三)——Mat,图像的新容器
来源:互联网 发布:mpp打开软件 编辑:程序博客网 时间:2024/06/04 22:59
自从版本2.0,OpenCV采用了新的数据结构,用Mat类结构取代了之前用extended C写的cvMat和lplImage,更加好用啦,最大的好处就是更加方便的进行内存管理,对写更大的程序是很好的消息。
需要注意的几点:1. Mat的拷贝只是复制了Mat的信息头,数据的指针也指向了被拷贝的数据地址,而没有真正新建一块内存来存放新的矩阵内容。这样带来的一个问题就是对其中一个Mat的数据操作就会对其他指向同一块数据的Mat产生灾难性的影响。
2.建立多维数组的格式是这样的- int sz[3] = {2, 2, 2};
- Mat L(3, sz, CV_8UC(1), Scalar::all(0));
int sz[3] = {2, 2, 2};Mat L(3, sz, CV_8UC(1), Scalar::all(0));
3.传统的lplImage格式也可直接转换为Mat格式
- IplImage* img = cvLoadImage("greatwave.png", 1);
- Mat mtx(img); // convert IplImage* -> Mat
IplImage* img = cvLoadImage("greatwave.png", 1);Mat mtx(img); // convert IplImage* -> Mat
如果想将新版本的Mat格式转换为老版本,则需要如下调用:
- Mat I;
- IplImage* pI = &I.operator IplImage();
- CvMat* mI = &I.operator CvMat();
Mat I;IplImage* pI = &I.operator IplImage();CvMat* mI = &I.operator CvMat();
不过更安全的调用格式为:
- Ptr<IplImage> piI = &I.operator IplImage();
Ptr<IplImage> piI = &I.operator IplImage();
4.Mat结构更加友好,很多操作更接近matlab的风格5.也有Point2f,Point3f,vector等数据结构可以使用
6.RNG类可以产生随机数
7.实现颜色通道的分离使用函数split
- OpenCV学习笔记(三)——Mat,图像的新容器
- OpenCV学习笔记(三)——Mat,图像的新容器
- OpenCV学习笔记(三)——Mat,图像的新容器
- OpenCV学习笔记(三)——Mat,图像的新容器
- OpenCV学习笔记(三)——Mat,图像的新容器
- OpenCV学习笔记(三)——Mat,图像的新容器
- OpenCV学习笔记(三)——Mat,图像的新容器
- OpenCV学习笔记(三)——Mat,图像的新容器
- OpenCV学习笔记——Mat,图像的新容器
- OpenCV学习笔记——Mat,图像的新容器
- OpenCV学习笔记(二)——Mat,图像的新容器
- opencv学习笔记之Mat,图像的新容器
- OpenCV Mat —— 基本的图像容器
- opencv Mat - 图像的容器
- Mat,图像的新容器
- 【Opencv学习(三)】获取Mat图像的ROI区域
- 2.1 Mat—基础图像容器(OpenCV教程)
- 2.1 Mat—基础图像容器(OpenCV教程)
- AO连接sde的出现no ntvauth in java.library.path错误
- Verilog-HDL 的基本概念
- 程序员成熟的标志
- mount iso image in linux
- 领先的 Web 技术教程
- OpenCV学习笔记(三)——Mat,图像的新容器
- LTE Initial Attach 的过程以及相关消息的具体解析 (四)
- [python]测试局域网中电脑是否连通
- Google开发者学院(中文版)上线
- C++中虚析构函数的作用
- C:\WINDOWS\Installer文件夹的安全清理
- Tomcat的目录和server.xml配置简介
- win7下安装hadoop
- 毕业后班级qq群这样发展