方式一:

[cpp] view plain copy

  1. #include<iostream>
  2. #include<opencv2/opencv.hpp>
  3. using namespace std;
  4. using namespace cv;
  5. int main()
  6. {
  7. //创建一个2*2 类型为8位的uchar类型三通道的 颜色为黄色
  8. Mat img(2, 2, CV_8UC3, Scalar(0, 255, 255));
  9. cout << "矩阵元素" << endl << img << endl;
  10. /*Mat srcImage = imread("G:\\group.jpg");
  11. cout << "图片矩阵" << endl << srcImage << endl;*/
  12. return 0;
  13. }

方式二:

创建三维的矩阵

[cpp] view plain copy

  1. //创建一个超过二维的矩阵
  2. #include<iostream>
  3. #include<opencv2/opencv.hpp>
  4. using namespace std;
  5. using namespace cv;
  6. int main()
  7. {
  8. int sz[3] = { 2, 2, 2 };
  9. //3维的  为2*2*2的   元素全部为0
  10. Mat array2(3, sz, CV_8UC1, Scalar(0));
  11. //因为是三维的,所以不能用DOS界面显示
  12. return 0;
  13. }

方式三:

为已经存在的IplImage指针创建一个信息头

[cpp] view plain copy

  1. //为已经存在的IplImage指针创建一个信息头
  2. #include<opencv2/opencv.hpp>
  3. using namespace cv;
  4. int main()
  5. {
  6. IplImage *img = cvLoadImage("G:\\group.jpg", 1);
  7. Mat srcImage(img);
  8. imshow("【测试代码】", srcImage);
  9. waitKey(0);
  10. return 0;
  11. }

方式四:

用Create函数实现对Mat的初始化

[cpp] view plain copy

  1. //用Create函数实现对Mat的初始化
  2. #include<opencv2/opencv.hpp>
  3. #include<iostream>
  4. using namespace cv;
  5. using namespace std;
  6. int main()
  7. {
  8. Mat img;
  9. img.create(4, 4, CV_8UC(2));
  10. cout << "M = " << endl << img << endl;
  11. return 0;
  12. }

方式五:

采用Matlab的方式初始化

[cpp] view plain copy

  1. //采用Matlab的方式初始化
  2. #include<iostream>
  3. #include<opencv2/opencv.hpp>
  4. using namespace std;
  5. using namespace cv;
  6. int main()
  7. {
  8. Mat array1 = Mat::eye(4, 4, CV_64F);
  9. Mat array2 = Mat::ones(4, 4, CV_32F);
  10. Mat array3 = Mat::zeros(4, 4, CV_8UC1);
  11. cout << "对角矩阵" << endl << array1 << endl;
  12. cout << "满1矩阵" << endl << array2 << endl;
  13. cout << "全0矩阵" << endl << array3 << endl;
  14. return 0;
  15. }

方式六:

对小矩阵使用逗号分隔式初始化函数

[cpp] view plain copy

  1. //对小矩阵使用逗号分隔式初始化函数
  2. #include<iostream>
  3. #include<opencv2/opencv.hpp>
  4. using namespace std;
  5. using namespace cv;
  6. int main()
  7. {
  8. Mat array = (Mat_<double>(3, 3) << 0, -1, 5, -1, 5, -1, 0, -1, 0);
  9. cout << "【运行结果】" << endl << array << endl;
  10. return 0;
  11. }

方式七:

为已存在的对象创建新信息头

[cpp] view plain copy

  1. //为已存在的对象创建新信息头
  2. #include<iostream>
  3. #include<opencv2/opencv.hpp>
  4. using namespace std;
  5. using namespace cv;
  6. int main()
  7. {
  8. Mat srcImage(3, 3, CV_8UC3, Scalar(0, 0, 255));
  9. Mat copyImage;
  10. srcImage.copyTo(copyImage);
  11. Mat newImage = srcImage.row(1).clone();
  12. cout << "运行结果" << endl << newImage << endl;
  13. return 0;
  14. }

