Mat的特点
来源:互联网 发布:网络嗅探攻击 编辑:程序博客网 时间:2024/05/23 19:13
转自:http://blog.sina.com.cn/s/blog_a98e39a20101158t.html
// 011Mat的特点.cpp : 定义控制台应用程序的入口点。
// OpenCV函数中输出图像的内存分配是自动完成的(如果不特别指定的话)。// 使用OpenCV的C++接口时不需要考虑内存释放问题。
// 赋值运算符和拷贝构造函数( ctor )只拷贝信息头。
//使用函数 clone() 或者 copyTo() 来拷贝一副图像的矩阵
#include "stdafx.h"
#include<opencv2\opencv.hpp>
using namespace std;
using namespace cv;
int _tmain(int argc, _TCHAR* argv[])
{
//1.以下不拷贝矩阵本身
Mat A,C; // 创建对象时,只创建信息头部分
A=imread("Lena.jpg"); //开辟内存
//2.以下代码中的所有Mat对象最终都指向同一个也是唯一一个数据矩阵。
//仅信息头不同,对一个操作会影响到所有对象
Mat B(A); // 使用拷贝构造函数
C=A; // 赋值运算符
//3.创建只引用部分数据的信息头D
Mat D (A, Rect(10, 10, 100, 100) ); //用矩形
Mat E = A(Range:all(), Range(1,3)); // 用行列标识边界
//4.以下函数拷贝矩阵本身,现在改变 F 或者 G 就不会影响 Mat 信息头所指向的矩阵
Mat F = A.clone();
Mat G;
A.copyTo(G);
//5. Mat 不但是一个图像容器类,它同时也是一个通用的矩阵类,所以可以用来创建和操作多维矩阵。
// 行数+列数+存储元素的数据类型+每个矩阵点的通道数,每个像素由三个元素组成三通道
// Scalar 是个short型vector。指定这个能够使用指定的定制化值来初始化矩阵
Mat M(2,2, CV_8UC3, Scalar(0,0,255));
cout << "M = " << endl << " " << M << endl << endl;
//6.传统的lplImage格式也可直接转换为Mat格式
IplImage* img = cvLoadImage("Lena.jpg", 1);
Mat mtx(img); // convert IplImage* -> Mat
//Create() function: 函数
//create创建方法不能为矩阵设初值,它只是在改变尺寸时重新为矩阵数据开辟内存。
M.create(4,4, CV_8UC(2)); //2通道
cout << "M = "<< endl << " " << M << endl << endl;
return 0;
}
0 0
- Mat的特点
- opencv2-mat的特点
- Android MAT系列----------MAT的安装
- Mat的访问方式
- 有关Mat的函数
- MAT的安装
- matlab的mat格式
- cv::Mat的介绍
- MAT的使用
- Mat矩阵的初始化
- MAT 工具的安装
- MAT 工具的使用
- MAT的加载
- OpenCV Mat的实现
- Mat矩阵的初始化
- Mat的初始化
- Opencv的Mat型
- MAT的使用
- javascript编程模式
- DFD图
- django admin
- linux启动流程分析-内核解压缩过程
- 四种聚类方法之比较
- Mat的特点
- 题目1018:统计同成绩学生人数
- wubi完美安装ubuntu14.10kylin
- Xmanager 连接 SUSE Linux 11
- 构件图(Component Diagram)
- 如何让EIGRP支持64bit的Metric
- 第12周项目1.3.1
- 不是所有人都适合创业,打工狗不能“只看见贼吃肉,看不见贼挨揍”
- 为什么32位系统支持的最大内存为4G?