Mat类的创建:

方法一:

通过读入一张图像,直接转换为Mat对象

Mat image = imread("test.jpg");

其中 imread()方法需要传入String类型的值,一般都是图像文件路径。

方法二:

使用无参数构造函数,创建Mat对象

Mat image = Mat();

image.create(4, 4, CV_8UC3);

此刻表示创建一个4x4大小的像素块,每个像素都是三通道每个通道的位数都是8位,一个字节的。上述CV_8UC3中的8表示8位、UC表示uchar类型、3表示三个通道。

方法三:

使用行、列、类型带这个三个参数的构造函数创建Mat对象

Mat m = Mat(4, 4, CV_8UC3)

表示创建一个跟方法二一样的像素块

方法四:

使用行、列、类型、Scalar向量四个参数的构造函数创建Mat对象

Mat m = Mat(4, 4, CV_8UC3, Scalar(0, 255, 255);

同样表示创建一个4x4的像素块,唯一不一样的是颜色不是默认值而是我们指定的三通道颜色值向量Scalar(0, 255, 255)。其中Scalar向量数目永远是等于通道数目

方法五:

使用大小、类型两个参数的构造函数创建Mat对象

Mat m = Mat(Size(4, 4), CV_8UC3);

同样创建一个4x4的每个通道8位三个通道的像素块

方法六:

使用大小、类型、Scalar向量三个参数的构造函数创建Mat对象

Mat m = Mat(Size(4, 4), CV_8UC3, Scalar(255, 0, 0));

同样创建一个4x4的每个通道8位三个通道的像素块

方法七:

使用Mat::zeros函数实现,两个参数一个是Size表示图像宽与高

另外一个表示类型:

Mat m = Mat::zeros(Size(4,4), CV_8UC3);

同样创建一个4x4的每个通道8位三个通道的像素块

方法八:

使用Mat::ones函数实现,两个参数一个是Size表示图像宽与高,

另外一个表示类型

Mat m = Mat::ones(Size(4,4), CV_8UC1);

同样创建一个4x4的每个通道8位一个通道的像素块

注意这次类型是CV_8UC1表示创建的是一个通道类型数据。

 Mat类的复制:

方法一:

Mat m2;

Mat m1 = imread("test.jpg");

m2 = m1;

方法二:

Mat m1 = imread("test.jpg");

Mat m2(m1);

通过上述两种方法Mat对象只会复制头部分和指向像素数据的指针,不会真正复制数据部分。通过如下方法Mat可以实现数据对象的完全复制

方法三:

Mat src = imread("test.jpg");

Mat dst = src.clone();

方法四:

Mat src = imread("test.jpg");

Mat dst;

src.copyTo(dst);

转载于:https://www.cnblogs.com/long5683/p/9693014.html

OpenCV——Mat类的创建、复制、函数相关推荐

  1. OpenCV Mat类详解和用法(官网原文)

    参考文章:OpenCV Mat类详解和用法 我马克一下,日后更 官网原文链接:https://docs.opencv.org/3.2.0/d6/d6d/tutorial_mat_the_basic_i ...

  2. OpenCV Mat类详解和用法

    OpenCV Mat类详解和用法 我们有多种方法可以获得从现实世界的数字图像:数码相机.扫描仪.计算机体层摄影或磁共振成像就是其中的几种.在每种情况下我们(人类)看到了什么是图像.但是,转换图像到我们 ...

  3. OpenCV4每日一练day4:Mat类的创建、赋值、读取

    一.了解Mat类 二.三种常用Mat类的创建方式: 创建Mat类的rows和cols参数是从1开始数 Mat.rowRange(int x,int y)和Mat.rowRange(range(int ...

  4. OpenCV | Mat类的copyT、clone、=赋值的区别

    OpenCV | Mat类的copyT.clone.=赋值的区别 1.clone 2.copyTo 3.等号'='赋值 4.验证 先说一下Mat类的结构. Mat类我们可以分成两部分:头部分.矩阵数据 ...

  5. 创建图片mat_OPENCV(二)——Mat类与几个函数的简介

    一,opencv的命名空间 写简单的opencv程序时,以下三个语句可以说是标配: #include<opencv2/core/core.hpp> #include<opencv2/ ...

  6. OpenCV Mat类详解

    光心:每个透镜主轴上都有一个特殊点,凡是通过该点的光,其传播方向不变,这个点叫光心. 光线经过透镜后不会发生折射,仍然沿原方向射出. 基础矩阵(Fundamental matrix)是一个3×3的矩阵 ...

  7. opencv Mat类

    本博客转载于这里! Mat 基础 图片在计算机中的本质就是一个数组.其中 Mat 就是在 OpenCV 中图像的表示形式,因此简单介绍 Mat 中一些常用的基础知识. 其中 Mat 类中有一些基本属性 ...

  8. OpenCv Mat -类 成员函数

    先从最简单的学起来 1.mat.cols() mat 矩阵的列数,和矩阵的通道数无关 new Mat(10,20,CvType.CV_8UC2)      mat.cols==20 2.mat.row ...

  9. opencv Mat类赋值函数copyTo、clone的区别

    被赋值Mat之前已经被分配足够空间时,copyTo()不重新给分配空间,继续使用之前的空间,当已分配空间不足时,则会重新分配空间:clone()则均重新分配空间. Mat M(1, 3, CV_8UC ...

最新文章

  1. 用TCP/IP进行网际互联一
  2. [灵魂拷问]MySQL面试高频100问(工程师方向)
  3. 最全知识点总结!| 大数据学习路线指南
  4. linux火狐自动更新,CentOS 7手动更新firefox | Linux系统运维联盟
  5. 答题获得思科T-shirt
  6. flex 只有仅限于文件系统的 SWF 文件和可信的本地 SWF 文件可以访问本地资源
  7. php使用RabbitMQ
  8. Boost 连接库的命名含义
  9. php 微信表情存储,emoji表情存储到数据库的方法
  10. 前端人脸识别--两张脸相似度
  11. 大学英语四六级往年成绩查询+成绩单补办教程(四级/六级/4级/6级/46级)
  12. DNS劫持原理,DNS劫持如何解决?
  13. 乱码html文档怎么恢复,乱码word文档怎么恢复
  14. RISC-V向量扩展指令(一)
  15. 基于Springboot健身会员俱乐部管理系统设计
  16. 液晶屏背光源该如何检测?
  17. CSUST 2007-我爱吃烧烤(状压DP)
  18. java正则中REGEX = [\u4e00-\u9fa5]+是什么意思
  19. Rip与不连续子网拓扑(小白基础实验)
  20. Windows 10安装配置Theano(转载)

热门文章

  1. 【Unity】关于屏幕自适应的思路
  2. 状态模式(State Pattern)
  3. [转]Eclipse+pydev 常用快捷键
  4. Mr.J-- jQuery学习笔记(十六)--展开和收起动画折叠菜单的实现
  5. Leetcode-5148 Binary Tree Coloring Game(二叉树着色游戏)
  6. centos yum方式安装nginx 并支持https
  7. 【XSY2519】神经元 prufer序列 DP
  8. linux常用的BootLoader U-boot的前世今生
  9. IntelliJ IDEA导入Maven之后强制刷新项目解决无法识别为Maven项目的问题
  10. CoreAnimation汇总