Opencv显示创建Mat对象的七种方式相关推荐

  1. 【OpenCV】OpenCV实战从入门到精通之 -- 显示创建Mat对象的七种方法

    目录 1.使用Mat()构造函数 2.C\C++中构造函数进行初始化 3.为已经存在的IplImage指针创建信息头 4.利用Create()函数 5.Matlab方式的初始化 6.对小矩阵使用逗号分 ...

  2. java class 生成对象_Java反射机制(创建Class对象的三种方式)

    1:SUN提供的反射机制的类: java.lang.Class java.lang.reflect.Constructor java.lang.reflect.Field java.lang.refl ...

  3. JDBC 创建连接对象的三种方式 、 properties文件的建立、编辑和信息获取

    创建连接对象的三种方式 //第一种方式Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/m ...

  4. 创建线程池的七种方式

    在 Java 语言中,并发编程往往都是通过床架线程池来实现的,而线程池的创建方式也有很多种,每种线程池的创建方式都对应了不同的使用场景.总结来说线程池的创建可以分为两大类: 通过 Executors ...

  5. JavaScript 创建类/对象的几种方式

    在JS中,创建对象(Create Object)并不完全是我们时常说的创建类对象,JS中的对象强调的是一种复合类型,JS中创建对象及对对象的访问是极其灵活的. JS对象是一种复合类型,它允许你通过变量 ...

  6. spring创建复杂对象的三种方式

    什么是复杂对象? 复杂对象是指我们通过new创建不了的对象,此对象的创建还需要别的条件,如jdbc的Connection.mybatis的sqlSesscionFactory. 一.factoryBe ...

  7. IOC容器创建bean对象的4种方式

    前言: Spring容器创建bean对象,一般通过反射机制查找bean元素的class属性值来找到要实例化的类,从而实例化bean对象.这便是调用构造方法来实例化bean对象 在某些情况下,若采用简单 ...

  8. 创建javascript对象的几种方式

    ECMAScript提供的对象有:String.Date.Array.Boolean.Math.Number.RegExp.Global 程序中需要用到很多自定义的js对象 1.直接创建 var ob ...

  9. java 给对象创建实例_Java中创建(实例化)对象的五种方式

    Java中创建(实例化)对象的五种方式1.用new语句创建对象,这是最常见的创建对象的方法. 2.通过工厂方法返回对象,如:String str = String.valueOf(23); 3.运用反 ...

最新文章

  1. 干货|2018年中国智能硬件行业现状与发展趋势报告
  2. Mysql视图权限设置的踩坑经历
  3. c语言链表p-%3enext,课程设计报告.c语言程序设计.pdf
  4. wxWidgets:网格控件 wxWidgets 示例
  5. 判断泛型的值是否为default(T)
  6. centos8上docker tomcat容器访问报404解决方法
  7. Linux学习之CentOS(一)--CentOS6.4环境搭建
  8. 深入react技术栈(11):样式处理
  9. 一位36岁女教师关于教职、学术、幸福及正确道路的思考
  10. 安卓案例:Volley用法演示
  11. DPABI advanced edition 文件夹组织形式
  12. 10.15. TUI
  13. redis高级进阶(2)
  14. [包计划] create-react-app
  15. Android4.0.4 framebuffer 支持32位色彩深度
  16. python登录qq邮箱爬邮件_如何使用Python登录邮箱发送邮件
  17. deepin efi 启动u盘_deepin启动引导修复教程
  18. 异构数据统一管理推动存储资源盘活
  19. More Effective C++ 阅读笔记 解释清晰
  20. AR+LBS街景实景红包PokemonGo游戏捉妖夺宝营销解决方案暨百度高德地图Unity插件SDK

热门文章

  1. python发送json数据_在Websockets上发送JSON
  2. php zhegnze_php 正则表达式
  3. verilog 简单module_一个简单的verilog小程序
  4. Linux结构体变量报错,23. Linux模式设计
  5. mysql run sql files_如何在Eclipse DTP中運行多個.sql文件
  6. 给一个不多于5位的正整数 要求_java练习题 打卡第5天
  7. suse linux下交叉编译,阐述SUSE 10.1交叉编译环境构建方法
  8. java时序图工具_基于时序数据库,实现百亿级话单实时全景监控分析
  9. fps测试网页_对话斗鱼云游戏负责人:做强网页端,近3成为新增用户
  10. python有效变量名_Python变量命名规则