【OpenCV】OpenCV实战从入门到精通之 -- 显示创建Mat对象的七种方法
目录
1、使用Mat()构造函数
2、C\C++中构造函数进行初始化
3、为已经存在的IplImage指针创建信息头
4、利用Create()函数
5、Matlab方式的初始化
6、对小矩阵使用逗号分隔式初始化函数
7、为已经存在的对象穿件新信息头
Mat不但是一个非常有用的图像容器类,同时也是一个通用聚矩阵类。创建一个Mat对象有很多种方法,列举如下:
1、使用Mat()构造函数
师范代码如下:
# include <opencv2/opencv.hpp>
# include <iostream>using namespace cv;
using namespace std;void main(){Mat M(2, 2, CV_8UC3, Scalar(0, 0, 255)); //Mat()构造函数创建mat类cout << "M= " << " " << M << endl;
}
上述代码运行结果为:
对于二维多通道图像,需要制定的参数:(1)尺寸,即行数和列数,上述代码是:(2,2);(2)存储元素的数据类型以及每个矩阵点的通道数,上述代码是:CV_8UC3(表示使用8位的unsigned char类型,每个像素由三个元素组成三通道);(3)Scalar是个short型向量,可以用来初始化矩阵来表示颜色。
2、C\C++中构造函数进行初始化
代码如下:
int sz[3] = { 2, 2, 2 };Mat L(3, sz, CV_8UC, Scalar::all(0));
上述例子创建了一个超过两维的矩阵,需要的参数:(1)指定维数;(2)传递一个指向一个数组的指针,这里是:sz,数组元素代表每个维度的尺寸。(3)后续就是指定类型和初始值,和方法1相同。
3、为已经存在的IplImage指针创建信息头
代码如下:
IplImage* img = cvLoadImage("1.jpg", 1);Mat mtx(img); //转换IplImage*->Mat
上述代码是将IplImage 转换为Mat,在OpenCV3.0版本是不适用的,在3.0版本应该是:
IplImage* img = cvLoadImage("1.jpg", 1);Mat mat = cvarrToMat(img); //转换IplImage*->Mat
4、利用Create()函数
利用Mat类中的Create()成员ha你数进行Mat类的初始化操作,此种方法不能为矩阵设置初始值,只是在改变尺寸时重新为矩阵数据开辟内存而已。
代码如下:
M.create(4, 4, CV_8UC(2));
cout << "M= " << " " << M << endl<<endl;
运行结果为:
5、Matlab方式的初始化
Matlab形式的初始化方式:zeros()、ones()、eyes()。
代码如下:
Mat E = Mat::eye(4, 4, CV_64F);
cout << "E= " << endl << " " << E << endl << endl;Mat X = Mat::ones(2, 2, CV_32F);
cout << "X= " << endl << " " << X << endl << endl;Mat Z = Mat::zeros(3, 3, CV_8UC1);
cout << "Z= " << endl << " " << Z << endl << endl;
运行结果为:
6、对小矩阵使用逗号分隔式初始化函数
代码如下:
Mat C = (Mat_<double>(3, 3)<<0,-1,0,-1,5,-1,0,-1,0);
cout << "C= " << endl << " " << C << endl << endl;
7、为已经存在的对象穿件新信息头
使用clone()或者copyTo()为一个已经存在的Mat对象创建一个新的信息头,代码如下:
Mat RowClone = C.row(1).clone();
cout << "RowClone= " << endl << " " << RowClone << endl << endl;
运行结果如下:
【OpenCV】OpenCV实战从入门到精通之 -- 显示创建Mat对象的七种方法相关推荐
- Opencv显示创建Mat对象的七种方式
方式一: [cpp] view plain copy #include<iostream> #include<opencv2/opencv.hpp> using namespa ...
- 【Python】Python实战从入门到精通之二 -- 教你使用Python中列表操作
本文是Python实战–从入门到精通系列的第二篇文章: [Python]Python实战从入门到精通之一 – 教你深入理解Python中的变量和数据类型 Python实战从入门到精通之二 – 教你使用 ...
- OpenCV 笔记(06)— Mat 结构、像素值存储方法、创建 Mat 对象各种方法、Mat 对象的运算
数字图像中的每个点都称为像素(对于图像元素),并且每个像素可以存储一个或多个值,这取决于它是否是仅存储一个值的黑白图像(也称为二进制图像,比如只存储0或1),还是存储两个值的灰度图像,或者是存储三个值 ...
- Nginx/Openresty日志时间显示到毫秒级的三种方法(不改源码)
Nginx/Openresty日志时间显示到毫秒级的三种方法(不改源码) 方法一 :set (只能在server节点内) 方法二: set_by_lua (只能在server节点内) 方法三: map ...
- Web 之 html 如何显示隐藏Html元素的两种方法简单整理
Web 之 html 如何显示隐藏Html元素的两种方法简单整理 目录 Web 之 html 如何显示隐藏Html元素的两种方法简单整理 一.简单介绍 二.实现原理 三.注意事项 四.代码示例 一.简 ...
- Unity UGUI 效果 之 UI 元素 多边形UI (例如雷达图,圆形,不规则多边形 UI等)显示 的简单实现的几种方法整理
Unity UGUI 效果 之 UI 元素 多边形UI (例如雷达图,圆形,不规则多边形 UI等)显示 的简单实现的几种方法整理 目录 Unity UGUI 效果 之 UI 元素 多边形UI (例如雷 ...
- 【OpenCV】OpenCV实战从入门到精通之 -- 输入输出XML和YAML文件详解
1.XML和YAML文件简介 XML文件是一种元标记语言,即开发者可以根据自身需要定义自己的标记.它是一种语义和结构语言,描述了文档的语义和结构. YAML以数据为中心,是一个可读性高,用来表达资料序 ...
- 【OpenCV】OpenCV实战从入门到精通之 -- 访问图像中的像素
目录 1.图像在内存之中的存储方式 2.颜色空间缩减 3.LUT函数:Look up table操作 4.计时函数 5.访问图像中像素的三类方法 5.1.指针访问像素 5.2.迭代器操作像素 5.3. ...
- 【OpenCV】OpenCV实战从入门到精通之 -- 指针访问、迭代器iterator、动态地址计算配合at元素
目录 1.指针访问像素 2.迭代器操作像素 3.动态地址计算 OpenCV中,有三种方式访问图像像素: 指针访问:C操作符[]: 迭代器iterator 动态地址计算 上述方法在访问速度上略有差异.d ...
最新文章
- java 函数式编程_函数式编程杂谈
- groovy怎样从sql语句中截取表名_SQL常用的基础查询语句
- 用户第一次登录后要求修改密码
- 《Java程序员职场全攻略:从小工到专家》连载十二:大家都是个什么身价
- SpringBoot微服务 b2b2c 多用户商城系统(八)springboot整合mongodb
- 1470. Shuffle the Array
- EF架构~LinqToEntity里实现left join的一对一与一对多
- 建筑建模学习笔记2——3DMax房屋框架建模
- 蓝桥杯 ALGO-74 算法训练 连接字符串
- matlab repmat_三行MATLAB实现动漫风格照片
- Vue中用到jeDate日期控件,Vue对象中的值滞后,总是滞后当前选择的值
- Python-实现(整蛊)消息批量发送
- gyp ERR! stack Error: EACCES: permission denied,解决
- P1_M4_L5 Lateral Dynamic Bicycle Model(自行车模型的横向动力学建模)
- 海康威视 + 搭配内网穿透,搭建远程视频监控教程
- Matlab常用图像处理命令108例(二)
- 名帖301 刘墉 行书《自作诗卷》
- 达人评测 酷睿i7 1195g7和i7 1260p对比选哪个
- 解决 SharePoint 2013 管理中心登录问题。
- ug908 Programming and Debugging
热门文章
- 管壁式换热器cad图纸_民勤图纸管板加工加工
- 客服端与服务器之间传输信息,QT实现客服端和服务器之间消息和文件交互
- php实现凯撒密码加密算法,Python实现的凯撒密码算法示例
- client netty 主动发数据_Netty服务器无限循环给客户端发送数据
- springboot整合flowable(mysql)第一节
- python中event的用法_Python编程之event对象的用法实例分析
- mysql查询表的列名主键_Oracle中查看所有的表,用户表,列名,主键,外键
- 小学音乐教学和计算机的融合,小学学科教学与计算机深度融合赛课心得体会(共4篇)...
- 微型计算机中 i o接口位于6,北语15秋计算机基础作业1
- python装饰器系列(五)